public async Task <DistanceMatrixGetRes> GetDistanceMatrix(DistanceMatrixGetReq req) { //string URL = "https://maps.googleapis.com/maps/api/distancematrix/json?units=metric&origins=40.6655101,-73.89188969999998&destinations=41.6655101,-73.89188969999998&key=AIzaSyDhxUUgHmu48Zv0_ECSms00t9OzxZkE1h0&transit_mode=walk"; //string URL = "https://maps.googleapis.com/maps/api/distancematrix/json?key=GoogleAPIKey&units=units&origins=origins&destinations=destinations&transit_mode=transit_mode"; string URL = _configuration.GetValue <string>("URLDistanceMatrix"); string APIKey = _configuration.GetValue <string>("GoogleAPIKey"); URL = URL + "?key=" + APIKey; URL = URL + "&units=" + req.Units; URL = URL + "&origins=" + req.Origins.Latitude + "," + req.Origins.Longitude; URL = URL + "&destinations=" + req.Destinations.Latitude + "," + req.Destinations.Longitude; URL = URL + "&transit_mode=" + req.Transit_Mode; var json = JsonConvert.SerializeObject(req); HttpClient client = new HttpClient(); var content = new StringContent("", Encoding.UTF8, "application/json"); try { HttpResponseMessage responseMessage = await client.PostAsync(URL, content); var responseJsonString = await responseMessage.Content.ReadAsStringAsync(); return((dynamic)JsonConvert.DeserializeObject(responseJsonString, typeof(DistanceMatrixGetRes))); } catch (System.Exception ex) { return(null); } }
public async Task <DistanceMatrixGetRes> GetDistanceMatrixForProduct(string FromProductId, string ToProductId, string Units = "metric", string TransitMode = "bus") { DistanceMatrixGetRes response = new DistanceMatrixGetRes(); DistanceMatrixGetReq request = new DistanceMatrixGetReq(); try { request.Units = Units; request.Transit_Mode = TransitMode; var FromProduct = GetProductDetails(FromProductId); var ToProduct = GetProductDetails(ToProductId); if (FromProduct == null) { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "Product not found : " + FromProductId; return(response); } if (ToProduct == null) { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "Product not found : " + ToProductId; return(response); } if (FromProduct.Placeholder == true || ToProduct.Placeholder == true)//if any of the From or To Placeholder is true then do not calculate matrix { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "Product not found : " + ToProductId; return(response); } request.Origins.Latitude = Convert.ToDouble(FromProduct.Lat); request.Origins.Longitude = Convert.ToDouble(FromProduct.Long); request.Destinations.Latitude = Convert.ToDouble(ToProduct.Lat); request.Destinations.Longitude = Convert.ToDouble(ToProduct.Long); response = await GetDistanceMatrix(request); if (response == null) { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "Error occurred while calling Google service"; } } catch (System.Exception ex) { Console.WriteLine(ex.Message); response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = ex.Message; } return(response); }
public async Task <DistanceMatrixGetRes> GetDistanceMatrixForCity(string FromCityId, string ToCityId, string Units = "metric", string TransitMode = "bus") { DistanceMatrixGetRes response = new DistanceMatrixGetRes(); DistanceMatrixGetReq request = new DistanceMatrixGetReq(); try { request.Units = Units; request.Transit_Mode = TransitMode; var FromCity = GetCityDetails(FromCityId); var ToCity = GetCityDetails(ToCityId); if (FromCity == null) { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "City not found : " + FromCityId; return(response); } if (ToCity == null) { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "City not found : " + ToCity; return(response); } request.Origins.Latitude = Convert.ToDouble(FromCity.Lat); request.Origins.Longitude = Convert.ToDouble(FromCity.Lon); request.Destinations.Latitude = Convert.ToDouble(ToCity.Lat); request.Destinations.Longitude = Convert.ToDouble(ToCity.Lon); response = await GetDistanceMatrix(request); if (response == null) { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "Error occurred while calling Google service"; } else { response.OriginCity = FromCity.ResortName; response.DestinationCity = ToCity.ResortName; } } catch (System.Exception ex) { Console.WriteLine(ex.Message); response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = ex.Message; } return(response); }