private async Task<GetGeoCoordinatesResponse> GetCoordinatesAsync(GetGeoCoordinatesRequest request) { var response = new GetGeoCoordinatesResponse(); using (var locationRequest = new HttpClient()) { locationRequest.Timeout = new TimeSpan(0, 30, 0); var url = GeolocationUrl + "?address=" + Uri.EscapeUriString(request.PostCode); using (var responseJson = await locationRequest.GetAsync(url)) { if (responseJson.IsSuccessStatusCode) { var content = await responseJson.Content.ReadAsStringAsync(); dynamic location = JsonConvert.DeserializeObject(content); if (location.status == "OK") { var addressDetails = location.results[0]; double longitude, latitude; if (double.TryParse(addressDetails.geometry.location.lat.ToString(), out latitude) & double.TryParse(addressDetails.geometry.location.lng.ToString(), out longitude)) { response.Status = StatusCode.OK; response.GeoCoordinate = new GeoCoordinate(latitude, longitude); } } } else { this.exceptionHandler.HandleException(new Exception("GetGeoCoordinatesAsync: " + responseJson.ReasonPhrase)); response.Status = StatusCode.InternalServerError; } } } return response; }
public async Task<GetGeoCoordinatesResponse> GetGeoCoordinatesAsync(GetGeoCoordinatesRequest request) { var response = new GetGeoCoordinatesResponse(); if (!string.IsNullOrWhiteSpace(request.PostCode)) { try { response = await this.GetCoordinatesAsync(request); } catch (Exception ex) { this.exceptionHandler.HandleException(ex); response.Status = StatusCode.InternalServerError; } } else { response.Status = StatusCode.BadRequest; } return response; }
public async Task <GetGeoCoordinatesResponse> GetGeoCoordinatesAsync(GetGeoCoordinatesRequest request) { var response = new GetGeoCoordinatesResponse(); if (!string.IsNullOrWhiteSpace(request.PostCode)) { try { response = await this.GetCoordinatesAsync(request); } catch (Exception ex) { this.exceptionHandler.HandleException(ex); response.Status = StatusCode.InternalServerError; } } else { response.Status = StatusCode.BadRequest; } return(response); }
private async Task <GetGeoCoordinatesResponse> GetCoordinatesAsync(GetGeoCoordinatesRequest request) { var response = new GetGeoCoordinatesResponse(); using (var locationRequest = new HttpClient()) { locationRequest.Timeout = new TimeSpan(0, 30, 0); var url = GeolocationUrl + "?address=" + Uri.EscapeUriString(request.PostCode); using (var responseJson = await locationRequest.GetAsync(url)) { if (responseJson.IsSuccessStatusCode) { var content = await responseJson.Content.ReadAsStringAsync(); dynamic location = JsonConvert.DeserializeObject(content); if (location.status == "OK") { var addressDetails = location.results[0]; double longitude, latitude; if (double.TryParse(addressDetails.geometry.location.lat.ToString(), out latitude) & double.TryParse(addressDetails.geometry.location.lng.ToString(), out longitude)) { response.Status = StatusCode.OK; response.GeoCoordinate = new GeoCoordinate(latitude, longitude); } } } else { this.exceptionHandler.HandleException(new Exception("GetGeoCoordinatesAsync: " + responseJson.ReasonPhrase)); response.Status = StatusCode.InternalServerError; } } } return(response); }