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