public IProviderSearchCriteria GetProviderSearchCriteria( ProviderSearchRequestModel providerSearchRequestModel) { Throw.IfNull(providerSearchRequestModel, nameof(providerSearchRequestModel)); var criteria = new ProviderSearchCriteria(providerSearchRequestModel.SearchTerm); return(criteria); }
public async Task <IActionResult> Index([FromQuery] ProviderSearchRequestModel requestModel) { _logger.LogMethodEnter(); _logger.LogInformationObject("RequestModel", requestModel); //Set the UKPRN here in session _session.SetInt32("UKPRN", Convert.ToInt32(requestModel.SearchTerm)); ProviderSearchResultModel model; if (requestModel == null) { model = new ProviderSearchResultModel(); } else { var criteria = _providerSearchHelper.GetProviderSearchCriteria(requestModel); var result = await _providerService.GetProviderByPRNAsync(criteria); if (result.IsSuccess && result.HasValue) { model = new ProviderSearchResultModel( requestModel.SearchTerm, result.Value.Value); } else { model = new ProviderSearchResultModel(result.Error); } model.ServiceWasCalled = true; foreach (var provider in model.Items) { if (model.Items.FirstOrDefault() != null) { var providerContactTypeL = provider.ProviderContact.Where(s => s.ContactType.Equals("L", StringComparison.InvariantCultureIgnoreCase)); string AddressLine1 = string.Empty; if (!(string.IsNullOrEmpty(providerContactTypeL.FirstOrDefault()?.ContactAddress.PAON.Description) && string.IsNullOrEmpty(providerContactTypeL.FirstOrDefault()?.ContactAddress.StreetDescription))) { AddressLine1 = providerContactTypeL.FirstOrDefault()?.ContactAddress.PAON.Description + " " + providerContactTypeL.FirstOrDefault()?.ContactAddress.StreetDescription + ", "; } string AddressLine2 = string.Empty; if (providerContactTypeL.FirstOrDefault()?.ContactAddress.Locality != null) { AddressLine2 = providerContactTypeL.FirstOrDefault()?.ContactAddress.Locality.ToString() + ", "; } string AddressLine3 = string.Empty; if (!string.IsNullOrEmpty(providerContactTypeL.FirstOrDefault()?.ContactAddress.Items[0])) { AddressLine3 = providerContactTypeL.FirstOrDefault()?.ContactAddress.Items[0] + ", "; } string PostCode = string.Empty; if (!string.IsNullOrEmpty(providerContactTypeL.FirstOrDefault()?.ContactAddress.PostCode)) { PostCode = providerContactTypeL.FirstOrDefault()?.ContactAddress.PostCode; } model.AddressTypeL = string.Concat(AddressLine1, AddressLine2, AddressLine3, PostCode); model.TelephoneTypeL = providerContactTypeL.FirstOrDefault()?.ContactTelephone1; model.WebTypeL = providerContactTypeL.FirstOrDefault()?.ContactWebsiteAddress; model.EmailTypeL = providerContactTypeL.FirstOrDefault()?.ContactEmail; } } } _logger.LogInformationObject("Model", model); _logger.LogMethodExit(); return(ViewComponent(nameof(ViewComponents.ProviderSearchResult.ProviderSearchResult), model)); }