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> 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>>(endpoint, endpointParameters, request); return response?.MessageBody; } public async Task> 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>>(endpoint, endpointParameters, request); return response?.MessageBody; } } }