public EntityGoogleMapsDistanceMatrixResponse GetDistanceMatrix(ModelViewGoogleMapsDistanceMatrixRequest model)
        {
            var dataUsuario = new BusinessUsers().GetUserByToken(model.TokenUser);

            if (model.TokenApp != GlobalConfiguration.TokenWEB)
            {
                if (model.TokenApp != GlobalConfiguration.TokenMobile)
                {
                    throw new Exception("TokenInvalid");
                }
            }

            if (dataUsuario == null)
            {
                throw new Exception("UserPasswordInvalid");
            }


            EntityGoogleMapsDistanceMatrixRequest request = new EntityGoogleMapsDistanceMatrixRequest();

            request.origins        = model.origins;
            request.destinations   = model.destinations;
            request.units          = "metric";
            request.departure_time = "now";
            request.key            = GlobalConfiguration.GoogleMapsDistanceMatrixTOKEN;

            EntityGoogleMapsDistanceMatrixResponse objResponse = null;

            try
            {
                string Url = GlobalConfiguration.GoogleMapsDistanceMatrixURL;

                Url += "?units=" + request.units;
                Url += "&origins=" + request.origins;
                Url += "&destinations=" + request.destinations;
                Url += "&departure_time=" + request.departure_time;
                Url += "&key=" + request.key;

                HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create(Url);
                webrequest.Method        = "POST";
                webrequest.ContentType   = "application/json";
                webrequest.ContentLength = 0;
                Stream stream = webrequest.GetRequestStream();
                stream.Close();
                string result;
                using (WebResponse response = webrequest.GetResponse())
                {
                    using (StreamReader reader = new StreamReader(response.GetResponseStream()))
                    {
                        result      = reader.ReadToEnd();
                        objResponse = JsonConvert.DeserializeObject <EntityGoogleMapsDistanceMatrixResponse>(result);
                    }
                }

                if (objResponse == null)
                {
                    throw new Exception("Error parser " + result + " | Url " + Url);
                }
            }
            catch (Exception ex)
            {
                throw new Generic_Exception(ex, Generic_Exception.ErrorCodes.ErrorGoogleMaps);
            }
            return(objResponse);
        }
Beispiel #2
0
 public static EntityGoogleMapsDistanceMatrixResponse GetDistanceMatrix(ModelViewGoogleMapsDistanceMatrixRequest request)
 {
     return(new BusinessGoogle().GetDistanceMatrix(request));
 }