This commit is contained in:
Zeeshaun
2026-03-31 14:32:23 -05:00
parent f4646dc97f
commit 9be174da46
485 changed files with 37290 additions and 0 deletions
@@ -0,0 +1,59 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Newtonsoft.Json;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperLib.Utilities;
using LCU.Library.Internal.CoreApiWrapperLib.Configuration;
using LCU.Library.Internal.CoreApiWrapperLib.CoreApiUtilities;
using LCU.Library.Internal.CoreApiWrapperModel.Constants;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreRequests;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.AccessChannelPersons;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public class AccessChannelPersonsDao : BaseCoreDao, IAccessChannelPersonsDao
{
private readonly CoreConfiguration _coreConfiguration;
private readonly CoreApiConfiguration _coreApiConfiguration;
public AccessChannelPersonsDao(ICoreRequest coreRequest,
CoreConfiguration coreConfiguration) : base(coreRequest)
{
_coreConfiguration = coreConfiguration;
_coreApiConfiguration = _coreConfiguration.CoreApiConfiguration;
}
/// <summary>
/// Calls Core API to update Access Channel Person.
/// </summary>
/// <param name="request"></param>
/// <returns>AccessChannelPerson</returns>
public async Task<AccessChannelPerson> UpdateAccessChannelPerson(CoreApiMessage<AccessChannelPerson> request)
{
var endpoint = HttpUtilities.ReplaceRootParameter(_coreApiConfiguration.CoreEndPointConfiguration.AccessChannelPersonsAccessChannelPersonId,
RequestRootParameters.AccessChannelPersonId,
request.MessageBody.Id);
var jsonBody = JsonConvert.SerializeObject(request);
var result = await _coreRequest.PutRequestObject<CoreApiMessage<AccessChannelPerson>>(endpoint, null, jsonBody);
return result?.MessageBody;
}
/// <summary>
/// Calls Core API to search for AccessChannelPersons based By Person.
/// Default Included: Graph
/// </summary>
/// <param name="coreRequestParameters"></param>
/// <param name="request"></param>
/// <returns>IEnumerable<AccessChannelPerson></returns>
public async Task<CoreApiMessage<IEnumerable<AccessChannelPerson>>> FindAccessChannelPersonsByPerson(CoreRequestParameters coreRequestParameters,
AccessChannelPersonsByPersonRequest request)
{
var endpointParameters = HttpUtilities.BuildDictionaryOfNonNullValues(coreRequestParameters);
var jsonBody = JsonConvert.SerializeObject(request);
return await _coreRequest.PostRequestObject<CoreApiMessage<IEnumerable<AccessChannelPerson>>>(
_coreApiConfiguration.CoreEndPointConfiguration.AccessChannelPersonsByPerson,
endpointParameters,
jsonBody);
}
}
}
@@ -0,0 +1,42 @@
using System.Threading.Tasks;
using Newtonsoft.Json;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperLib.Utilities;
using LCU.Library.Internal.CoreApiWrapperLib.Configuration;
using LCU.Library.Internal.CoreApiWrapperLib.CoreApiUtilities;
using LCU.Library.Internal.CoreApiWrapperModel.Constants;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.AccessTypes;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public class AccessTypeDao : BaseCoreDao, IAccessTypeDao
{
private readonly CoreConfiguration _coreConfiguration;
private readonly CoreApiConfiguration _coreApiConfiguration;
public AccessTypeDao(ICoreRequest coreRequest,
CoreConfiguration coreConfiguration) : base(coreRequest)
{
_coreConfiguration = coreConfiguration;
_coreApiConfiguration = _coreConfiguration.CoreApiConfiguration;
}
/// <summary>
/// Calls Core API to update Access Type.
/// </summary>
/// <param name="request"></param>
/// <returns>AccessType</returns>
public async Task<AccessType> UpdateAccessType(CoreApiMessage<AccessType> request, string accessChannelPersonId)
{
var endpoint = HttpUtilities.ReplaceRootParameter(_coreApiConfiguration.CoreEndPointConfiguration.AccessChannelPersonsAccessTypes,
RequestRootParameters.AccessChannelPersonId,
accessChannelPersonId);
var finalEndpoint = HttpUtilities.ReplaceRootParameter(endpoint,
RequestRootParameters.AccessTypeId,
request.MessageBody.Id);
var jsonBody = JsonConvert.SerializeObject(request);
var result = await _coreRequest.PutRequestObject<CoreApiMessage<AccessType>>(finalEndpoint, null, jsonBody);
return result?.MessageBody;
}
}
}
@@ -0,0 +1,313 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Threading.Tasks;
using LCU.Library.Internal.ApiSecurity.Enums;
using LCU.Library.Internal.ApiSecurity.Models;
using LCU.Library.Internal.CoreApiWrapperLib.Configuration;
using LCU.Library.Internal.CoreApiWrapperLib.CoreApiUtilities;
using LCU.Library.Internal.CoreApiWrapperLib.CoreDbUtilities;
using LCU.Library.Internal.CoreApiWrapperLib.Exceptions;
using LCU.Library.Internal.CoreApiWrapperLib.Utilities;
using LCU.Library.Internal.CoreApiWrapperModel.Constants;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Accounts;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Collaterals;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreRequests;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreResponses;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreSoapRequests;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreSoapResponses;
using LCU.Library.Internal.LcuHttpClient.HttpRequest;
using AccountMaintenanceRequest = LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreRequests.AccountMaintenanceRequest;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public class AccountDao : BaseCoreDao, IAccountDao
{
private readonly ICoreDbExecution _coreDbExecution;
private readonly CoreConfiguration _coreConfiguration;
private readonly CoreApiConfiguration _coreApiConfiguration;
private readonly CoreSoapApiConfiguration _coreSoapApiConfiguration;
private readonly ApiSecurityConfiguration _apiSecurityConfiguration;
private readonly IPostRequest _postRequest;
private readonly IPutRequest _putRequest;
private const string SoapClientKeyValue = "CoreSoapApiWrapper";
private const string GetAccountAdminBranchUpdateQuery = "AccountBranch/GetAccountAdminBranchUpdateQuery";
private const string GetVipSavingsToFundQuery = "Account/GetVipSavingsToFundQuery";
private const string GetAccountOwnersByAccountNumber = "Account/GetAccountOwnersByAccountNumber";
private const string GetAccountOwnersByOrganizationName = "Account/GetAccountOwnersByOrganizationName";
private const string GetAccountOwnersByPersonName = "Account/GetAccountOwnersByPersonName";
private const string GetAccountsToUpdateGroupAnalysisQuery = "Account/GetAccountsToUpdateGroupAnalysis";
private const string GetAccountsByMajorMinorBranchAndStatusQuery = "Account/GetAccountsByMajorMinorBranchCodeAndStatus";
private const string GetAccountsByRecentTransactionsQuery = "Account/GetAccountsByRecentTransactions";
private const string DnaTimeFormat = "yyyy-MM-dd HH:mm:ss";
public AccountDao(ICoreRequest coreRequest,
CoreConfiguration coreConfiguration,
ApiSecurityConfiguration apiSecurityConfiguration,
ICoreDbExecution coreDbExecution,
IPostRequest postRequest,
IPutRequest putRequest) : base(coreRequest)
{
_coreConfiguration = coreConfiguration;
_apiSecurityConfiguration = apiSecurityConfiguration;
_coreApiConfiguration = _coreConfiguration.CoreApiConfiguration;
_coreSoapApiConfiguration = _coreConfiguration.CoreSoapApiConfiguration;
_coreDbExecution = coreDbExecution;
_postRequest = postRequest;
_putRequest = putRequest;
}
/// <summary>
/// Calls Core API to search based the memberagreenbr in the MemberAgreeNbrRequest model.
/// Default Included: Graph
/// </summary>
/// <param name="coreRequestParameters"></param>
/// <param name="request"></param>
/// <returns>IEnumerable<Account></returns>
public async Task<IEnumerable<Account>> FindByMemberAgreeNbr(CoreRequestParameters coreRequestParameters, MemberAgreeNbrRequest request)
{
var endpointParameters = HttpUtilities.BuildDictionaryOfNonNullValues(coreRequestParameters);
var jsonBody = HttpUtilities.BuildJsonOfNonNullProperties(request);
var result = await _coreRequest.PostRequestObject<CoreApiMessage<IEnumerable<Account>>>(
_coreApiConfiguration.CoreEndPointConfiguration.AccountsQueryMemberAgreement,
endpointParameters,
jsonBody);
return result?.MessageBody;
}
/// <summary>
/// Calls Core API to search based the AcctNbr in the AcctNbrRequest model.
/// Default Included: Standard, Graph
/// </summary>
/// <param name="coreRequestParameters"></param>
/// <param name="request"></param>
/// <returns>Account</returns>
public async Task<Account> FindByAcctNbr(CoreRequestParameters coreRequestParameters, AcctNbrRequest request)
{
var endpointParameters = HttpUtilities.BuildDictionaryOfNonNullValues(coreRequestParameters);
var jsonBody = HttpUtilities.BuildJsonOfNonNullProperties(request);
var result = await _coreRequest.PostRequestObject<CoreApiMessage<Account>>(
_coreApiConfiguration.CoreEndPointConfiguration.AccountsQueryAccountDetail,
endpointParameters,
jsonBody);
return result?.MessageBody;
}
/// <summary>
/// Calls Core API to search based the filled out AccountId.
/// Default Included: Graph
/// </summary>
/// <param name="coreRequestParameters"></param>
/// <param name="accountId"></param>
/// <returns>IEnumerable<Collateral></returns>
public async Task<IEnumerable<Collateral>> FindCollateralById(CoreRequestParameters coreRequestParameters, string accountId)
{
var endpointParameters = HttpUtilities.BuildDictionaryOfNonNullValues(coreRequestParameters);
var endpoint = HttpUtilities.ReplaceRootParameter(_coreApiConfiguration.CoreEndPointConfiguration.AccountsCollateral,
RequestRootParameters.AccountId,
accountId);
var result = await _coreRequest.GetRequestObject<CoreApiMessage<IEnumerable<Collateral>>>(endpoint, endpointParameters);
return result?.MessageBody;
}
/// <summary>
/// Calls Core Soap API and provides an AccountMaintenanceRequest to update an account.
/// </summary>
/// <param name="accountMaintenanceRequest"></param>
public async Task PutAccountMaintenanceRequest(IEnumerable<AccountMaintenanceRequest> accountMaintenanceRequests)
{
var endpoint = HttpUtilities.BuildHttpsUri(_coreSoapApiConfiguration.CoreSoapApiWrapperHost, _coreSoapApiConfiguration.CoreSoapEndpointConfiguration.PutAccountMaintenanceRequest);
var headers = LcuHttpClient.Utilities.HttpUtilities.GetApiKeyHeaders(SoapClientKeyValue, _apiSecurityConfiguration.ExtractApiKey(SoapClientKeyValue, ApiKeySetName.InternalKeySet));
var accounts = accountMaintenanceRequests.Select(account => new MaintenanceAccount { AccountNumber = account.AccountNumber, DeliveryMethodCode = account.DeliveryMethod, IsAccountMaintenance = true }).ToArray();
var accountMaintenanceSoapRequest = new CoreApiWrapperModel.CoreModels.CoreSoapRequests.AccountMaintenanceRequest
{
Accounts = accounts
};
var response = await _putRequest.Async<CoreApiWrapperModel.CoreModels.CoreSoapRequests.AccountMaintenanceRequest, HttpResponseMessage> (endpoint, accountMaintenanceSoapRequest, headers, 0);
if (!response.IsSuccessStatusCode)
{
throw new AccountMaintenanceRequestException($"Request to update accounts with AccountMaintenanceRequest: {accountMaintenanceSoapRequest} failed with the following bad status code: {response.StatusCode}");
}
}
public async Task<IEnumerable<string>> FindAdminBranchCodeChangeAccountNumbers()
{
var query = QueryUtilities.GetQuery(GetAccountAdminBranchUpdateQuery);
return await _coreDbExecution.ExecuteQuery<string>(query);
}
public async Task<IEnumerable<string>> FindVipSavingsToFund()
{
var query = QueryUtilities.GetQuery(GetVipSavingsToFundQuery);
return await _coreDbExecution.ExecuteQuery<string>(query);
}
public async Task<IEnumerable<string>> FindAccountsToUpdateAccountAnalysis()
{
var query = QueryUtilities.GetQuery(GetAccountsToUpdateGroupAnalysisQuery);
return await _coreDbExecution.ExecuteQuery<string>(query);
}
public async Task<BasicResponse> UpdateAccountAnalysis(AccountAnalysisGroupMaintenanceRequest accountAnalysisGroupMaintenanceRequest)
{
var endpoint = HttpUtilities.BuildHttpsUri(_coreSoapApiConfiguration.CoreSoapApiWrapperHost, _coreSoapApiConfiguration.CoreSoapEndpointConfiguration.PutAccountAnalysisGroupMaintenanceRequest);
var headers = LcuHttpClient.Utilities.HttpUtilities.GetApiKeyHeaders(SoapClientKeyValue, _apiSecurityConfiguration.ExtractApiKey(SoapClientKeyValue, ApiKeySetName.InternalKeySet));
return await _putRequest.Async<AccountAnalysisGroupMaintenanceRequest, BasicResponse>(endpoint, accountAnalysisGroupMaintenanceRequest, headers, 0);
}
public async Task<BasicResponse> UpdateAccountBranch(AccountBranchUpdateRequest accountBranchUpdateRequest)
{
var endpoint = HttpUtilities.BuildHttpsUri(_coreSoapApiConfiguration.CoreSoapApiWrapperHost, _coreSoapApiConfiguration.CoreSoapEndpointConfiguration.PutAccountBranchUpdateRequest);
var headers = LcuHttpClient.Utilities.HttpUtilities.GetApiKeyHeaders(SoapClientKeyValue, _apiSecurityConfiguration.ExtractApiKey(SoapClientKeyValue, ApiKeySetName.InternalKeySet));
return await _putRequest.Async<AccountBranchUpdateRequest, BasicResponse>(endpoint, accountBranchUpdateRequest, headers, 0);
}
public async Task<BasicResponse> UpdateAccountLoanToValue(AccountLtvUpdateRequest accountLtvUpdateRequest)
{
var endpoint = HttpUtilities.BuildHttpsUri(_coreSoapApiConfiguration.CoreSoapApiWrapperHost, _coreSoapApiConfiguration.CoreSoapEndpointConfiguration.PutAccountLtvUpdateRequest);
var headers = LcuHttpClient.Utilities.HttpUtilities.GetApiKeyHeaders(SoapClientKeyValue, _apiSecurityConfiguration.ExtractApiKey(SoapClientKeyValue, ApiKeySetName.InternalKeySet));
return await _putRequest.Async<AccountLtvUpdateRequest, BasicResponse>(endpoint, accountLtvUpdateRequest, headers, 0);
}
public async Task<BasicResponse> UpdateAccountNickName(AccountNickNameUpdateRequest accountNickNameUpdateRequest)
{
var endpoint = HttpUtilities.BuildHttpsUri(_coreSoapApiConfiguration.CoreSoapApiWrapperHost, _coreSoapApiConfiguration.CoreSoapEndpointConfiguration.PutAccountNickNameUpdateRequest);
var headers = LcuHttpClient.Utilities.HttpUtilities.GetApiKeyHeaders(SoapClientKeyValue, _apiSecurityConfiguration.ExtractApiKey(SoapClientKeyValue, ApiKeySetName.InternalKeySet));
return await _putRequest.Async<AccountNickNameUpdateRequest, BasicResponse>(endpoint, accountNickNameUpdateRequest, headers, 0);
}
public async Task<BasicResponse> UpdateAccountContractDate(AccountContractDateUpdateRequest accountContractDateUpdateRequest)
{
var endpoint = HttpUtilities.BuildHttpsUri(_coreSoapApiConfiguration.CoreSoapApiWrapperHost, _coreSoapApiConfiguration.CoreSoapEndpointConfiguration.PutAccountContractDateUpdateRequest);
var headers = LcuHttpClient.Utilities.HttpUtilities.GetApiKeyHeaders(SoapClientKeyValue, _apiSecurityConfiguration.ExtractApiKey(SoapClientKeyValue, ApiKeySetName.InternalKeySet));
return await _putRequest.Async<AccountContractDateUpdateRequest, BasicResponse>(endpoint, accountContractDateUpdateRequest, headers, 0);
}
public async Task<List<ActivityAccountDetails>> GetActivityAccountDetailsByAccountNumbers(List<string> accountNumbers)
{
var query = QueryUtilities.GetQuery("ActivityAccountDetailsByAccountNbr");
var accountActivityParams = new
{
accountNumbers = accountNumbers.ToArray()
};
var results =
await _coreDbExecution.ExecuteQuery<ActivityAccountDetails, object>(query, accountActivityParams);
return results.ToList();
}
public async Task<IEnumerable<AccountOwnership>> FindOwnersByAccountNumber(long accountNumber, DateTime creationDate)
{
var query = QueryUtilities.GetQuery(GetAccountOwnersByAccountNumber);
var accountNumberParams = new
{
accountNumber = accountNumber.ToString(),
createdDate = creationDate.Date.ToString(DnaTimeFormat)
};
return await _coreDbExecution.ExecuteQuery<AccountOwnership, object>(query, accountNumberParams);
}
public async Task<IEnumerable<AccountOwnership>> FindPrimaryOwnersByOrganizationName(string organizationName)
{
var query = QueryUtilities.GetQuery(GetAccountOwnersByOrganizationName);
var organizationNameParams = new
{
organizationName = organizationName
};
return await _coreDbExecution.ExecuteQuery<AccountOwnership, object>(query, organizationNameParams);
}
public async Task<IEnumerable<AccountOwnership>> FindPrimaryOwnersByPersonName(string personName)
{
var query = QueryUtilities.GetQuery(GetAccountOwnersByPersonName);
var personNameParams = new
{
personName = personName
};
return await _coreDbExecution.ExecuteQuery<AccountOwnership, object>(query, personNameParams);
}
/// <summary>
/// Calls Core Soap API post to create a new person account.
/// </summary>
/// <param name="CreateAccountRequest"></param>
public async Task<CreatedAccountResponse> AddPersonAccount(CreatePersonAccountRequest createPersonAccountRequest)
{
var endpoint = HttpUtilities.BuildHttpsUri(_coreSoapApiConfiguration.CoreSoapApiWrapperHost, _coreSoapApiConfiguration.CoreSoapEndpointConfiguration.PostPersonAccount);
var headers = LcuHttpClient.Utilities.HttpUtilities.GetApiKeyHeaders(SoapClientKeyValue, _apiSecurityConfiguration.ExtractApiKey(SoapClientKeyValue, ApiKeySetName.InternalKeySet));
return await _postRequest.Async<CreatePersonAccountRequest, CreatedAccountResponse>(endpoint, createPersonAccountRequest, headers, 0);
}
/// <summary>
/// Calls Core Soap API post to create a new organization account.
/// </summary>
/// <param name="CreateAccountRequest"></param>
public async Task<CreatedAccountResponse> AddOrganizationAccount(CreateOrganizationAccountRequest createOrganizationAccountRequest)
{
var endpoint = HttpUtilities.BuildHttpsUri(_coreSoapApiConfiguration.CoreSoapApiWrapperHost, _coreSoapApiConfiguration.CoreSoapEndpointConfiguration.PostOrganizationAccount);
var headers = LcuHttpClient.Utilities.HttpUtilities.GetApiKeyHeaders(SoapClientKeyValue, _apiSecurityConfiguration.ExtractApiKey(SoapClientKeyValue, ApiKeySetName.InternalKeySet));
return await _postRequest.Async<CreateOrganizationAccountRequest, CreatedAccountResponse>(endpoint, createOrganizationAccountRequest, headers, 0);
}
/// <summary>
/// Calls Core Soap API and provides an OrganizationMaintenanceRequest to update an account.
/// </summary>
/// <param name="organizationMaintenanceRequest"></param>
public async Task<BasicResponse> PutOrganizationMaintenanceRequest(OrganizationMaintenanceRequest organizationMaintenanceRequest)
{
var endpoint = HttpUtilities.BuildHttpsUri(_coreSoapApiConfiguration.CoreSoapApiWrapperHost, _coreSoapApiConfiguration.CoreSoapEndpointConfiguration.PutOrganizationMaintenanceRequest);
var headers = LcuHttpClient.Utilities.HttpUtilities.GetApiKeyHeaders(SoapClientKeyValue, _apiSecurityConfiguration.ExtractApiKey(SoapClientKeyValue, ApiKeySetName.InternalKeySet));
return await _putRequest.Async<OrganizationMaintenanceRequest, BasicResponse>(endpoint, organizationMaintenanceRequest, headers, 0);
}
/// <summary>
/// Calls Core Soap API and provides an AccountCreditReportTypeUpdateRequest to update an account.
/// </summary>
/// <param name="accountCreditReportTypeUpdateRequest"></param>
public async Task<BasicResponse> UpdateAccountCreditReportType(AccountCreditReportTypeUpdateRequest accountCreditReportTypeUpdateRequest)
{
var endpoint = HttpUtilities.BuildHttpsUri(_coreSoapApiConfiguration.CoreSoapApiWrapperHost, _coreSoapApiConfiguration.CoreSoapEndpointConfiguration.PutAccountCreditReportTypeUpdateRequest);
var headers = LcuHttpClient.Utilities.HttpUtilities.GetApiKeyHeaders(SoapClientKeyValue, _apiSecurityConfiguration.ExtractApiKey(SoapClientKeyValue, ApiKeySetName.InternalKeySet));
return await _putRequest.Async<AccountCreditReportTypeUpdateRequest, BasicResponse>(endpoint, accountCreditReportTypeUpdateRequest, headers, 0);
}
public async Task<IEnumerable<AccountsByMajorMinorBranchAndStatusResponse>> GetAccountsByMajorMinorBranchAndStatus(AccountsByMajorMinorBranchAndStatusRequest request)
{
var query = QueryUtilities.GetQuery(GetAccountsByMajorMinorBranchAndStatusQuery);
var queryParams = new
{
majorAccountTypes = request.MajorTypes.ToArray(),
minorAccountTypes = request.MinorTypes.ToArray(),
accountStatusCodes = request.AccountStatuses.ToArray(),
branchOrgCodes = request.BranchCodes.ToArray()
};
return await _coreDbExecution.ExecuteQuery<AccountsByMajorMinorBranchAndStatusResponse, object>(query, queryParams);
}
public async Task<IEnumerable<AccountsByRecentTransactionsResponse>> GetAccountsByRecentTransactions(AccountsByRecentTransactionsRequest request)
{
var query = QueryUtilities.GetQuery(GetAccountsByRecentTransactionsQuery);
var queryParams = new
{
startDate = request.StartDate,
endDate = request.EndDate
};
return await _coreDbExecution.ExecuteQuery<AccountsByRecentTransactionsResponse, object>(query, queryParams);
}
}
}
@@ -0,0 +1,32 @@
using LCU.Library.Internal.CoreApiWrapperLib.Configuration;
using LCU.Library.Internal.CoreApiWrapperLib.CoreDbUtilities;
using LCU.Library.Internal.CoreApiWrapperLib.Utilities;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Accounts;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public class AccountHistoryDao : IAccountHistoryDao
{
private readonly ICoreDbExecution _coreDbExecution;
private const string GetChargeOffDateTimes = "AccountHistory/GetChargeOffDateTimes";
public AccountHistoryDao(ICoreDbExecution coreDbExecution)
{
_coreDbExecution = coreDbExecution;
}
public async Task<IEnumerable<DateTime>> GetChargeoffDateTimesByAccountNumber(string accountNumber)
{
var query = QueryUtilities.GetQuery(GetChargeOffDateTimes);
var queryParams = new
{
accountNumber
};
return await _coreDbExecution.ExecuteQuery<DateTime, object>(query, queryParams);
}
}
}
@@ -0,0 +1,81 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Newtonsoft.Json;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperLib.Utilities;
using LCU.Library.Internal.CoreApiWrapperLib.Configuration;
using LCU.Library.Internal.CoreApiWrapperLib.CoreApiUtilities;
using LCU.Library.Internal.CoreApiWrapperModel.Constants;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Accounts;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreRequests;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public class AccountUserFieldDao : BaseCoreDao, IAccountUserFieldDao
{
private readonly CoreConfiguration _coreConfiguration;
private readonly CoreApiConfiguration _coreApiConfiguration;
public AccountUserFieldDao(ICoreRequest coreRequest, CoreConfiguration coreConfiguration) : base(coreRequest)
{
_coreConfiguration = coreConfiguration;
_coreApiConfiguration = _coreConfiguration.CoreApiConfiguration;
}
/// <summary>
/// Calls Core API to update Accounts UserField.
/// Default Included: Graph
/// </summary>
/// <param name="accountUserFieldUpdateRequest"></param>
/// <param name="accountId"></param>
/// <param name="userFieldId"></param>
/// <returns>AccountUserField</returns>
public async Task<AccountUserField> UpdateAccountUserField(CoreApiMessage<AccountUserFieldRequest> accountUserFieldUpdateRequest,
string accountId,
string userFieldId)
{
var endpoint = HttpUtilities.ReplaceRootParameter(_coreApiConfiguration.CoreEndPointConfiguration.PutAccountUserField,
RequestRootParameters.AccountId,
accountId);
endpoint = HttpUtilities.ReplaceRootParameter(endpoint, RequestRootParameters.UserFieldId, userFieldId);
var jsonBody = JsonConvert.SerializeObject(accountUserFieldUpdateRequest);
var result = await _coreRequest.PutRequestObject<CoreApiMessage<AccountUserField>>(endpoint, null, jsonBody);
return result?.MessageBody;
}
/// <summary>
/// Calls Core API to insert Accounts UserField.
/// Default Included: Graph
/// </summary>
/// <param name="accountUserFieldRequest"></param>
/// <param name="accountId"></param>
/// <param name="userFieldId"></param>
/// <returns>AccountUserField</returns>
public async Task<AccountUserField> InsertAccountUserField(CoreApiMessage<AccountUserFieldRequest> accountUserFieldRequest,
string accountId)
{
var endpoint = HttpUtilities.ReplaceRootParameter(_coreApiConfiguration.CoreEndPointConfiguration.AccountUserFields,
RequestRootParameters.AccountId,
accountId);
var jsonBody = JsonConvert.SerializeObject(accountUserFieldRequest);
var result = await _coreRequest.PostRequestObject<CoreApiMessage<AccountUserField>>(endpoint, null, jsonBody);
return result?.MessageBody;
}
/// <summary>
/// Calls Core API to search for UserFields based AccountId.
/// Default Included: Graph
/// </summary>
/// <param name="coreRequestParameters"></param>
/// <param name="accountId"></param>
/// <returns>IEnumerable<AccountUserField></returns>
public async Task<CoreApiMessage<IEnumerable<AccountUserField>>> FindAccountUserFieldCoreApiResponseByAccountId(CoreRequestParameters coreRequestParameters, string accountId)
{
var endpointParameters = HttpUtilities.BuildDictionaryOfNonNullValues(coreRequestParameters);
var endpoint = HttpUtilities.ReplaceRootParameter(_coreApiConfiguration.CoreEndPointConfiguration.AccountUserFields,
RequestRootParameters.AccountId,
accountId);
return await _coreRequest.GetRequestObject<CoreApiMessage<IEnumerable<AccountUserField>>>(endpoint, endpointParameters);
}
}
}
@@ -0,0 +1,318 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperLib.CoreDbUtilities;
using LCU.Library.Internal.CoreApiWrapperLib.Utilities;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Activity;
using LCU.Library.Internal.CoreApiWrapperModel.LcuModels.Activity;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public class ActivityDao : IActivityDao
{
private readonly ICoreDbExecution _coreDbExecution;
private const string NewCheckingAccountSalesDigitalBanking = "Activity/NewCheckingAccountSalesDigitalBanking";
private const string NewCheckingAccountSalesQuery = "Activity/NewCheckingAccountSales";
private const string NewAtmCheckCardQuery = "Activity/NewAtmCheckCardSales";
private const string NewMortgageSalesQuery = "Activity/NewMortgageAccountSales";
private const string NewVehicleSalesQuery = "Activity/NewVehicleAccountSales";
private const string NewDebtProtectedLoanQuery = "Activity/NewDebtProtectedLoanSales";
private const string EStatementDeliveryQuery = "Activity/QueryEStatementDeliveryMethod";
private const string NewActivityManagerIncentiveReferralQuery = "Activity/NewActivityManagerIncentiveReferralQuery";
private const string ActivityManagerReferralById = "Activity/QueryActivityManagerActivityDetail";
private const string GetPersonActivityByPhoneNumberQuery = "Activity/GetPersonActivityByPhoneNumberQuery";
private const string GetPersonActivityByPersonNumberQuery = "Activity/GetPersonActivityByPersonNumberQuery";
private const string DnaTimeFormat = "yyyy-MM-dd HH:mm:ss";
public ActivityDao(ICoreDbExecution coreDbExecution)
{
_coreDbExecution = coreDbExecution;
}
//Some of this could be DRYer, opting for this for better Type Safety and Messaging in Services.
public async Task<IReadOnlyCollection<NewCheckingAccountActivity>> GetNewCheckingActivitiesNewerThanDate(
DateTime newerThanDateTime,
int limitAmount
)
{
var query = QueryUtilities.GetQuery(NewCheckingAccountSalesQuery);
//Define Anonymous Object to Pass in Parameter "newerThanDateTime: "datetimestring" to query
//See: https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/types/anonymous-types
var accountActivityParams = new
{
newerThanDateTime = newerThanDateTime.ToString(DnaTimeFormat),
afterActivityNbr = (string)null,
limitAmount = limitAmount.ToString()
};
var results =
await _coreDbExecution.ExecuteQuery<NewCheckingAccountActivity, object>(query, accountActivityParams);
return results.ToList();
}
public async Task<IReadOnlyCollection<NewCheckingAccountActivity>> GetNewCheckingActivitiesAfterActivityNbr(
long afterActivityNumber,
int limitAmount
)
{
var query = QueryUtilities.GetQuery(NewCheckingAccountSalesQuery);
var accountActivityParams = new
{
afterActivityNbr = afterActivityNumber.ToString(),
newerThanDateTime = (string)null,
limitAmount = limitAmount.ToString()
};
var results =
await _coreDbExecution.ExecuteQuery<NewCheckingAccountActivity, object>(query, accountActivityParams);
return results.ToList();
}
public async Task<IReadOnlyCollection<NewCheckingAccountActivity>> GetNewCheckingActivities(
DateTime newerThanDateTime,
long afterActivityNumber,
int limitAmount
)
{
var query = QueryUtilities.GetQuery(NewCheckingAccountSalesQuery);
var accountActivityParams = new
{
afterActivityNbr = afterActivityNumber.ToString(),
newerThanDateTime = newerThanDateTime.ToString(DnaTimeFormat),
limitAmount = limitAmount.ToString()
};
var results =
await _coreDbExecution.ExecuteQuery<NewCheckingAccountActivity, object>(query, accountActivityParams);
return results.ToList();
}
public async Task<IReadOnlyCollection<NewCheckingAccountActivity>> GetNewDigitalBankingCheckingActivitiesNewerThanDate(
DateTime newerThanDateTime,
int limitAmount
)
{
var query = QueryUtilities.GetQuery(NewCheckingAccountSalesDigitalBanking);
var accountActivityParams = new
{
newerThanDateTime = newerThanDateTime.ToString(DnaTimeFormat),
afterActivityNbr = (string)null,
limitAmount = limitAmount.ToString()
};
var results =
await _coreDbExecution.ExecuteQuery<NewCheckingAccountActivity, object>(query, accountActivityParams);
return results.ToList();
}
public async Task<IReadOnlyCollection<NewCheckingAccountActivity>> GetNewDigitalBankingCheckingActivitiesAfterActivityNbr(
long afterActivityNumber,
int limitAmount
)
{
var query = QueryUtilities.GetQuery(NewCheckingAccountSalesDigitalBanking);
var accountActivityParams = new
{
afterActivityNbr = afterActivityNumber.ToString(),
newerThanDateTime = (string)null,
limitAmount = limitAmount.ToString()
};
var results =
await _coreDbExecution.ExecuteQuery<NewCheckingAccountActivity, object>(query, accountActivityParams);
return results.ToList();
}
public async Task<IReadOnlyCollection<NewCheckingAccountActivity>> GetNewDigitalBankingCheckingActivities(
DateTime newerThanDateTime,
long afterActivityNumber,
int limitAmount
)
{
var query = QueryUtilities.GetQuery(NewCheckingAccountSalesDigitalBanking);
var accountActivityParams = new
{
afterActivityNbr = afterActivityNumber.ToString(),
newerThanDateTime = newerThanDateTime.ToString(DnaTimeFormat),
limitAmount = limitAmount.ToString()
};
var results =
await _coreDbExecution.ExecuteQuery<NewCheckingAccountActivity, object>(query, accountActivityParams);
return results.ToList();
}
public async Task<IReadOnlyCollection<NewAtmCheckCardActivity>> GetNewAtmCheckCardActivitiesNewerThanDate(
DateTime newerThanDateTime,
int limitAmount
)
{
var query = QueryUtilities.GetQuery(NewAtmCheckCardQuery);
var accountActivityParams = new
{
newerThanDateTime = newerThanDateTime.ToString(DnaTimeFormat),
afterActivityNbr = (string)null,
limitAmount = limitAmount.ToString()
};
var results =
await _coreDbExecution.ExecuteQuery<NewAtmCheckCardActivity, object>(query, accountActivityParams);
return results.ToList();
}
public async Task<IReadOnlyCollection<NewAtmCheckCardActivity>> GetNewAtmCheckCardActivitiesAfterActivityNbr(
long afterActivityNumber,
int limitAmount
)
{
var query = QueryUtilities.GetQuery(NewAtmCheckCardQuery);
var accountActivityParams = new
{
afterActivityNbr = afterActivityNumber.ToString(),
newerThanDateTime = (string)null,
limitAmount = limitAmount.ToString()
};
var results =
await _coreDbExecution.ExecuteQuery<NewAtmCheckCardActivity, object>(query, accountActivityParams);
return results.ToList();
}
public async Task<IReadOnlyCollection<NewAtmCheckCardActivity>> GetNewAtmCheckCardActivities(
DateTime newerThanDateTime,
long afterActivityNumber,
int limitAmount
)
{
var query = QueryUtilities.GetQuery(NewAtmCheckCardQuery);
var accountActivityParams = new
{
afterActivityNbr = afterActivityNumber.ToString(),
newerThanDateTime = newerThanDateTime.ToString(DnaTimeFormat),
limitAmount = limitAmount.ToString()
};
var results =
await _coreDbExecution.ExecuteQuery<NewAtmCheckCardActivity, object>(query, accountActivityParams);
return results.ToList();
}
public async Task<IReadOnlyCollection<NewActivityManagerIncentiveReferral>> GetNewActivityManagerReferralsNewerThan(
DateTime newerThanOriginationDateTime)
{
var query = QueryUtilities.GetQuery(NewActivityManagerIncentiveReferralQuery);
var accountActivityParams = new
{
newerThanOriginationDate = newerThanOriginationDateTime.ToString(DnaTimeFormat),
afterActivityId = (string)null
};
var results =
await _coreDbExecution.ExecuteQuery<NewActivityManagerIncentiveReferral, object>(query, accountActivityParams);
return results.ToList();
}
public async Task<IReadOnlyCollection<NewActivityManagerIncentiveReferral>> GetNewActivityManagerReferralsAfterActivityId(long afterActivityId)
{
var query = QueryUtilities.GetQuery(NewActivityManagerIncentiveReferralQuery);
var accountActivityParams = new
{
afterActivityId = afterActivityId.ToString(),
newerThanOriginationDate = (string)null
};
var results =
await _coreDbExecution.ExecuteQuery<NewActivityManagerIncentiveReferral, object>(query, accountActivityParams);
return results.ToList();
}
public async Task<IReadOnlyCollection<NewActivityManagerIncentiveReferral>> GetNewActivityManagerReferrals(DateTime newerThanOriginationDateTime,
long afterActivityId)
{
var query = QueryUtilities.GetQuery(NewActivityManagerIncentiveReferralQuery);
var accountActivityParams = new
{
afterActivityId = afterActivityId.ToString(),
newerThanOriginationDate = newerThanOriginationDateTime.ToString(DnaTimeFormat),
};
var results =
await _coreDbExecution.ExecuteQuery<NewActivityManagerIncentiveReferral, object>(query, accountActivityParams);
return results.ToList();
}
public async Task<IReadOnlyCollection<NewLoanSaleActivity>> GetNewMortgageSaleActivities(
DateTime? newerThanDateTime, long? afterActivityNumber)
{
var query = QueryUtilities.GetQuery(NewMortgageSalesQuery);
var accountActivityParams = new
{
afterActivityNbr = afterActivityNumber?.ToString(),
newerThanDateTime = newerThanDateTime?.ToString(DnaTimeFormat)
};
var results =
await _coreDbExecution.ExecuteQuery<NewLoanSaleActivity, object>(query, accountActivityParams);
return results.ToList();
}
public async Task<IReadOnlyCollection<NewLoanSaleActivity>> GetNewVehicleSaleActivities(
DateTime? newerThanDateTime, long? afterActivityNumber)
{
var query = QueryUtilities.GetQuery(NewVehicleSalesQuery);
var accountActivityParams = new
{
afterActivityNbr = afterActivityNumber?.ToString(),
newerThanDateTime = newerThanDateTime?.ToString(DnaTimeFormat)
};
var results =
await _coreDbExecution.ExecuteQuery<NewLoanSaleActivity, object>(query, accountActivityParams);
return results.ToList();
}
public async Task<IReadOnlyCollection<NewLoanSaleActivity>> GetNewDebtProtectedLoanSaleActivities(
DateTime? newerThanDateTime, long? afterActivityNumber)
{
var query = QueryUtilities.GetQuery(NewDebtProtectedLoanQuery);
var accountActivityParams = new
{
afterActivityNbr = afterActivityNumber?.ToString(),
newerThanDateTime = newerThanDateTime?.ToString(DnaTimeFormat)
};
var results =
await _coreDbExecution.ExecuteQuery<NewLoanSaleActivity, object>(query, accountActivityParams);
return results.ToList();
}
public async Task<IReadOnlyCollection<NewActivityManagerIncentiveReferral>> QueryActivityManagerActivity(ActivityQueryRequest request)
{
var query = QueryUtilities.GetQuery(ActivityManagerReferralById);
var accountActivityParams = new
{
activityIds = request.ActivityIds.Select(x => x.ToString()).ToArray()
};
var results =
await _coreDbExecution.ExecuteQuery<NewActivityManagerIncentiveReferral, object>(query, accountActivityParams);
return results.ToList();
}
public async Task<IReadOnlyCollection<EStatementDeliveryMethod>> GetEStatementDeliveryActivity(DateTime? newerThanDateTime)
{
var query = QueryUtilities.GetQuery(EStatementDeliveryQuery);
var accountActivityParams = new
{
newerThanDateTime = newerThanDateTime?.ToString(DnaTimeFormat)
};
var results =
await _coreDbExecution.ExecuteQuery<EStatementDeliveryMethod, object>(query, accountActivityParams);
return results.ToList();
}
public async Task<IReadOnlyCollection<PersonRecentActivity>> GetPersonActivityByPhoneNumber(string phoneNumber)
{
var query = QueryUtilities.GetQuery(GetPersonActivityByPhoneNumberQuery);
var personRecentActivityParams = new
{
phoneNumber = phoneNumber
};
return (await _coreDbExecution.ExecuteQuery<PersonRecentActivity, dynamic>(query, personRecentActivityParams)).ToList();
}
public async Task<PersonRecentActivity> GetPersonActivityByPersonNumber(string personNumber)
{
var query = QueryUtilities.GetQuery(GetPersonActivityByPersonNumberQuery);
var personRecentActivityParams = new {
personNumber = personNumber
};
return (await _coreDbExecution.ExecuteQuery<PersonRecentActivity, dynamic>(query, personRecentActivityParams)).FirstOrDefault();
}
}
}
@@ -0,0 +1,132 @@
using System.Threading.Tasks;
using Newtonsoft.Json;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperLib.Utilities;
using LCU.Library.Internal.CoreApiWrapperLib.Configuration;
using LCU.Library.Internal.CoreApiWrapperLib.CoreApiUtilities;
using LCU.Library.Internal.CoreApiWrapperModel.Constants;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.PostalAddresses;
using System.Collections.Generic;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public class AddressDao : BaseCoreDao, IAddressDao
{
private readonly CoreConfiguration _coreConfiguration;
private readonly CoreApiConfiguration _coreApiConfiguration;
public AddressDao(ICoreRequest coreRequest,
CoreConfiguration coreConfiguration)
: base(coreRequest)
{
_coreConfiguration = coreConfiguration;
_coreApiConfiguration = _coreConfiguration.CoreApiConfiguration;
}
/// <summary>
/// Calls Core API to search based on personNumber and postalAddressNumber.
/// Default Included: Standard
/// </summary>
/// <param name="coreRequestParameters"></param>
/// <param name="personNumber"></param>
/// <param name="postalAddressId"></param>
/// <returns>CoreApiMessage<PersonPostalAddress></returns>
public async Task<CoreApiMessage<PersonPostalAddress>> FindByPersonNumberAddressNumber(CoreRequestParameters coreRequestParameters,
string personNumber,
string postalAddressId)
{
var endpointParameters = HttpUtilities.BuildDictionaryOfNonNullValues(coreRequestParameters);
var endpoint = ReplaceEndpointsPersonIdAndPostalAddressId(personNumber, postalAddressId);
return await _coreRequest.GetRequestObject<CoreApiMessage<PersonPostalAddress>>(endpoint, endpointParameters, null);
}
/// <summary>
/// Calls Core API to search based on personNumber.
/// Default Included: Standard
/// </summary>
/// <param name="coreRequestParameters"></param>
/// <param name="personNumber"></param>
/// <param name="postalAddressNumber"></param>
/// <returns>CoreApiMessage<PersonPostalAddress></returns>
public async Task<CoreApiMessage<IReadOnlyCollection<PersonPostalAddress>>> FindByPersonNumber(CoreRequestParameters coreRequestParameters,
string personNumber)
{
var endpointParameters = HttpUtilities.BuildDictionaryOfNonNullValues(coreRequestParameters);
var endpoint = HttpUtilities.ReplaceRootParameter(_coreApiConfiguration.CoreEndPointConfiguration.PersonPostalAddresses,
RequestRootParameters.PersonId,
personNumber);
var result = await _coreRequest.GetRequestObject<CoreApiMessage<IReadOnlyCollection<PersonPostalAddress>>>(endpoint, endpointParameters, null);
return result;
}
// <summary>
/// Calls Core API to Post Address.
/// Default Included: Standard
/// </summary>
/// <param name="coreUpdateRequestAddress"></param>
/// <returns>boole</returns>
public async Task<PersonPostalAddress> InsertPersonPostalAddress(PersonPostalAddress request)
{
var endpoint = HttpUtilities.ReplaceRootParameter(_coreApiConfiguration.CoreEndPointConfiguration.PersonPostalAddresses,
RequestRootParameters.PersonId,
request.PersonNumber.ToString());
var message = new
{
messageBody = request
};
var jsonBody = JsonConvert.SerializeObject(message);
var result = await _coreRequest.PostRequestObject<CoreApiMessage<PersonPostalAddress>>(endpoint, null, jsonBody);
return result?.MessageBody;
}
/// <summary>
/// Calls Core API to Delete Address.
/// Default Included: Standard
/// </summary>
/// <param name="request"></param>
/// <returns>boole</returns>
public async Task<string> RemovePersonPostalAddress(CoreApiMessage<PersonPostalAddress> request)
{
var endpoint = ReplaceEndpointsPersonIdAndPostalAddressId(request.MessageBody.PersonNumber.ToString(),
request.MessageBody.Id.ToString());
var jsonBody = JsonConvert.SerializeObject(request);
var result = await _coreRequest.DeleteRequestObject<object>(endpoint, null, jsonBody);
var stringResult = "";
//If not null DNA sent back a error object back. We want to serialize and use in error log message.
if (result != null)
{
stringResult = JsonConvert.SerializeObject(result);
}
return stringResult;
}
public async Task<PersonAddrLine> UpdatePersonAddrLine(CoreApiMessage<PersonAddrLine> request)
{
var endpoint = ReplaceEndpointsPersonIdAndAdressUseCode(request.MessageBody.PersonNumber.ToString(), request.MessageBody.AddressUseCode);
var jsonBody = JsonConvert.SerializeObject(request);
var result = await _coreRequest.PutRequestObject<CoreApiMessage<PersonAddrLine>>(endpoint, null, jsonBody);
return result?.MessageBody;
}
private string ReplaceEndpointsPersonIdAndPostalAddressId(string personId, string postalAddressId)
{
var endpoint = ReplaceEndpointsPersonId(_coreApiConfiguration.CoreEndPointConfiguration.PersonPostalAddress, personId);
return HttpUtilities.ReplaceRootParameter(endpoint, RequestRootParameters.PostalAddressId, postalAddressId);
}
private string ReplaceEndpointsPersonIdAndAdressUseCode(string personId, string addressUseCode)
{
var endpoint = ReplaceEndpointsPersonId(_coreApiConfiguration.CoreEndPointConfiguration.PersonAddressLine, personId);
return HttpUtilities.ReplaceRootParameter(endpoint, RequestRootParameters.AddressUseCode, addressUseCode);
}
private string ReplaceEndpointsPersonId(string endpoint, string personId)
{
return HttpUtilities.ReplaceRootParameter(endpoint, RequestRootParameters.PersonId, personId);
}
}
}
@@ -0,0 +1,153 @@
using LCU.Library.Internal.CoreApiWrapperLib.CoreDbUtilities;
using LCU.Library.Internal.CoreApiWrapperLib.Utilities;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Agreements;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.MemberAgreements;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public class AgreeDao: IAgreeDao
{
private readonly ICoreDbExecution _coreDbExecution;
private const string AgreeUserByAccountsQuery = "AgreeUserByAccountsQuery";
private const string AgreeUserByPersonNumberQuery = "AgreeUserByPersonNumberQuery";
private const string AgreeUserByOrganizationNumberQuery = "AgreeUserByOrganizationNumberQuery";
private const string AgreementByUserIdQuery = "Agreement/AgreementByUserIdQuery";
private const string AgreementByAgreementIdQuery = "Agreement/AgreementByAgreementIdQuery";
private const string AgreementsByAccountIdQuery = "Agreement/AgreementsByAccountIdQuery";
private const string AccountByAccountIdQuery = "Agreement/AccountByAccountIdQuery";
private const string AccountsByAgreementUserIdQuery = "Agreement/AccountsByAgreementUserIdQuery";
private const string AccountsByOrganizationIdQuery = "Agreement/AccountsByOrganizationIdQuery";
private const string AgreementOwnerByAccountsQuery = "Agreement/AgreementOwnerByAccountsQuery";
private const string AuditActiveSubActiveForAccountChangesQuery = "Agreement/Audit/AuditActiveSubActiveForAccountChangesQuery";
private const string AuditActiveSubActiveForAgreementChangesQuery = "Agreement/Audit/AuditActiveSubActiveForAgreementChangesQuery";
private const string AuditActiveSubActiveForOrganizationChangesQuery = "Agreement/Audit/AuditActiveSubActiveForOrganizationChangesQuery";
private const string AccountNumbersHolder = "{AccountNumbersHolder}";
private const string DnaTimeFormat = "yyyy-MM-dd HH:mm:ss";
public AgreeDao(ICoreDbExecution coreDbExecution)
{
_coreDbExecution = coreDbExecution;
}
public async Task<IEnumerable<AgreeUserAccount>> FindAgreeUsersByAccountNumbers(List<string> accountNumbers)
{
var query = QueryUtilities.GetQuery(AgreeUserByAccountsQuery);
var accountNumbersStringList = QueryUtilities.BuildParameterListString(accountNumbers);
var alteredQuery = query.Replace(AccountNumbersHolder, accountNumbersStringList);
var parameterDictionary = QueryUtilities.BuildDictionaryParameter(accountNumbers);
var result = await _coreDbExecution.ExecuteQuery<AgreeUserAccount, Dictionary<string, object>>(alteredQuery, parameterDictionary);
return result;
}
public async Task<IEnumerable<string>> FindAgreeUserByPersonNumber(long personNumber)
{
var query = QueryUtilities.GetQuery(AgreeUserByPersonNumberQuery);
var personNumberParam = new { personNumber };
var agreementUser = await _coreDbExecution.ExecuteQuery<string, object>(query, personNumberParam);
return agreementUser;
}
public async Task<string> FindAgreeUserByOrganizationNumber(long organizationNumber)
{
var query = QueryUtilities.GetQuery(AgreeUserByOrganizationNumberQuery);
var organizationNumberParam = new { organizationNumber };
var agreementUser = await _coreDbExecution.ExecuteQuery<string, object>(query, organizationNumberParam);
return agreementUser.FirstOrDefault();
}
public async Task<Agreement> FindAgreementByUserId(string userId)
{
var query = QueryUtilities.GetQuery(AgreementByUserIdQuery);
var userIdParam = new { userId };
var agreement = await _coreDbExecution.ExecuteQuery<Agreement, object>(query, userIdParam);
return agreement.FirstOrDefault();
}
public async Task<Agreement> FindAgreementByAgreementId(long agreementId)
{
var query = QueryUtilities.GetQuery(AgreementByAgreementIdQuery);
var agreementIdParam = new { agreementId };
var agreement = await _coreDbExecution.ExecuteQuery<Agreement, object>(query, agreementIdParam);
return agreement.FirstOrDefault();
}
public async Task<IEnumerable<Agreement>> FindAgreementsByAccountId(long accountNumber)
{
var query = QueryUtilities.GetQuery(AgreementsByAccountIdQuery);
var accountNumberParams = new { accountNumber };
return await _coreDbExecution.ExecuteQuery<Agreement, object>(query, accountNumberParams);
}
public async Task<IEnumerable<AgreementAccount>> FindAgreementAccountsByUserId(string userId)
{
var query = QueryUtilities.GetQuery(AccountsByAgreementUserIdQuery);
var userIdParams = new { userId };
return await _coreDbExecution.ExecuteQuery<AgreementAccount, object>(query, userIdParams);
}
public async Task<IEnumerable<AgreementAccount>> FindAgreementAccountsByOrganizationId(long organizationId)
{
var query = QueryUtilities.GetQuery(AccountsByOrganizationIdQuery);
var organizationIdParams = new { organizationId };
return await _coreDbExecution.ExecuteQuery<AgreementAccount, object>(query, organizationIdParams);
}
public async Task<AgreementAccount> FindAgreementAccountByAccountId(long accountNumber)
{
var query = QueryUtilities.GetQuery(AccountByAccountIdQuery);
var accountNumberParams = new { accountNumber };
var account = await _coreDbExecution.ExecuteQuery<AgreementAccount, object>(query, accountNumberParams);
return account.FirstOrDefault();
}
public async Task<IEnumerable<AgreementAccountOwner>> FindAgreementOwnerByAccountNumbers(IEnumerable<long> accountNumbers)
{
var query = QueryUtilities.GetQuery(AgreementOwnerByAccountsQuery);
var accountNumbersStringList = string.Join(",", accountNumbers);
var alteredQuery = query.Replace(AccountNumbersHolder, accountNumbersStringList);
return await _coreDbExecution.ExecuteQuery<AgreementAccountOwner, object>(alteredQuery, null);
}
public async Task<AgreementAccountOwner> FindAgreementOwnerByAccountNumber(long accountNumber)
{
var query = QueryUtilities.GetQuery(AgreementOwnerByAccountsQuery);
var alteredQuery = query.Replace(AccountNumbersHolder, accountNumber.ToString());
var accountOwner = await _coreDbExecution.ExecuteQuery<AgreementAccountOwner, object>(alteredQuery, null);
return accountOwner.FirstOrDefault();
}
public async Task<IEnumerable<long>> AuditAccountDeliveryMethodAndOwnerChangesByDateLastMaintained(DateTime maintenanceDate)
{
var query = QueryUtilities.GetQuery(AuditActiveSubActiveForAccountChangesQuery);
var dateLastMaintained = maintenanceDate.ToString(DnaTimeFormat);
var maintenanceDateParam = new { dateLastMaintained };
return await _coreDbExecution.ExecuteQuery<long, object>(query, maintenanceDateParam);
}
public async Task<IEnumerable<long>> AuditAccountAgreementChangesByDateLastMaintained(DateTime maintenanceDate)
{
var query = QueryUtilities.GetQuery(AuditActiveSubActiveForAgreementChangesQuery);
var dateLastMaintained = maintenanceDate.ToString(DnaTimeFormat);
var maintenanceDateParam = new { dateLastMaintained };
return await _coreDbExecution.ExecuteQuery<long, object>(query, maintenanceDateParam);
}
public async Task<IEnumerable<long>> AuditAccountOrganizationChangesByDateLastMaintained(DateTime maintenanceDate)
{
var query = QueryUtilities.GetQuery(AuditActiveSubActiveForOrganizationChangesQuery);
var dateLastMaintained = maintenanceDate.ToString(DnaTimeFormat);
var maintenanceDateParam = new { dateLastMaintained };
return await _coreDbExecution.ExecuteQuery<long, object>(query, maintenanceDateParam);
}
}
}
@@ -0,0 +1,88 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using LCU.Library.Internal.ApiSecurity.Enums;
using LCU.Library.Internal.ApiSecurity.Models;
using LCU.Library.Internal.CoreApiWrapperLib.Configuration;
using LCU.Library.Internal.CoreApiWrapperLib.CoreDbUtilities;
using LCU.Library.Internal.CoreApiWrapperLib.Utilities;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreResponses;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreSoapRequests;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.MemberAgreements;
using LCU.Library.Internal.LcuHttpClient.HttpRequest;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public class AgreePersonDao : IAgreePersonDao
{
private readonly ICoreDbExecution _coreDbExecution;
private readonly CoreSoapApiConfiguration _coreSoapApiConfiguration;
private readonly ApiSecurityConfiguration _apiSecurityConfiguration;
private readonly IPutRequest _putRequest;
private const string SoapClientKeyValue = "CoreSoapApiWrapper";
private const string AgreePersonByUserIdQuery = "AgreePerson/AgreePersonByUserIdQuery";
private const string GetAgreePersonsQuery = "AgreePerson/GetAgreePersonsQuery";
private const string AgreePersonsWithHyphenatedUserIdQuery = "AgreePerson/AgreePersonsWithHyphenatedUserIdQuery";
private const string GetActiveCustodialAgreePersonNumbers = "AgreePerson/GetActiveCustodialAgreePersonNumbers";
private const string GetActiveCustodialVruCardAgreementAgreePersons = "AgreePerson/GetActiveCustodialVruCardAgreementAgreePersons";
public AgreePersonDao(ICoreDbExecution coreDbExecution,
CoreConfiguration coreConfiguration,
ApiSecurityConfiguration apiSecurityConfiguration,
IPutRequest putRequest)
{
_coreDbExecution = coreDbExecution;
_coreSoapApiConfiguration = coreConfiguration.CoreSoapApiConfiguration;
_apiSecurityConfiguration = apiSecurityConfiguration;
_putRequest = putRequest;
}
public async Task<AgreePerson> FindByUserId(string userId)
{
var query = QueryUtilities.GetQuery(AgreePersonByUserIdQuery);
var userIdParams = new { userId = userId };
var result = await _coreDbExecution.ExecuteQuery<AgreePerson, object>(query, userIdParams);
return result.FirstOrDefault();
}
public async Task<IEnumerable<AgreePerson>> FindAgreePersons(int fetchAmount)
{
var query = QueryUtilities.GetQuery(GetAgreePersonsQuery);
var fectAmountParam = new { fetchAmount = fetchAmount };
var result = await _coreDbExecution.ExecuteQuery<AgreePerson, object>(query, fectAmountParam);
return result;
}
public async Task<IEnumerable<AgreePerson>> FindAgreePersonsWithHyphenatedUserId()
{
var query = QueryUtilities.GetQuery(AgreePersonsWithHyphenatedUserIdQuery);
var result = await _coreDbExecution.ExecuteQuery<AgreePerson>(query);
return result;
}
public async Task<IEnumerable<string>> FindActiveCustodialAgreePersonNumbers()
{
var query = QueryUtilities.GetQuery(GetActiveCustodialAgreePersonNumbers);
var result = await _coreDbExecution.ExecuteQuery<string>(query);
return result;
}
public async Task<IEnumerable<AgreePerson>> FindActiveCustodialVruCardAgreementAgreePersons()
{
var query = QueryUtilities.GetQuery(GetActiveCustodialVruCardAgreementAgreePersons);
var result = await _coreDbExecution.ExecuteQuery<AgreePerson>(query);
return result;
}
public async Task<BasicResponse> UpdatePersonAgreementDetailTypes(PersonAgreementDetailTypeRequest personAgreementDetailTypeRequest)
{
var endpoint = HttpUtilities.BuildHttpsUri(_coreSoapApiConfiguration.CoreSoapApiWrapperHost, _coreSoapApiConfiguration.CoreSoapEndpointConfiguration.PutPersonAgreementsDetailTypes);
var headers = LcuHttpClient.Utilities.HttpUtilities.GetApiKeyHeaders(SoapClientKeyValue, _apiSecurityConfiguration.ExtractApiKey(SoapClientKeyValue, ApiKeySetName.InternalKeySet));
return await _putRequest.Async<PersonAgreementDetailTypeRequest, BasicResponse>(endpoint, personAgreementDetailTypeRequest, headers, 0);
}
}
}
@@ -0,0 +1,51 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperLib.CoreDbUtilities;
using LCU.Library.Internal.CoreApiWrapperLib.Utilities;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.ApplicationHistories;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public class ApplicationHistoryDao : IApplicationHistoryDao
{
private readonly ICoreDbExecution _coreDbExecution;
private const string ApplHistoryQuery = "ApplHistoryQuery";
private const string QueApplParamQuery = "QueApplParamQuery";
private const string DnaTimeFormat = "yyyy-MM-dd HH:mm:ss";
private const string ApplicationNumbersHolder = "{ApplicationNumbersHolder}";
public ApplicationHistoryDao(ICoreDbExecution coreDbExecution)
{
_coreDbExecution = coreDbExecution;
}
public async Task<IEnumerable<ApplicationHistory>> FindApplicationHistory(List<string> applicationNumbers,
DateTime effectiveDate)
{
var query = QueryUtilities.GetQuery(ApplHistoryQuery);
var applicationNumberStringList = QueryUtilities.BuildParameterListString(applicationNumbers);
var alteredQuery = query.Replace(ApplicationNumbersHolder, applicationNumberStringList);
var parameterDictionary = QueryUtilities.BuildDictionaryParameter(applicationNumbers);
parameterDictionary.Add(nameof(effectiveDate), effectiveDate.ToString(DnaTimeFormat));
var results = await _coreDbExecution.ExecuteQuery<ApplicationHistory, Dictionary<string, object>>(alteredQuery, parameterDictionary);
return results;
}
public async Task<IEnumerable<QueueApplicationParameter>> FindApplicationHistoryParameters(List<string> applicationNumbers,
DateTime effectiveDate)
{
var query = QueryUtilities.GetQuery(QueApplParamQuery);
var applicationNumberStringList = QueryUtilities.BuildParameterListString(applicationNumbers);
var alteredQuery = query.Replace(ApplicationNumbersHolder, applicationNumberStringList);
var parameterDictionary = QueryUtilities.BuildDictionaryParameter(applicationNumbers);
parameterDictionary.Add(nameof(effectiveDate), effectiveDate.ToString(DnaTimeFormat));
var results = await _coreDbExecution.ExecuteQuery<QueueApplicationParameter, Dictionary<string, object>>(alteredQuery, parameterDictionary);
return results;
}
}
}
@@ -0,0 +1,35 @@
using System;
using System.Linq;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperLib.Utilities;
using LCU.Library.Internal.CoreApiWrapperLib.CoreApiUtilities;
using LCU.Library.Internal.CoreApiWrapperLib.CoreDbUtilities;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Associate;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public class AssociateDao : BaseCoreDao, IAssociateDao
{
private const string GetAssociateDetailsBySsnQuery = "Associate/GetAssociateDetailsBySsnQuery";
private readonly ICoreDbExecution _coreDbExecution;
public AssociateDao(ICoreRequest coreRequest,
ICoreDbExecution coreDbExecution)
: base(coreRequest)
{
_coreDbExecution = coreDbExecution;
}
public async Task<AssociateDetails> GetAssociateDetailsBySsn(string taxId)
{
var query = QueryUtilities.GetQuery(GetAssociateDetailsBySsnQuery);
var queryParameters = new
{
taxId = taxId
};
return (await _coreDbExecution.ExecuteQuery<AssociateDetails, dynamic>(query, queryParameters)).FirstOrDefault();
}
}
}
@@ -0,0 +1,14 @@
using LCU.Library.Internal.CoreApiWrapperLib.CoreApiUtilities;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public abstract class BaseCoreDao
{
protected readonly ICoreRequest _coreRequest;
public BaseCoreDao(ICoreRequest coreRequest)
{
_coreRequest = coreRequest;
}
}
}
@@ -0,0 +1,38 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperLib.Utilities;
using LCU.Library.Internal.CoreApiWrapperLib.Configuration;
using LCU.Library.Internal.CoreApiWrapperLib.CoreApiUtilities;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Branches;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public class BranchDao : BaseCoreDao, IBranchDao
{
private readonly CoreConfiguration _coreConfiguration;
private readonly CoreApiConfiguration _coreApiConfiguration;
public BranchDao(ICoreRequest coreRequest,
CoreConfiguration coreConfiguration)
: base(coreRequest)
{
_coreConfiguration = coreConfiguration;
_coreApiConfiguration = _coreConfiguration.CoreApiConfiguration;
}
/// <summary>
/// Calls Core API to get all branches.
/// Default Included: Graph
/// </summary>
/// <returns>IEnumerable<Branch></returns>
public async Task<IEnumerable<Branch>> FindBranches(CoreRequestParameters coreRequestParameters)
{
var endpointParameters = HttpUtilities.BuildDictionaryOfNonNullValues(coreRequestParameters);
var result = await _coreRequest.GetRequestObject<CoreApiMessage<IEnumerable<Branch>>>(
_coreApiConfiguration.CoreEndPointConfiguration.Branches,
endpointParameters);
return result?.MessageBody;
}
}
}
@@ -0,0 +1,15 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.AccessChannelPersons;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreRequests;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public interface IAccessChannelPersonsDao
{
Task<AccessChannelPerson> UpdateAccessChannelPerson(CoreApiMessage<AccessChannelPerson> request);
Task<CoreApiMessage<IEnumerable<AccessChannelPerson>>> FindAccessChannelPersonsByPerson(CoreRequestParameters coreRequestParameters,
AccessChannelPersonsByPersonRequest request);
}
}
@@ -0,0 +1,12 @@
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.AccessChannelPersons;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.AccessTypes;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public interface IAccessTypeDao
{
Task<AccessType> UpdateAccessType(CoreApiMessage<AccessType> request, string accessChannelPersonId);
}
}
@@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using CoreRequest = LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreRequests;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Accounts;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Collaterals;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreRequests;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreResponses;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreSoapResponses;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public interface IAccountDao
{
Task<IEnumerable<Account>> FindByMemberAgreeNbr(CoreRequestParameters coreRequestParameters, MemberAgreeNbrRequest request);
Task<Account> FindByAcctNbr(CoreRequestParameters coreRequestParameters, AcctNbrRequest request);
Task<IEnumerable<Collateral>> FindCollateralById(CoreRequestParameters coreRequestParameters, string accountId);
Task PutAccountMaintenanceRequest(IEnumerable<CoreRequest.AccountMaintenanceRequest> accountMaintenanceRequests);
Task<List<ActivityAccountDetails>> GetActivityAccountDetailsByAccountNumbers(List<string> accountNumbers);
Task<IEnumerable<string>> FindAdminBranchCodeChangeAccountNumbers();
Task<IEnumerable<string>> FindVipSavingsToFund();
Task<IEnumerable<string>> FindAccountsToUpdateAccountAnalysis();
Task<BasicResponse> UpdateAccountAnalysis(AccountAnalysisGroupMaintenanceRequest accountAnalysisGroupMaintenanceRequest);
Task<BasicResponse> UpdateAccountBranch(AccountBranchUpdateRequest accountBranchUpdateRequest);
Task<BasicResponse> UpdateAccountLoanToValue(AccountLtvUpdateRequest accountLtvUpdateRequest);
Task<BasicResponse> UpdateAccountNickName(AccountNickNameUpdateRequest accountNickNameUpdateRequest);
Task<BasicResponse> UpdateAccountContractDate(AccountContractDateUpdateRequest accountContractDateUpdateRequest);
Task<IEnumerable<AccountOwnership>> FindOwnersByAccountNumber(long accountNumber, DateTime createdDate);
Task<IEnumerable<AccountOwnership>> FindPrimaryOwnersByOrganizationName(string organizationName);
Task<IEnumerable<AccountOwnership>> FindPrimaryOwnersByPersonName(string personName);
Task<CreatedAccountResponse> AddPersonAccount(CreatePersonAccountRequest createPersonAccountRequest);
Task<CreatedAccountResponse> AddOrganizationAccount(CreateOrganizationAccountRequest createOrganizationAccountRequest);
Task<BasicResponse> PutOrganizationMaintenanceRequest(OrganizationMaintenanceRequest organziationMaintenanceRequest);
Task<BasicResponse> UpdateAccountCreditReportType(AccountCreditReportTypeUpdateRequest accountCreditReportTypeUpdateRequest);
Task<IEnumerable<AccountsByMajorMinorBranchAndStatusResponse>> GetAccountsByMajorMinorBranchAndStatus(AccountsByMajorMinorBranchAndStatusRequest request);
Task<IEnumerable<AccountsByRecentTransactionsResponse>> GetAccountsByRecentTransactions(AccountsByRecentTransactionsRequest request);
}
}
@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public interface IAccountHistoryDao
{
Task<IEnumerable<DateTime>> GetChargeoffDateTimesByAccountNumber(string accountNumber);
}
}
@@ -0,0 +1,18 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Accounts;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreRequests;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public interface IAccountUserFieldDao
{
Task<AccountUserField> UpdateAccountUserField(CoreApiMessage<AccountUserFieldRequest> accountUserFieldUpdateRequest,
string accountId,
string userFieldId);
Task<AccountUserField> InsertAccountUserField(CoreApiMessage<AccountUserFieldRequest> accountUserFieldUpdateRequest,
string accountId);
Task<CoreApiMessage<IEnumerable<AccountUserField>>> FindAccountUserFieldCoreApiResponseByAccountId(CoreRequestParameters coreRequestParameters, string accountId);
}
}
@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Activity;
using LCU.Library.Internal.CoreApiWrapperModel.LcuModels.Activity;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public interface IActivityDao
{
Task<IReadOnlyCollection<NewCheckingAccountActivity>> GetNewCheckingActivitiesNewerThanDate(DateTime newerThanDateTime, int limitAmount);
Task<IReadOnlyCollection<NewCheckingAccountActivity>> GetNewCheckingActivitiesAfterActivityNbr(long afterActivityNumber, int limitAmount);
Task<IReadOnlyCollection<NewCheckingAccountActivity>> GetNewCheckingActivities(DateTime newerThanDateTime, long afterActivityNumber, int limitAmount);
Task<IReadOnlyCollection<NewCheckingAccountActivity>> GetNewDigitalBankingCheckingActivitiesNewerThanDate(DateTime newerThanDateTime, int limitAmount);
Task<IReadOnlyCollection<NewCheckingAccountActivity>> GetNewDigitalBankingCheckingActivitiesAfterActivityNbr(long afterActivityNumber, int limitAmount);
Task<IReadOnlyCollection<NewCheckingAccountActivity>> GetNewDigitalBankingCheckingActivities(DateTime newerThanDateTime, long afterActivityNumber, int limitAmount);
Task<IReadOnlyCollection<NewAtmCheckCardActivity>> GetNewAtmCheckCardActivitiesNewerThanDate(DateTime newerThanDateTime, int limitAmount);
Task<IReadOnlyCollection<NewAtmCheckCardActivity>> GetNewAtmCheckCardActivitiesAfterActivityNbr(long afterActivityNumber, int limitAmount);
Task<IReadOnlyCollection<NewAtmCheckCardActivity>> GetNewAtmCheckCardActivities(DateTime newerThanDateTime, long afterActivityNumber, int limitAmount);
Task<IReadOnlyCollection<NewActivityManagerIncentiveReferral>> GetNewActivityManagerReferralsNewerThan(DateTime newerThanOriginationDateTime);
Task<IReadOnlyCollection<NewActivityManagerIncentiveReferral>> GetNewActivityManagerReferralsAfterActivityId(long afterActivityId);
Task<IReadOnlyCollection<NewActivityManagerIncentiveReferral>> GetNewActivityManagerReferrals(DateTime newerThanOriginationDateTime, long afterActivityId);
Task<IReadOnlyCollection<NewLoanSaleActivity>> GetNewMortgageSaleActivities(DateTime? newerThanDateTime, long? afterActivityNumber);
Task<IReadOnlyCollection<NewLoanSaleActivity>> GetNewVehicleSaleActivities(DateTime? newerThanDateTime, long? afterActivityNumber);
Task<IReadOnlyCollection<NewLoanSaleActivity>> GetNewDebtProtectedLoanSaleActivities(DateTime? newerThanDateTime, long? afterActivityNumber);
Task<IReadOnlyCollection<NewActivityManagerIncentiveReferral>> QueryActivityManagerActivity(ActivityQueryRequest request);
Task<IReadOnlyCollection<EStatementDeliveryMethod>> GetEStatementDeliveryActivity(DateTime? newerThanDateTime);
Task<IReadOnlyCollection<PersonRecentActivity>> GetPersonActivityByPhoneNumber(string phoneNumber);
Task<PersonRecentActivity> GetPersonActivityByPersonNumber(string personNumber);
}
}
@@ -0,0 +1,19 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.PostalAddresses;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public interface IAddressDao
{
Task<CoreApiMessage<PersonPostalAddress>> FindByPersonNumberAddressNumber(CoreRequestParameters coreRequestParameters,
string personId,
string postalAddressId);
Task<CoreApiMessage<IReadOnlyCollection<PersonPostalAddress>>> FindByPersonNumber(CoreRequestParameters coreRequestParameters,
string personNumber);
Task<PersonPostalAddress> InsertPersonPostalAddress(PersonPostalAddress request);
Task<string> RemovePersonPostalAddress(CoreApiMessage<PersonPostalAddress> request);
Task<PersonAddrLine> UpdatePersonAddrLine(CoreApiMessage<PersonAddrLine> request);
}
}
@@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Agreements;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.MemberAgreements;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public interface IAgreeDao
{
Task<IEnumerable<AgreeUserAccount>> FindAgreeUsersByAccountNumbers(List<string> accountNumbers);
Task<IEnumerable<string>> FindAgreeUserByPersonNumber(long personNumber);
Task<string> FindAgreeUserByOrganizationNumber(long organizationNumber);
Task<Agreement> FindAgreementByUserId(string userId);
Task<Agreement> FindAgreementByAgreementId(long agreementId);
Task<IEnumerable<Agreement>> FindAgreementsByAccountId(long accountNumber);
Task<IEnumerable<AgreementAccount>> FindAgreementAccountsByUserId(string userId);
Task<IEnumerable<AgreementAccount>> FindAgreementAccountsByOrganizationId(long organizationId);
Task<AgreementAccount> FindAgreementAccountByAccountId(long accountId);
Task<IEnumerable<AgreementAccountOwner>> FindAgreementOwnerByAccountNumbers(IEnumerable<long> accountNumber);
Task<AgreementAccountOwner> FindAgreementOwnerByAccountNumber(long accountNumber);
Task<IEnumerable<long>> AuditAccountDeliveryMethodAndOwnerChangesByDateLastMaintained(DateTime maintenanceDate);
Task<IEnumerable<long>> AuditAccountAgreementChangesByDateLastMaintained(DateTime maintenanceDate);
Task<IEnumerable<long>> AuditAccountOrganizationChangesByDateLastMaintained(DateTime maintenanceDate);
}
}
@@ -0,0 +1,18 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreSoapRequests;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreResponses;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.MemberAgreements;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public interface IAgreePersonDao
{
Task<AgreePerson> FindByUserId(string userId);
Task<IEnumerable<AgreePerson>> FindAgreePersons(int fetchAmount);
Task<IEnumerable<AgreePerson>> FindAgreePersonsWithHyphenatedUserId();
Task<IEnumerable<string>> FindActiveCustodialAgreePersonNumbers();
Task<IEnumerable<AgreePerson>> FindActiveCustodialVruCardAgreementAgreePersons();
Task<BasicResponse> UpdatePersonAgreementDetailTypes(PersonAgreementDetailTypeRequest personAgreeementDetailTypeRequest);
}
}
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.ApplicationHistories;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public interface IApplicationHistoryDao
{
Task<IEnumerable<ApplicationHistory>> FindApplicationHistory(List<string> applicationNumbers,
DateTime effectiveDate);
Task<IEnumerable<QueueApplicationParameter>> FindApplicationHistoryParameters(List<string> applicationNumbers,
DateTime effectiveDate);
}
}
@@ -0,0 +1,11 @@
using System;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Associate;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public interface IAssociateDao
{
Task<AssociateDetails> GetAssociateDetailsBySsn(string taxId);
}
}
@@ -0,0 +1,12 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Branches;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public interface IBranchDao
{
Task<IEnumerable<Branch>> FindBranches(CoreRequestParameters coreRequestParameters);
}
}
@@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.IndirectLoan;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public interface IIndirectLoanDao
{
Task<IEnumerable<IndirectLoanDetail>> FindByAccountNumber(long accountNumber);
Task<IEnumerable<IndirectLoanDetail>> FindByPostedDate(DateTime newerThanDateTime);
Task<IEnumerable<ClosedIndirectLoan>> FindClosedByPostedDate(DateTime newerThanDateTime);
Task<IEnumerable<IndirectLoanDetail>> FindClosedWithDetailByPostedDate(DateTime newerThanDateTime);
Task<IEnumerable<UpdateDealerOriginalBalanceResponse>> UpdateDealerOriginalBalance(string accountNumber);
}
}
@@ -0,0 +1,17 @@
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreRequests;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Organizations;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public interface IOrganizationDao
{
Task<Organization> FindOrganizationByMemberAgreeNbr(CoreRequestParameters coreRequestParameters, MemberNbrRequest organizationRequest);
Task<IEnumerable<Organization>> FindByOrganizationsSearch(CoreRequestParameters coreRequestParameters, OrganizationSearchRequest searchRequest);
Task<long> CountOrganizationNumbersByName(string name);
Task<IEnumerable<long>> FindOrganizationNumbersByNameSearch(string name, int limit);
}
}
@@ -0,0 +1,17 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreRequests;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Persons;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public interface IPersonDao
{
Task<IEnumerable<Person>> FindByPersonsName(CoreRequestParameters coreRequestParameters, PersonNameRequest personRequest);
Task<IEnumerable<Person>> FindByPersonsSearch(CoreRequestParameters coreRequestParameters, PersonSearchRequest personRequest);
Task<Person> FindByPersonMemberAgreementNbr(CoreRequestParameters coreRequestParameters, MemberNbrRequest personRequest);
Task<IEnumerable<long>> GetPersonNumbersByNameLike(string firstName, string middleName, string lastName, int limit);
Task<long> CountPersonsByNameLike(string firstName, string middleName, string lastName);
}
}
@@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreRequests;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Persons;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public interface IPersonUserFieldDao
{
Task<PersonUserField> InsertPersonUserField(CoreApiMessage<PersonUserFieldRequest> personUserFieldRequest,
int personId);
Task<PersonUserField> UpdatePersonUserField(CoreApiMessage<PersonUserFieldRequest> personUserFieldUpdateRequest,
int personId,
string userFieldId);
Task<CoreApiMessage<IEnumerable<PersonUserField>>> FindPersonUserFieldCoreApiResponseByPersonId(CoreRequestParameters coreRequestParameters, int personId);
Task<IEnumerable<PersonCheckHoldsUserField>> FindPersonsForAtmCheckHolds(DateTime? resetStartDate, DateTime? resetEndDate);
}
}
@@ -0,0 +1,10 @@
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Properties;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public interface IPropertyDao
{
Task<Property> FindProperty(long propertynumber);
}
}
@@ -0,0 +1,16 @@
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreRequests;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using System.Collections.Generic;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Properties;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreResponses;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public interface IPropertyUserFieldDao
{
Task<BasicResponse> InsertPropertyUserField(UserFieldRequest request);
Task<BasicResponse> UpdatePropertyUserField(UserFieldRequest request);
Task<CoreApiMessage<IEnumerable<PropertyUserField>>> FindPropertyUserFieldCoreApiResponseByPersonId(CoreRequestParameters coreRequestParameters, int propertyId);
}
}
@@ -0,0 +1,12 @@
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Saf;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public interface ISafDao
{
public Task<IEnumerable<SafUser>> GetAllSafUsersCoreInfo();
}
}
@@ -0,0 +1,24 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Tax;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public interface ITaxDao
{
/// <summary>
/// Calls Core API and provides a peron's taxId to get taxIdData against.
/// </summary>
/// <param name="coreRequestParameters"></param>
/// <param name="taxId"></param>
Task<IEnumerable<PersonTaxIdDataResponse>> GetPersonTaxIdData(CoreRequestParameters coreRequestParameters, string taxId);
/// <summary>
/// Calls Core API and provides an organization's taxId to get taxIdData against.
/// </summary>
/// <param name="coreRequestParameters"></param>
/// <param name="taxId"></param>
Task<IEnumerable<OrganizationTaxIdDataResponse>> GetOrganizationTaxIdData(CoreRequestParameters coreRequestParameters, string taxId);
}
}
@@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreRequests;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreResponses;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Transaction;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public interface ITransactionDao
{
Task<IEnumerable<TransactionHistory>> FindTransactionHistoryById(CoreRequestParameters coreRequestParameters,
TransactionHistoryRequest request,
string accountId);
Task<List<MonetaryTransactionResponse>> AddMonetaryTransactions(List<GroupedMonetaryTransactionRequest> requests);
Task<IEnumerable<ExternalDescription>> FindExternalDescriptionsWithSsn();
void UpdateExternalDescription(ExternalDescription externalTransactionDescription);
Task<List<BasicResponse>> PostFundsToAccount(List<FundsToAccountRequest> requests);
Task<IEnumerable<TransactionAlertInfo>> GetTransactionsByDateSpan(DateTime startDateRange, DateTime endDateRange, string rtxnTypCdToExcludeParams, string rtxnTypCdToExcludeVerify);
}
}
@@ -0,0 +1,104 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using LCU.Library.Internal.ApiSecurity.Enums;
using LCU.Library.Internal.ApiSecurity.Models;
using LCU.Library.Internal.CoreApiWrapperLib.Configuration;
using LCU.Library.Internal.CoreApiWrapperLib.CoreDbUtilities;
using LCU.Library.Internal.CoreApiWrapperLib.Utilities;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.IndirectLoan;
using LCU.Library.Internal.LcuHttpClient.HttpRequest;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public class IndirectLoanDao : IIndirectLoanDao
{
private readonly ICoreDbExecution _coreDbExecution;
private readonly CoreSoapApiConfiguration _coreSoapApiConfiguration;
private readonly ApiSecurityConfiguration _apiSecurityConfiguration;
private readonly IPutRequest _putRequest;
private const string SoapClientKeyValue = "CoreSoapApiWrapper";
private const string indirectLoanByAcctNbrQuery = "IndirectLoan/IndirectLoan_ByAcctNbr_Query";
private const string indirectLoanByPostedDateQuery = "IndirectLoan/IndirectLoan_ByPostedDate_Query";
private const string closedIndirectLoanByPostedDateQuery = "IndirectLoan/ClosedIndirectLoan_ByPostedDate_Query";
private const string closedIndirectLoanWithDetailByPostedDateQuery = "IndirectLoan/ClosedIndirectLoanWithDetail_ByPostedDate_Query";
private const string DnaTimeFormat = "yyyy-MM-dd HH:mm:ss";
public IndirectLoanDao(ICoreDbExecution coreDbExecution,
CoreConfiguration coreConfiguration,
ApiSecurityConfiguration apiSecurityConfiguration,
IPutRequest putRequest)
{
_coreSoapApiConfiguration = coreConfiguration.CoreSoapApiConfiguration;
_coreDbExecution = coreDbExecution;
_apiSecurityConfiguration = apiSecurityConfiguration;
_putRequest = putRequest;
}
/// <summary>
/// Searches for indirect loans based on account number using SQL query.
/// Default Included: Graph
/// </summary>
/// <param name="accountNumber"></param>
/// <returns>IEnumerable<IndirectLoanDetail></returns>
public async Task<IEnumerable<IndirectLoanDetail>> FindByAccountNumber(long accountNumber)
{
var query = QueryUtilities.GetQuery(indirectLoanByAcctNbrQuery);
var accountNumberParam = new { AcctNbr = accountNumber };
var results = await _coreDbExecution.ExecuteQuery<IndirectLoanDetail, object>(query, accountNumberParam);
return results;
}
/// <summary>
/// Searches for indirect loans with posted date greater than the parameter using SQL query.
/// Default Included: Graph
/// </summary>
/// <param name="newerThanDateTime"></param>
/// <returns>IEnumerable<IndirectLoanDetail></returns>
public async Task<IEnumerable<IndirectLoanDetail>> FindByPostedDate(DateTime newerThanDateTime)
{
var query = QueryUtilities.GetQuery(indirectLoanByPostedDateQuery);
var newerThanDateTimeParam = new { newerThanDateTime = newerThanDateTime.ToString(DnaTimeFormat) };
var results = await _coreDbExecution.ExecuteQuery<IndirectLoanDetail, object>(query, newerThanDateTimeParam);
return results;
}
/// <summary>
/// Searches for closed indirect loans with closed date greater than the parameter using SQL query.
/// Default Included: Graph
/// </summary>
/// <param name="newerThanDateTime"></param>
/// <returns>IEnumerable<IndirectLoanDetail></returns>
public async Task<IEnumerable<ClosedIndirectLoan>> FindClosedByPostedDate(DateTime newerThanDateTime)
{
var query = QueryUtilities.GetQuery(closedIndirectLoanByPostedDateQuery);
var newerThanDateTimeParam = new { newerThanDateTime = newerThanDateTime.ToString(DnaTimeFormat) };
var results = await _coreDbExecution.ExecuteQuery<ClosedIndirectLoan, object>(query, newerThanDateTimeParam);
return results;
}
/// <summary>
/// Searches for closed indirect loans with detail with closed date greater than the parameter using SQL query.
/// Default Included: Graph
/// </summary>
/// <param name="newerThanDateTime"></param>
/// <returns>IEnumerable<IndirectLoanDetail></returns>
public async Task<IEnumerable<IndirectLoanDetail>> FindClosedWithDetailByPostedDate(DateTime newerThanDateTime)
{
var query = QueryUtilities.GetQuery(closedIndirectLoanWithDetailByPostedDateQuery);
var newerThanDateTimeParam = new { newerThanDateTime = newerThanDateTime.ToString(DnaTimeFormat) };
var results = await _coreDbExecution.ExecuteQuery<IndirectLoanDetail, object>(query, newerThanDateTimeParam);
return results;
}
public async Task<IEnumerable<UpdateDealerOriginalBalanceResponse>> UpdateDealerOriginalBalance(string accountNumber)
{
var endpoint = HttpUtilities.BuildHttpsUri(_coreSoapApiConfiguration.CoreSoapApiWrapperHost, _coreSoapApiConfiguration.CoreSoapEndpointConfiguration.PutDealerOriginalBalance + $"?accountNumber={accountNumber}");
var headers = LcuHttpClient.Utilities.HttpUtilities.GetApiKeyHeaders(SoapClientKeyValue, _apiSecurityConfiguration.ExtractApiKey(SoapClientKeyValue, ApiKeySetName.InternalKeySet));
return await _putRequest.Async<string, List<UpdateDealerOriginalBalanceResponse>>(endpoint, null, headers, 0);
}
}
}
@@ -0,0 +1,12 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperModel.LcuModels.LoanPayoff;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public interface ILoanPayoffDao
{
Task<List<LoanPayoff>> GetLoanPayoffByAccountNumber(long accountNumber, string dateRange);
Task<List<LoanPayoff>> GetLoanPayoffByVIN(string VIN, string dateRange);
}
}
@@ -0,0 +1,48 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperLib.Utilities;
using LCU.Library.Internal.CoreApiWrapperLib.Configuration;
using LCU.Library.Internal.CoreApiWrapperLib.CoreApiUtilities;
using LCU.Library.Internal.CoreApiWrapperLib.CoreDbUtilities;
using LCU.Library.Internal.CoreApiWrapperModel.LcuModels.LoanPayoff;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public class LoanPayoffDao : BaseCoreDao, ILoanPayoffDao
{
private readonly ICoreDbExecution _coreDbExecution;
public LoanPayoffDao(ICoreRequest coreRequest, CoreConfiguration coreConfiguration, ICoreDbExecution coreDbExecution) : base(coreRequest)
{
_coreDbExecution = coreDbExecution;
}
public async Task<List<LoanPayoff>> GetLoanPayoffByAccountNumber(long accountNumber, string dateRange)
{
var query = QueryUtilities.GetQuery("LoanPayoff/LoanPayoffByAccountNumberQuery");
var accountActivityParams = new
{
dateRange = dateRange,
accountNumber = accountNumber
};
var results =
await _coreDbExecution.ExecuteQuery<LoanPayoff, object>(query, accountActivityParams);
return results.ToList();
}
public async Task<List<LoanPayoff>> GetLoanPayoffByVIN(string VIN, string dateRange)
{
var query = QueryUtilities.GetQuery("LoanPayoff/LoanPayoffByVINQuery");
var accountActivityParams = new
{
dateRange = dateRange,
VIN = VIN
};
var results =
await _coreDbExecution.ExecuteQuery<LoanPayoff, object>(query, accountActivityParams);
return results.ToList();
}
}
}
@@ -0,0 +1,90 @@
using System.Collections.Generic;
using System.Linq;
using LCU.Library.Internal.CoreApiWrapperLib.Configuration;
using LCU.Library.Internal.CoreApiWrapperLib.CoreApiUtilities;
using LCU.Library.Internal.CoreApiWrapperLib.Utilities;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreRequests;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Organizations;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperLib.CoreDbUtilities;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public class OrganizationDao : BaseCoreDao, IOrganizationDao
{
private const string OrganizationByNameLikeCount = "Organization/OrganizationByNameLikeCount";
private const string OrganizationNumberByNameLikeQuery = "Organization/OrganizationNumberByNameLikeQuery";
private readonly CoreApiConfiguration _coreApiConfiguration;
private readonly ICoreDbExecution _coreDb;
public OrganizationDao
(
ICoreRequest coreRequest,
CoreConfiguration coreConfiguration,
ICoreDbExecution coreDbExecution
)
: base(coreRequest)
{
_coreApiConfiguration = coreConfiguration.CoreApiConfiguration;
_coreDb = coreDbExecution;
}
/// <summary>
/// Calls Core API to search based on any field in the OrganizationSearchRequest properties.
/// </summary>
/// <param name="coreRequestParameters"></param>
/// <param name="searchRequest"></param>
/// <returns>IEnumerable<Organization></returns>
public async Task<IEnumerable<Organization>> FindByOrganizationsSearch(CoreRequestParameters coreRequestParameters, OrganizationSearchRequest searchRequest)
{
var endpointParameters = HttpUtilities.BuildDictionaryOfNonNullValues(coreRequestParameters);
var jsonBody = HttpUtilities.BuildJsonOfNonNullProperties(searchRequest);
var result = await _coreRequest.PostRequestObject<CoreApiMessage<IEnumerable<Organization>>>(_coreApiConfiguration.CoreEndPointConfiguration.OrganizationQuerySearch,
endpointParameters,
jsonBody);
return result?.MessageBody;
}
/// <summary>
/// Calls Core API to search based on MemberAgreementNbrRequest property.
/// Default Included: Graph
/// </summary>
/// <param name="coreRequestParameters"></param>
/// <param name="memberAgreeNbrRequest"></param>
/// <returns>Organization</returns>
public async Task<Organization> FindOrganizationByMemberAgreeNbr(CoreRequestParameters coreRequestParameters, MemberNbrRequest organizationRequest)
{
var endpointParameters = HttpUtilities.BuildDictionaryOfNonNullValues(coreRequestParameters);
var jsonBody = HttpUtilities.BuildJsonOfNonNullProperties(organizationRequest);
var result = await _coreRequest.PostRequestObject<CoreApiMessage<Organization>>(
_coreApiConfiguration.CoreEndPointConfiguration.OrganizationsQueryMemberAgreementNbr,
endpointParameters,
jsonBody);
return result?.MessageBody;
}
public async Task<long> CountOrganizationNumbersByName(string name)
{
var query = QueryUtilities.GetQuery(OrganizationByNameLikeCount);
var queryParameters = new {
organizationName = name.ToLowerInvariant()
};
return (await _coreDb.ExecuteQuery<long, dynamic>(query, queryParameters)).Single();
}
public async Task<IEnumerable<long>> FindOrganizationNumbersByNameSearch(string name, int limit)
{
var query = QueryUtilities.GetQuery(OrganizationNumberByNameLikeQuery);
var queryParameters = new {
organizationName = name.ToLowerInvariant(),
limit
};
return await _coreDb.ExecuteQuery<long, dynamic>(query, queryParameters);
}
}
}
@@ -0,0 +1,111 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperLib.Utilities;
using LCU.Library.Internal.CoreApiWrapperLib.Configuration;
using LCU.Library.Internal.CoreApiWrapperLib.CoreApiUtilities;
using LCU.Library.Internal.CoreApiWrapperLib.CoreDbUtilities;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Persons;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreRequests;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public class PersonDao : BaseCoreDao, IPersonDao
{
private const string PersonByNameLikeCount = "Person/PersonByNameLikeCount";
private const string PersonNumberByNameLikeQuery = "Person/PersonNumberByNameLikeQuery";
private readonly ICoreDbExecution _coreDbExecution;
private readonly CoreConfiguration _coreConfiguration;
private readonly CoreApiConfiguration _coreApiConfiguration;
public PersonDao(ICoreRequest coreRequest,
ICoreDbExecution coreDbExecution,
CoreConfiguration coreConfiguration)
: base(coreRequest)
{
_coreConfiguration = coreConfiguration;
_coreApiConfiguration = _coreConfiguration.CoreApiConfiguration;
_coreDbExecution = coreDbExecution;
}
/// <summary>
/// Calls Core API to search based on any or any number of the PersonNameRequest properties.
/// Default Included: Graph
/// </summary>
/// <param name="coreRequestParameters"></param>
/// <param name="personRequest"></param>
/// <returns>IEnumerable<Person></returns>
public async Task<IEnumerable<Person>> FindByPersonsName(CoreRequestParameters coreRequestParameters, PersonNameRequest personRequest)
{
var endpointParameters = HttpUtilities.BuildDictionaryOfNonNullValues(coreRequestParameters);
var jsonBody = HttpUtilities.BuildJsonOfNonNullProperties(personRequest);
var result = await _coreRequest.PostRequestObject<CoreApiMessage<IEnumerable<Person>>>(
_coreApiConfiguration.CoreEndPointConfiguration.PersonsQueryName,
endpointParameters,
jsonBody);
return result?.MessageBody;
}
/// <summary>
/// Calls Core API to search based on any or any number of the PersonSearchRequest properties.
/// Default Included: EmailAddresses, OrgRelationships, PersonInfo, PersonPhonesCard, PostalAddresses
/// </summary>
/// <param name="coreRequestParameters"></param>
/// <param name="personRequest"></param>
/// <returns>IEnumerable<Person></returns>
public async Task<IEnumerable<Person>> FindByPersonsSearch(CoreRequestParameters coreRequestParameters, PersonSearchRequest personRequest)
{
var endpointParameters = HttpUtilities.BuildDictionaryOfNonNullValues(coreRequestParameters);
var jsonBody = HttpUtilities.BuildJsonOfNonNullProperties(personRequest);
var result = await _coreRequest.PostRequestObject<CoreApiMessage<IEnumerable<Person>>>(_coreApiConfiguration.CoreEndPointConfiguration.PersonsQuerySearch,
endpointParameters,
jsonBody);
return result?.MessageBody;
}
/// <summary>
/// Calls Core API to search based on MemberAgreementNbrRequest property.
/// Default Included: Graph
/// </summary>
/// <param name="coreRequestParameters"></param>
/// <param name="personRequest"></param>
/// <returns>Person</returns>
public async Task<Person> FindByPersonMemberAgreementNbr(CoreRequestParameters coreRequestParameters, MemberNbrRequest personRequest)
{
var endpointParameters = HttpUtilities.BuildDictionaryOfNonNullValues(coreRequestParameters);
var jsonBody = HttpUtilities.BuildJsonOfNonNullProperties(personRequest);
var result = await _coreRequest.PostRequestObject<CoreApiMessage<Person>>(
_coreApiConfiguration.CoreEndPointConfiguration.PersonsQueryMemberAgreementNbr,
endpointParameters,
jsonBody);
return result?.MessageBody;
}
public async Task<IEnumerable<long>> GetPersonNumbersByNameLike(string firstName, string middleName, string lastName, int limit)
{
var query = QueryUtilities.GetQuery(PersonNumberByNameLikeQuery);
var queryParameters = new {
firstName = firstName?.ToLowerInvariant(),
middleName = middleName?.ToLowerInvariant(),
lastName = lastName?.ToLowerInvariant(),
limit
};
return await _coreDbExecution.ExecuteQuery<long, dynamic>(query, queryParameters);
}
public async Task<long> CountPersonsByNameLike(string firstName, string middleName, string lastName)
{
var query = QueryUtilities.GetQuery(PersonByNameLikeCount);
var queryParameters = new {
firstName = firstName?.ToLowerInvariant(),
middleName = middleName?.ToLowerInvariant(),
lastName = lastName?.ToLowerInvariant()
};
return (await _coreDbExecution.ExecuteQuery<long, dynamic>(query, queryParameters)).Single();
}
}
}
@@ -0,0 +1,78 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using System;
using Newtonsoft.Json;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperLib.Utilities;
using LCU.Library.Internal.CoreApiWrapperLib.Configuration;
using LCU.Library.Internal.CoreApiWrapperLib.CoreApiUtilities;
using LCU.Library.Internal.CoreApiWrapperModel.Constants;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreRequests;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Persons;
using LCU.Library.Internal.CoreApiWrapperLib.CoreDbUtilities;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public class PersonUserFieldDao : BaseCoreDao, IPersonUserFieldDao
{
private readonly ICoreDbExecution _coreDbExecution;
private readonly CoreConfiguration _coreConfiguration;
private readonly CoreApiConfiguration _coreApiConfiguration;
private const string GetPersonsForCheckHoldsUpdate = "Person/GetPersonsForCheckHoldsUpdate";
private const string DnaTimeFormat = "MM-dd-yyyy HH:mm:ss";
public PersonUserFieldDao(ICoreRequest coreRequest, CoreConfiguration coreConfiguration, ICoreDbExecution coreDbExecution) : base(coreRequest)
{
_coreConfiguration = coreConfiguration;
_coreApiConfiguration = _coreConfiguration.CoreApiConfiguration;
_coreDbExecution = coreDbExecution;
}
public async Task<PersonUserField> UpdatePersonUserField(CoreApiMessage<PersonUserFieldRequest> personUserFieldUpdateRequest,
int personId,
string userFieldId)
{
var strPersonId = JsonConvert.ToString(personId);
var endpoint = HttpUtilities.ReplaceRootParameter(_coreApiConfiguration.CoreEndPointConfiguration.PutPersonUserField,
RequestRootParameters.PersonId,
strPersonId);
endpoint = HttpUtilities.ReplaceRootParameter(endpoint, RequestRootParameters.UserFieldId, userFieldId);
var jsonBody = JsonConvert.SerializeObject(personUserFieldUpdateRequest);
var result = await _coreRequest.PutRequestObject<CoreApiMessage<PersonUserField>>(endpoint, null, jsonBody);
return result?.MessageBody;
}
public async Task<PersonUserField> InsertPersonUserField(CoreApiMessage<PersonUserFieldRequest> personUserFieldRequest,
int personId)
{
var strPersonId = JsonConvert.ToString(personId);
var endpoint = HttpUtilities.ReplaceRootParameter(_coreApiConfiguration.CoreEndPointConfiguration.PersonUserFields,
RequestRootParameters.PersonId,
strPersonId);
var jsonBody = JsonConvert.SerializeObject(personUserFieldRequest);
var result = await _coreRequest.PostRequestObject<CoreApiMessage<PersonUserField>>(endpoint, null, jsonBody);
return result?.MessageBody;
}
public async Task<CoreApiMessage<IEnumerable<PersonUserField>>> FindPersonUserFieldCoreApiResponseByPersonId(CoreRequestParameters coreRequestParameters, int personId)
{
var endpointParameters = HttpUtilities.BuildDictionaryOfNonNullValues(coreRequestParameters);
var endpoint = HttpUtilities.ReplaceRootParameter(_coreApiConfiguration.CoreEndPointConfiguration.PersonUserFields,
RequestRootParameters.PersonId,
JsonConvert.ToString(personId));
return await _coreRequest.GetRequestObject<CoreApiMessage<IEnumerable<PersonUserField>>>(endpoint, endpointParameters);
}
public async Task<IEnumerable<PersonCheckHoldsUserField>> FindPersonsForAtmCheckHolds(DateTime? resetStartDate, DateTime? resetEndDate)
{
var query = QueryUtilities.GetQuery(GetPersonsForCheckHoldsUpdate);
var personUserFieldDateParams = new
{
ResetStartDate = resetStartDate?.ToString(DnaTimeFormat), //to indicate the start and end date to reset user field values
ResetEndDate = resetEndDate?.ToString(DnaTimeFormat)
};
return await _coreDbExecution.ExecuteQuery<PersonCheckHoldsUserField, object>(query, personUserFieldDateParams);
}
}
}
@@ -0,0 +1,38 @@
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperLib.Utilities;
using LCU.Library.Internal.CoreApiWrapperLib.Configuration;
using LCU.Library.Internal.CoreApiWrapperLib.CoreApiUtilities;
using LCU.Library.Internal.CoreApiWrapperModel.Constants;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Properties;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public class PropertyDao : BaseCoreDao, IPropertyDao
{
private readonly CoreConfiguration _coreConfiguration;
private readonly CoreApiConfiguration _coreApiConfiguration;
public PropertyDao(ICoreRequest coreRequest,
CoreConfiguration coreConfiguration)
: base(coreRequest)
{
_coreConfiguration = coreConfiguration;
_coreApiConfiguration = _coreConfiguration.CoreApiConfiguration;
}
/// <summary>
/// Calls Core API to get all property by propertynumber.
/// Default Included: Graph, Standard
/// </summary>
/// <returns>Property</returns>
public async Task<Property> FindProperty(long propertynumber)
{
var endpoint = HttpUtilities.ReplaceRootParameter(_coreApiConfiguration.CoreEndPointConfiguration.PropertyById,
RequestRootParameters.PropertyNumber,
propertynumber.ToString());
var result = await _coreRequest.GetRequestObject<CoreApiMessage<Property>>(endpoint, null);
return result?.MessageBody;
}
}
}
@@ -0,0 +1,72 @@
using Newtonsoft.Json;
using System.Collections.Generic;
using System.Threading.Tasks;
using LCU.Library.Internal.ApiSecurity.Enums;
using LCU.Library.Internal.ApiSecurity.Models;
using LCU.Library.Internal.CoreApiWrapperLib.Configuration;
using LCU.Library.Internal.CoreApiWrapperLib.CoreApiUtilities;
using LCU.Library.Internal.CoreApiWrapperLib.Utilities;
using LCU.Library.Internal.CoreApiWrapperModel.Constants;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreRequests;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreResponses;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Properties;
using LCU.Library.Internal.LcuHttpClient.HttpRequest;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public class PropertyUserFieldDao : BaseCoreDao, IPropertyUserFieldDao
{
private readonly CoreConfiguration _coreConfiguration;
private readonly CoreApiConfiguration _coreApiConfiguration;
private readonly CoreSoapApiConfiguration _coreSoapApiConfiguration;
private readonly ApiSecurityConfiguration _apiSecurityConfiguration;
private readonly IPostRequest _postRequest;
private readonly IPutRequest _putRequest;
private const string SoapClientKeyValue = "CoreSoapApiWrapper";
public PropertyUserFieldDao(ICoreRequest coreRequest,
CoreConfiguration coreConfiguration,
ApiSecurityConfiguration apiSecurityConfiguration,
IPostRequest postRequest,
IPutRequest putRequest) : base(coreRequest)
{
_coreConfiguration = coreConfiguration;
_apiSecurityConfiguration = apiSecurityConfiguration;
_coreApiConfiguration = _coreConfiguration.CoreApiConfiguration;
_coreSoapApiConfiguration = _coreConfiguration.CoreSoapApiConfiguration;
_postRequest = postRequest;
_putRequest = putRequest;
}
public async Task<CoreApiMessage<IEnumerable<PropertyUserField>>> FindPropertyUserFieldCoreApiResponseByPersonId(CoreRequestParameters coreRequestParameters, int propertyId)
{
var endpointParameters = HttpUtilities.BuildDictionaryOfNonNullValues(coreRequestParameters);
var endpoint = HttpUtilities.ReplaceRootParameter(_coreApiConfiguration.CoreEndPointConfiguration.PropertyUserFields,
RequestRootParameters.PropertyNumber,
JsonConvert.ToString(propertyId));
return await _coreRequest.GetRequestObject<CoreApiMessage<IEnumerable<PropertyUserField>>>(endpoint, endpointParameters);
}
/// <summary>
/// Calls Core Soap API post to create a new user field.
/// </summary>
/// <param name="UserFieldRequest"></param>
public async Task<BasicResponse> InsertPropertyUserField(UserFieldRequest userFieldRequest)
{
var endpoint = HttpUtilities.BuildHttpsUri(_coreSoapApiConfiguration.CoreSoapApiWrapperHost, _coreSoapApiConfiguration.CoreSoapEndpointConfiguration.PostPropertyUserField);
var headers = LcuHttpClient.Utilities.HttpUtilities.GetApiKeyHeaders(SoapClientKeyValue, _apiSecurityConfiguration.ExtractApiKey(SoapClientKeyValue, ApiKeySetName.InternalKeySet));
return await _postRequest.Async<UserFieldRequest, BasicResponse>(endpoint, userFieldRequest, headers, 0);
}
public async Task<BasicResponse> UpdatePropertyUserField(UserFieldRequest request)
{
var endpoint = HttpUtilities.BuildHttpsUri(_coreSoapApiConfiguration.CoreSoapApiWrapperHost, _coreSoapApiConfiguration.CoreSoapEndpointConfiguration.PutPropertyUserField);
var headers = LcuHttpClient.Utilities.HttpUtilities.GetApiKeyHeaders(SoapClientKeyValue, _apiSecurityConfiguration.ExtractApiKey(SoapClientKeyValue, ApiKeySetName.InternalKeySet));
return await _putRequest.Async<UserFieldRequest, BasicResponse>(endpoint, request, headers, 0);
}
}
}
@@ -0,0 +1,25 @@
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperLib.CoreDbUtilities;
using LCU.Library.Internal.CoreApiWrapperLib.Utilities;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Saf;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public class SafDao : ISafDao
{
private readonly ICoreDbExecution _coreDbExecution;
private const string GetAllSafUserInfoQuery = "Saf/GetAllSafUserInfo";
public SafDao(ICoreDbExecution coreDbExecution)
{
_coreDbExecution = coreDbExecution;
}
public async Task<IEnumerable<SafUser>> GetAllSafUsersCoreInfo()
{
var query = QueryUtilities.GetQuery(GetAllSafUserInfoQuery);
return await _coreDbExecution.ExecuteQuery<SafUser>(query);
}
}
}
@@ -0,0 +1,42 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using LCU.Library.Internal.CoreApiWrapperLib.Configuration;
using LCU.Library.Internal.CoreApiWrapperLib.CoreApiUtilities;
using LCU.Library.Internal.CoreApiWrapperLib.Utilities;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreRequests;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Tax;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public class TaxDao : BaseCoreDao, ITaxDao
{
private readonly CoreApiConfiguration _coreApiConfiguration;
public TaxDao(ICoreRequest coreRequest, CoreConfiguration coreConfiguration) : base(coreRequest)
{
_coreApiConfiguration = coreConfiguration.CoreApiConfiguration;
}
public async Task<IEnumerable<PersonTaxIdDataResponse>> GetPersonTaxIdData(CoreRequestParameters coreRequestParameters, string taxId)
{
var endpointParameters = HttpUtilities.BuildDictionaryOfNonNullValues(coreRequestParameters);
var endpoint = _coreApiConfiguration.CoreEndPointConfiguration.GetPersonsDataByTaxId;
var request = HttpUtilities.BuildJsonOfNonNullProperties(new TaxIdRequest { TaxId = taxId });
var response = await _coreRequest.PostRequestObject<CoreApiMessage<IEnumerable<PersonTaxIdDataResponse>>>(endpoint, endpointParameters, request);
return response?.MessageBody;
}
public async Task<IEnumerable<OrganizationTaxIdDataResponse>> GetOrganizationTaxIdData(CoreRequestParameters coreRequestParameters, string taxId)
{
var endpointParameters = HttpUtilities.BuildDictionaryOfNonNullValues(coreRequestParameters);
var endpoint = _coreApiConfiguration.CoreEndPointConfiguration.GetOrganizationsDataByTaxId;
var request = HttpUtilities.BuildJsonOfNonNullProperties(new TaxIdRequest { TaxId = taxId });
var response = await _coreRequest.PostRequestObject<CoreApiMessage<IEnumerable<OrganizationTaxIdDataResponse>>>(endpoint, endpointParameters, request);
return response?.MessageBody;
}
}
}
@@ -0,0 +1,125 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using LCU.Library.Internal.ApiSecurity.Enums;
using LCU.Library.Internal.ApiSecurity.Models;
using LCU.Library.Internal.CoreApiWrapperLib.Configuration;
using LCU.Library.Internal.CoreApiWrapperLib.CoreApiUtilities;
using LCU.Library.Internal.CoreApiWrapperLib.CoreDbUtilities;
using LCU.Library.Internal.CoreApiWrapperLib.Utilities;
using LCU.Library.Internal.CoreApiWrapperModel.Constants;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreRequests;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreResponses;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Transaction;
using LCU.Library.Internal.LcuHttpClient.HttpRequest;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public class TransactionDao : BaseCoreDao, ITransactionDao
{
private readonly CoreApiConfiguration _coreApiConfiguration;
private readonly CoreSoapApiConfiguration _coreSoapApiConfiguration;
private readonly ApiSecurityConfiguration _apiSecurityConfiguration;
private readonly ICoreDbExecution _coreDbExecution;
private readonly IPostRequest _postRequest;
private const string SoapClientKeyValue = "CoreSoapApiWrapper";
private const string GetExternalDescriptionsWithSSNQuery = "Transaction/GetExternalDescriptionsWithSSNQuery";
private const string UpdateExternalDescriptionQuery = "Transaction/UpdateExternalDescriptionQuery";
private const string GetTransactionsByDateSpanQuery = "Transaction/GetTransactionsByDateSpanQuery";
private const string RtxnTypCdQueryVerifyHolder = "{RtxnTypCdQueryVerifyHolder}";
private const string RtxnTypCdQueryParamHolder = "{RtxnTypCdQueryParamHolder}";
public TransactionDao(ICoreRequest coreRequest,
CoreConfiguration coreConfiguration,
ApiSecurityConfiguration apiSecurityConfiguration,
ICoreDbExecution coreDbExecution,
IPostRequest postRequest) : base(coreRequest)
{
_coreApiConfiguration = coreConfiguration.CoreApiConfiguration;
_coreSoapApiConfiguration = coreConfiguration.CoreSoapApiConfiguration;
_apiSecurityConfiguration = apiSecurityConfiguration;
_coreDbExecution = coreDbExecution;
_postRequest = postRequest;
}
/// <summary>
/// Calls Core API to search based the AccountId and filled out TransactionHistoryRequest model.
/// Default Included: Standard, Graph
/// </summary>
/// <param name="coreRequestParameters"></param>
/// <param name="request"></param>
/// <param name="accountId"></param>
/// <returns>IEnumerable<TransactionHistory></returns>
public async Task<IEnumerable<TransactionHistory>> FindTransactionHistoryById(CoreRequestParameters coreRequestParameters,
TransactionHistoryRequest request,
string accountId)
{
var endpointParameters = HttpUtilities.BuildDictionaryOfNonNullValues(coreRequestParameters);
var endpoint = HttpUtilities.ReplaceRootParameter(_coreApiConfiguration.CoreEndPointConfiguration.AccountsTransactionHistoryQueryAccountNumber,
RequestRootParameters.AccountId,
accountId);
var jsonBody = HttpUtilities.BuildJsonOfNonNullProperties(request);
var result = await _coreRequest.PostRequestObject<CoreApiMessage<IEnumerable<TransactionHistory>>>(
endpoint, endpointParameters, jsonBody);
return result?.MessageBody;
}
public async Task<List<MonetaryTransactionResponse>> AddMonetaryTransactions(List<GroupedMonetaryTransactionRequest> monetaryTransactionRequests)
{
var endpoint = HttpUtilities.BuildHttpsUri(_coreSoapApiConfiguration.CoreSoapApiWrapperHost, _coreSoapApiConfiguration.CoreSoapEndpointConfiguration.PostMonetaryTransactions);
var headers = LcuHttpClient.Utilities.HttpUtilities.GetApiKeyHeaders(SoapClientKeyValue, _apiSecurityConfiguration.ExtractApiKey(SoapClientKeyValue, ApiKeySetName.InternalKeySet));
return await _postRequest.Async<List<GroupedMonetaryTransactionRequest>, List<MonetaryTransactionResponse>>(endpoint, monetaryTransactionRequests, headers, 0);
}
public async Task<IEnumerable<ExternalDescription>> FindExternalDescriptionsWithSsn()
{
var query = QueryUtilities.GetQuery(GetExternalDescriptionsWithSSNQuery);
return await _coreDbExecution.ExecuteQuery<ExternalDescription>(query);
}
public async Task<List<BasicResponse>> PostFundsToAccount(List<FundsToAccountRequest> fundsToAccount)
{
var endpoint = HttpUtilities.BuildHttpsUri(_coreSoapApiConfiguration.CoreSoapApiWrapperHost, _coreSoapApiConfiguration.CoreSoapEndpointConfiguration.PostFundsToAccount);
var headers = LcuHttpClient.Utilities.HttpUtilities.GetApiKeyHeaders(SoapClientKeyValue, _apiSecurityConfiguration.ExtractApiKey(SoapClientKeyValue, ApiKeySetName.InternalKeySet));
return await _postRequest.Async<List<FundsToAccountRequest>, List<BasicResponse>>(endpoint, fundsToAccount, headers, 0);
}
/// <summary>
/// Note: ExecuteQuery does not return anything when running an Update statement.
/// </summary>
/// <param name="externalTransactionDescription"></param>
public void UpdateExternalDescription(ExternalDescription externalTransactionDescription)
{
var query = QueryUtilities.GetQuery(UpdateExternalDescriptionQuery);
var param = new
{
externaldescriptionnumber = externalTransactionDescription.ExternalDescriptionNumber,
externaldescriptiontext = externalTransactionDescription.ExternalDescriptionText
};
var result = _coreDbExecution.ExecuteQuery<string, object>(query, param).Result;
}
public async Task<IEnumerable<TransactionAlertInfo>> GetTransactionsByDateSpan(DateTime startDateRange,
DateTime endDateRange,
string rtxnTypCdToExcludeParams,
string rtxnTypCdToExcludeVerify)
{
var query = QueryUtilities.GetQuery(GetTransactionsByDateSpanQuery);
var alteredQuery = query.Replace(RtxnTypCdQueryVerifyHolder, rtxnTypCdToExcludeVerify)//;
.Replace(RtxnTypCdQueryParamHolder, rtxnTypCdToExcludeParams);
var param = new
{
startDateTime = startDateRange.ToString("yyyy-MM-dd HH:mm:ss"),
endDateTime = endDateRange.ToString("yyyy-MM-dd HH:mm:ss")
};
return await _coreDbExecution.ExecuteQuery<TransactionAlertInfo, object>(alteredQuery, param);
}
}
}