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); }
public static EntityGoogleMapsDistanceMatrixResponse GetDistanceMatrix(ModelViewGoogleMapsDistanceMatrixRequest request) { return(new BusinessGoogle().GetDistanceMatrix(request)); }