Files
monorepo/LCU.Api.Internal.CoreApiWrapper/LCU.Library.Internal.CoreApiWrapperLib/DataAccess/PropertyUserFieldDao.cs
T
2026-03-31 14:32:23 -05:00

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);
}
}
}