public SearchAddressResponse ExecuteAsync(SearchAddressRequest request) { var validation = _requestValidator.Validate(request); if (!validation.IsValid) { throw new BadRequestException(validation); } var searchParameters = MapRequestToSearchParameters(request); var(results, totalCount) = _addressGateway.SearchAddresses(searchParameters); if (results == null) { return(new SearchAddressResponse()); } var useCaseResponse = new SearchAddressResponse { Addresses = results.ToResponse(), TotalCount = totalCount, PageCount = totalCount.CalculatePageCount(request.PageSize) }; return(useCaseResponse); }
public async Task <SearchAddressResponse> ExecuteAsync(SearchAddressRequest request) { var validation = _requestValidator.Validate(request); if (!validation.IsValid) { throw new BadRequestException(validation); } var searchParameters = MapRequestToSearchParameters(request); if (request.CrossRefCode != null && request.CrossRefValue != null) { searchParameters.CrossReferencedUprns = _addressGateway.GetMatchingCrossReferenceUprns(request.CrossRefCode, request.CrossRefValue); } var(addressKeys, totalCount) = await _searchAddressesGateway.SearchAddresses(searchParameters); var format = Enum.Parse <GlobalConstants.Format>(request.Format, true); var results = _addressGateway.GetAddresses(addressKeys, format); if (results == null) { return(new SearchAddressResponse()); } var useCaseResponse = new SearchAddressResponse { Addresses = results.ToResponse(), TotalCount = totalCount, PageCount = totalCount.CalculatePageCount(request.PageSize) }; return(useCaseResponse); }
public SearchAddressResponse ExecuteAsync(GetAddressRequest request) { var validationResponse = _getAddressValidator.Validate(request); if (!validationResponse.IsValid) { throw new BadRequestException(validationResponse); } var response = _addressGateway.GetSingleAddress(request.addressID); if (response == null) { return(new SearchAddressResponse()); } var useCaseResponse = new SearchAddressResponse { Addresses = new List <AddressResponse> { response.ToResponse() } }; return(useCaseResponse); }