61 lines
2.2 KiB
C#
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;
|
|
}
|
|
|
|
}
|
|
} |