Exemplo n.º 1
0
        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
                });
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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");
        }