public async Task <IActionResult> chooseDestination(calculatepath calculatepath) { try { routePoints route = new routePoints(); route.startingPoint = calculatepath.startingPoint; route.displayId = calculatepath.displayId; DataTable dt1 = Data.Route.selectcoordinates(route); var response = ""; using (var client = new HttpClient()) { var a = "https://maps.googleapis.com/maps/api/distancematrix/json?origins=" + dt1.Rows[0][0].ToString() + "&destinations=" + dt1.Rows[0][1].ToString() + "&mode=train|tram|subway&language=fr-FR&key= " + Common.Apikey(); response = await client.GetStringAsync(string.Format(a)); } JObject o = JObject.Parse(@response); dynamic obj = JsonConvert.DeserializeObject(response); List <decimal> list = new List <decimal>(); var val = (obj.rows[0].elements).Count; var value = obj.rows[0].elements[1].distance.value; for (var i = 0; i < (obj.rows[0].elements).Count; i++) { int a = obj.rows[0].elements[i].distance.value; list.Add(a); } var position = list.IndexOf(list.Max()); List <string> numbers = calculatepath.displayId.Split(',').ToList <string>(); string destination = numbers[position]; return(StatusCode((int)HttpStatusCode.OK, new { destinationId = destination })); } catch (Exception e) { string SaveErrorLog = Data.Common.SaveErrorLog("getDestination", e.Message); return(StatusCode((int)HttpStatusCode.InternalServerError, new { ErrorMessage = e.Message })); } }
public async Task <IActionResult> calculatePath(calculatepath calculatepath) { try { routePoints route = new routePoints(); route.startingPoint = calculatepath.startingPoint; route.endPoint = calculatepath.endPoint; route.displayId = calculatepath.displayId; DataTable dt1 = Data.Route.selectcoordinates(route); direction routePoints = new direction(); routePoints.origin = dt1.Rows[0][0].ToString(); routePoints.destination = dt1.Rows[0][1].ToString(); routePoints.waypoints = dt1.Rows[0][2].ToString(); //using (var client = new HttpClient()) //{ // var a = "https://maps.googleapis.com/maps/api/distancematrix/json?origins=" + dt1.Rows[0][0].ToString() + "&destinations=" + dt1.Rows[0][1].ToString() + "&mode=train|tram|subway&language=fr-FR&key= " + Common.Apikey(); // response = await client.GetStringAsync(string.Format(a)); //} ////JObject o = JObject.Parse(@response); ////List<JToken> acme = o.SelectTokens("$...['elements'].['distance'].['value']").ToList(); ////var position = acme.IndexOf(acme.Max()); //dynamic obj = JsonConvert.DeserializeObject(response); //List<decimal> list = new List<decimal>(); //for (var i = 0; i < (obj.rows[0].elements).Count; i++) //{ // int a = obj.rows[0].elements[i].distance.value; // list.Add(a); //} //var position = list.IndexOf(list.Max()); //List<string> numbers = (dt1.Rows[0][1].ToString()).Split('|').ToList<string>(); //string destination = numbers[position]; //numbers.RemoveAt(position); using (var client = new HttpClient()) { var a = "https://maps.googleapis.com/maps/api/directions/json?origin=" + dt1.Rows[0][0].ToString() + "&destination=" + dt1.Rows[0][1].ToString() + "&waypoints=optimize:true|" + dt1.Rows[0][2].ToString() + "&key=" + Common.Apikey(); string path = await client.GetStringAsync(string.Format(a)); //JObject obj = JObject.Parse(path); //List<JToken> acme1 = obj.SelectTokens("$..['routes'].['legs'].['steps'].['distance'].['value']").ToList(); //int miles = acme1.Sum(x => Convert.ToInt32(x)); dynamic obj1 = JsonConvert.DeserializeObject(path); //string res = obj1.status; if (((JArray)obj1.routes).Count == 0) { return(StatusCode((int)HttpStatusCode.InternalServerError, new { message = "Invalid Route" })); } int miles = 0; for (var i = 0; i < (obj1.routes[0].legs).Count; i++) { miles = miles + (int)obj1.routes[0].legs[i].distance.value; } var totalmiles = String.Concat(String.Format("{0:0.00}", (miles / 1609.344)), " mi"); return(StatusCode((int)HttpStatusCode.OK, new { routePoints, totalmiles, path, message = "Route Created successfully" })); } } catch (Exception e) { string SaveErrorLog = Data.Common.SaveErrorLog("calculatePath", e.Message); return(StatusCode((int)HttpStatusCode.InternalServerError, new { ErrorMessage = e.Message })); } }