public static DataTable saveRoutePoints([FromBody] routePoints routePoints, string routePoint) { try { string ConnectionString = Common.GetConnectionString(); List <SqlParameter> parameters = new List <SqlParameter>(); parameters.Add(new SqlParameter("@routeId", routePoints.routeId)); parameters.Add(new SqlParameter("@displayId", routePoints.displayId)); parameters.Add(new SqlParameter("@path", routePoints.image)); parameters.Add(new SqlParameter("@startingPoint", routePoints.startingPoint)); parameters.Add(new SqlParameter("@endPoint", routePoints.endPoint)); parameters.Add(new SqlParameter("@routePoint", routePoint)); parameters.Add(new SqlParameter("@routePointNames", routePoints.routePointNames)); parameters.Add(new SqlParameter("@totalMiles", routePoints.totalMiles)); using (DataTable dt = SqlHelper.ExecuteDataset(ConnectionString, CommandType.StoredProcedure, "spsaveRoutePoints", parameters.ToArray()).Tables[0]) { return(dt); } } catch (Exception e) { throw e; } }
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 })); } }
public async Task <IActionResult> saveRoutePoints(routePoints route) { try { if (route.routeId < 0 || route.routeId == null) { return(StatusCode((int)HttpStatusCode.BadRequest, new { ErrorMessage = "Please enter routeId" })); } DataTable dt1 = Data.Route.selectcoordinates(route); List <direction> direction = new List <direction> { new direction { origin = dt1.Rows[0][0].ToString(), destination = dt1.Rows[0][1].ToString(), waypoints = dt1.Rows[0][2].ToString() } }; string routePoints = JsonConvert.SerializeObject(direction); DataTable dt = Data.Route.saveRoutePoints(route, routePoints); string Response = dt.Rows[0][0].ToString(); if (Response == "Success") { return(StatusCode((int)HttpStatusCode.OK, new { routePoints, message = "RoutePoints Successfully Created" })); } else { if (Response.Contains("FK__tblRouteP__displ__6D0D32F4") == true || Response.Contains("FK__tblRouteP__route__6E01572D") == true) { return(StatusCode((int)HttpStatusCode.InternalServerError, new { ErrorMessage = "routeId/displayId are already taken" })); } else { return(StatusCode((int)HttpStatusCode.Forbidden, new { ErrorMessage = 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); ////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 mapRequest = "https://maps.googleapis.com/maps/api/directions/json?origin=" + dt1.Rows[0][0].ToString() + "&destination=" + destination + "&waypoints=optimize:true|" + string.Join<string>("|", numbers) + "&key=" + Common.Apikey(); // //string path = await client.GetStringAsync(string.Format(mapRequest)); // //direction direction = new direction(); // //direction.origin = dt1.Rows[0][0].ToString(); // //direction.destination = destination; // //direction.waypoints = string.Join<string>("|", numbers); // var routePoint = "orgin:'" + dt1.Rows[0][0].ToString() + "',destination:'" + destination + "',waypoints:'" + string.Join<string>("|", numbers) + "'"; // List<direction> direction = new List<direction> { new direction { origin = dt1.Rows[0][0].ToString(), destination = destination, waypoints = string.Join<string>("|", numbers) } }; // string routePoints = JsonConvert.SerializeObject(direction); // DataTable dt = Data.Route.saveRoutePoints(route, routePoints); // string Response = dt.Rows[0][0].ToString(); //if (Response == "Success") //{ // return StatusCode((int)HttpStatusCode.OK, new { routePoints, message = "RoutePoints Successfully Created" }); //} //else //{ // if (Response.Contains("UQ__tblRoute__179688842B0C597E") == true) // { // return StatusCode((int)HttpStatusCode.InternalServerError, new { ErrorMessage = "routeId/displayId are already taken" }); // } // else // { // return StatusCode((int)HttpStatusCode.Forbidden, new { ErrorMessage = Response }); // } //} //} } catch (Exception e) { string SaveErrorLog = Data.Common.SaveErrorLog("saveRoutePoints", e.Message); if (e.Message.Contains("UQ__tblRoute__179688842B0C597E") == true) { return(StatusCode((int)HttpStatusCode.InternalServerError, new { ErrorMessage = "routeId/displayId are already taken" })); } else { return(StatusCode((int)HttpStatusCode.InternalServerError, new { ErrorMessage = e.Message })); } } }