public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] [RequestBodyType(typeof(GetLocationsByDistanceRequest), "Get Locations By Distance")] GetLocationsByDistanceRequest req, CancellationToken cancellationToken) { try { GetLocationsByDistanceResponse response = await _mediator.Send(req, cancellationToken); return(new OkObjectResult(ResponseWrapper <GetLocationsByDistanceResponse, AddressServiceErrorCode> .CreateSuccessfulResponse(response))); } catch (Exception exc) { _logger.LogErrorAndNotifyNewRelic("Exception occured in GetLocationsByDistance", exc); return(new ObjectResult(ResponseWrapper <GetLocationsByDistanceResponse, AddressServiceErrorCode> .CreateUnsuccessfulResponse(AddressServiceErrorCode.UnhandledError, "Internal Error")) { StatusCode = StatusCodes.Status500InternalServerError }); } }
public async Task <GetLocationsByDistanceResponse> GetLocationsByDistance(string postCode, int maxDistance) { GetLocationsByDistanceRequest request = new GetLocationsByDistanceRequest() { Postcode = postCode, MaxDistance = maxDistance }; string json = JsonConvert.SerializeObject(request); StringContent data = new StringContent(json, Encoding.UTF8, "application/json"); using (HttpResponseMessage response = await _httpClientWrapper.PostAsync(HttpClientConfigName.AddressService, "/api/GetLocationsByDistance", data, CancellationToken.None)) { string jsonResponse = await response.Content.ReadAsStringAsync(); var sendEmailResponse = JsonConvert.DeserializeObject <ResponseWrapper <GetLocationsByDistanceResponse, AddressServiceErrorCode> >(jsonResponse); if (sendEmailResponse.HasContent && sendEmailResponse.IsSuccessful) { return(sendEmailResponse.Content); } } return(null); }
public async Task <List <LocationDistance> > GetLocationsByDistance(int distance, string postcode) { GetLocationsByDistanceRequest getLocationsByDistanceRequest = new GetLocationsByDistanceRequest() { MaxDistance = distance, Postcode = postcode }; string json = JsonConvert.SerializeObject(getLocationsByDistanceRequest); StringContent data = new StringContent(json, Encoding.UTF8, "application/json"); HttpResponseMessage response = await Client.PostAsync("/api/GetLocationsByDistance", data); string str = await response.Content.ReadAsStringAsync(); var deserializedResponse = JsonConvert.DeserializeObject <ResponseWrapper <GetLocationsByDistanceResponse, AddressServiceErrorCode> >(str); if (deserializedResponse.HasContent && deserializedResponse.IsSuccessful) { return(deserializedResponse.Content.LocationDistances); } throw new System.Exception($"Bad response from GetLocationsByDistance"); }