Adding
This commit is contained in:
+61
@@ -0,0 +1,61 @@
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user