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