Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }