Files
monorepo/LCU.API.Collections.RepoApi-old/LCU.API.Collections.RepoApi/DataAccess/CollectionsDao.cs
T
2026-04-20 14:47:24 -05:00

61 lines
2.2 KiB
C#

using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Net.Http;
using System.Threading.Tasks;
using LCU.API.Collections.CollectionsApiLib.Models;
using LCU.API.Collections.RepoApi.Configuration;
using LCU.Shared.Collections.RepoApiLib.Models.Settings;
namespace LCU.API.Collections.RepoApi.DataAccess
{
[ExcludeFromCodeCoverage]
public class CollectionsDao : DaoClient, ICollectionsDao
{
private readonly RepoApiConfiguration _configuration;
public CollectionsDao(RepoApiConfiguration configuration,
IHttpClientFactory clientFactory) : base(clientFactory)
{
_configuration = configuration;
}
public async Task<TemenosAccount> RetrieveAccountAsync(string accountNo)
{
var url = BuildTemenosAccountUrl(accountNo);
var accounts = await RetrieveByIdentifierAsync<IReadOnlyCollection<TemenosAccount>>(url, accountNo);
if (accounts != null && accounts.Any())
{
return accounts.Where(x => x.AccountIdentifier == accountNo)
.OrderByDescending(x => x.OriginalLoanDate).First();
}
return null;
}
public async Task<IReadOnlyCollection<TemenosHistory>> RetrieveHistoryAsync(int accountId)
{
var url = _configuration.CollectionsLetterUrl.Replace(":accountId", accountId.ToString());
return await RetrieveByIdentifierAsync<IReadOnlyCollection<TemenosHistory>>(url, accountId.ToString());
}
public async Task<IReadOnlyCollection<BranchEntry>> RetrieveBranchSetAsync()
{
var url = _configuration.CoreBranchSetUrl;
return await RetrieveAllAsync<IReadOnlyCollection<BranchEntry>>(url);
}
public async Task<TemenosConfiguration> RetrieveTemenosConfigurationAsync()
{
var url = _configuration.CollectionsConfigUrl;
return await RetrieveAllAsync<TemenosConfiguration>(url);
}
public string BuildTemenosAccountUrl(string accountNo)
{
return _configuration.CollectionAccountUrl + _configuration.OrganizationCode + accountNo;
}
}
}