public async Task <IResult <IVenueSearchResult> > GetVenuesByPRNAndNameAsync(IGetVenuesByPRNAndNameCriteria criteria) { Throw.IfNull(criteria, nameof(criteria)); _logger.LogMethodEnter(); try { _logger.LogInformationObject("Get Venue By PRN & Name criteria.", criteria); _logger.LogInformationObject("Get Venue By PRN & Name URI", _getVenueByPRNAndNameUri); var content = new StringContent(criteria.ToJson(), Encoding.UTF8, "application/json"); var response = await _httpClient.GetAsync(_getVenueByPRNAndNameUri + $"?PRN={criteria.PRN}&NAME={criteria.Name}"); _logger.LogHttpResponseMessage("Get Venue By PRN and Name service http response", response); if (response.IsSuccessStatusCode) { var json = await response.Content.ReadAsStringAsync(); _logger.LogInformationObject("Venue search service json response", json); //var settings = new JsonSerializerSettings //{ // ContractResolver = new VenueSearchResultContractResolver() //}; //var venues = JsonConvert.DeserializeObject<IEnumerable<Venue>>(json, settings).Where(x=>x.Status== VenueStatus.Imported || x.Status == VenueStatus.Live).OrderBy(x => x.VenueName).ToList(); //var venues = JsonConvert.DeserializeObject<IEnumerable<Venue>>(json, settings).OrderBy(x => x.VenueName).ToList(); IEnumerable <Venue> venues = Enumerable.Empty <Venue>(); if (!string.IsNullOrEmpty(json)) { venues = JsonConvert.DeserializeObject <IEnumerable <Venue> >(json).OrderBy(x => x.VenueName).ToList(); } //var venues = JsonConvert.DeserializeObject<IEnumerable<Venue>>(json).OrderBy(x => x.VenueName).ToList(); var venueSearchResult = new VenueSearchResult(venues); return(Result.Ok <IVenueSearchResult>(venueSearchResult)); //return venues; } else { return(Result.Fail <IVenueSearchResult>("Get Venue By PRN & Name service unsuccessful http response")); } } catch (HttpRequestException hre) { _logger.LogException("Get Venue By PRN and Name service http request error", hre); return(Result.Fail <IVenueSearchResult>("Get Venue By PRN and Name service http request error.")); } catch (Exception e) { _logger.LogException("Get Venue By PRN and Name service unknown error.", e); return(Result.Fail <IVenueSearchResult>("Get Venue By PRN and Name service unknown error.")); } finally { _logger.LogMethodExit(); } }
internal static string ToJson(this IGetVenuesByPRNAndNameCriteria extendee) { GetVenueByPRNAndNameJson json = new GetVenueByPRNAndNameJson { PRN = extendee.PRN, Name = extendee.Name }; return(JsonConvert.SerializeObject(json)); }
public async Task <IResult <IVenueSearchResult> > GetVenuesByPRNAndNameAsync(IGetVenuesByPRNAndNameCriteria criteria) { Throw.IfNull(criteria, nameof(criteria)); _logger.LogMethodEnter(); try { _logger.LogInformationObject("Get Venue By PRN & Name criteria.", criteria); _logger.LogInformationObject("Get Venue By PRN & Name URI", _getVenueByPRNAndNameUri); //StringContent content = new StringContent(criteria.ToJson(), Encoding.UTF8, "application/json"); HttpClient httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", _settings.ApiKey); HttpResponseMessage response = await httpClient.GetAsync(_getVenueByPRNAndNameUri + $"?prn={criteria.PRN}&name={criteria.Name}"); _logger.LogHttpResponseMessage("Get Venue By PRN and Name service http response", response); if (response.IsSuccessStatusCode) { string json = await response.Content.ReadAsStringAsync(); _logger.LogInformationObject("Venue search service json response", json); if (string.IsNullOrEmpty(json)) { json = "[]"; } JsonSerializerSettings settings = new JsonSerializerSettings { ContractResolver = new VenueSearchResultContractResolver() }; IEnumerable <Venue> venues = JsonConvert.DeserializeObject <IEnumerable <Venue> >(json, settings); return(Result.Ok <IVenueSearchResult>(new VenueSearchResult(venues))); } else { return(Result.Fail <IVenueSearchResult>("Get Venue By PRN & Name service unsuccessful http response")); } } catch (HttpRequestException hre) { _logger.LogException("Get Venue By PRN and Name service http request error", hre); return(Result.Fail <IVenueSearchResult>("Get Venue By PRN and Name service http request error.")); } catch (Exception e) { _logger.LogException("Get Venue By PRN and Name service unknown error.", e); return(Result.Fail <IVenueSearchResult>("Get Venue By PRN and Name service unknown error.")); } finally { _logger.LogMethodExit(); } }