73 lines
4.2 KiB
C#
73 lines
4.2 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|