public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] [RequestBodyType(typeof(GetDistanceBetweenPostcodesRequest), "Get Distance Between Postcodes")] GetDistanceBetweenPostcodesRequest req, CancellationToken cancellationToken) { try { var input = JsonConvert.SerializeObject(req); _logger.LogInformation(input); GetDistanceBetweenPostcodesResponse response = await _mediator.Send(req, cancellationToken); return(new OkObjectResult(ResponseWrapper <GetDistanceBetweenPostcodesResponse, AddressServiceErrorCode> .CreateSuccessfulResponse(response))); } catch (Exception exc) { _logger.LogErrorAndNotifyNewRelic("Exception occured in GetDistanceBetweenPostcodes", exc); _logger.LogError(exc.ToString(), exc); return(new ObjectResult(ResponseWrapper <GetDistanceBetweenPostcodesResponse, AddressServiceErrorCode> .CreateUnsuccessfulResponse(AddressServiceErrorCode.UnhandledError, "Internal Error")) { StatusCode = StatusCodes.Status500InternalServerError }); } }
public async Task <GetDistanceBetweenPostcodesResponse> GetDistanceBetweenPostcodes(string postCode1, string postCode2) { var request = new GetDistanceBetweenPostcodesRequest { Postcode1 = postCode1, Postcode2 = postCode2 }; string json = JsonConvert.SerializeObject(request); StringContent data = new StringContent(json, Encoding.UTF8, "application/json"); HttpResponseMessage response = await Client.PostAsync("/api/GetDistanceBetweenPostcodes", data); string str = await response.Content.ReadAsStringAsync(); var deserializedResponse = JsonConvert.DeserializeObject <ResponseWrapper <GetDistanceBetweenPostcodesResponse, AddressServiceErrorCode> >(str); if (deserializedResponse.HasContent && deserializedResponse.IsSuccessful) { return(deserializedResponse.Content); } throw new System.Exception($"Unable to get distance between {postCode1} & {postCode2}"); }