Beispiel #1
0
        public ResultCrossroad AddResult(ResultCrossroad response)
        {
            var conn = ConfigurationManager.ConnectionStrings[ConnectionStringName()].ConnectionString;

            try
            {
                using (var con = new SqlConnection(conn))
                {
                    var command = new SqlCommand("USP_ResultCrossroad_Insert", con)
                    {
                        CommandType = CommandType.StoredProcedure
                    };
                    command.Parameters.AddWithValue("@Id_crossroad", response.Id_Crossroad);
                    command.Parameters.AddWithValue("@Id_priority", response.Id_Priority);
                    command.Parameters.AddWithValue("@Date", response.Date);
                    con.Open();
                    command.ExecuteNonQuery();
                    con.Close();
                    return(response);
                }
            }
            catch (Exception ex)
            {
                response.Status  = ResponseStatus.Error;
                response.Message = "RequestFailed";
                return(response);
            }
        }
Beispiel #2
0
        public Route calculateRoute(decimal idStart, decimal idEnd)
        {
            Route insert = new Route();

            insert.Id_Start = idStart;
            insert.Id_End   = idEnd;
            //controller instance
            RouteController               routeInstance               = new RouteController();
            RouteCrossroadsController     routeCrossroadInstance      = new RouteCrossroadsController();
            CrossroadParametersController crossroadParametersInstance = new CrossroadParametersController();
            CrossroadPriorityController   crossroadPriorityInstance   = new CrossroadPriorityController();
            ResultCrossroadController     resultCrossroadInstance     = new ResultCrossroadController();
            ResultRouteController         resultRouteInstance         = new ResultRouteController();
            //result route lists
            List <Route>       calculatedRoute     = new List <Route>();
            List <ResultRoute> allRoutesPriorities = new List <ResultRoute>();

            calculatedRoute = routeInstance.GetRoute(insert);
            foreach (Route ruta in calculatedRoute)
            {
                //result crossroad lists
                List <RouteCrossroad> routeCrossroadList = new List <RouteCrossroad>();
                List <int>            routePriorityList  = new List <int>();
                routeCrossroadList = routeCrossroadInstance.GetData(ruta);
                foreach (var item in routeCrossroadList)
                {
                    var parameters = crossroadParametersInstance.GetData(item.Id_Crossroad);
                    var priority   = crossroadPriorityInstance.GetData(parameters.Id_traffic, parameters.Id_pollution);
                    routePriorityList.Add(priority.PriorityValue);
                    ResultCrossroad res = new ResultCrossroad();
                    res.Id_Crossroad = item.Id_Crossroad;
                    res.Id_Priority  = priority.Id;
                    res.Date         = DateTime.Now;
                    resultCrossroadInstance.AddResult(res);
                }
                var sum = 0;
                foreach (var item in routePriorityList)
                {
                    sum = sum + item;
                }
                ResultRoute resRoute = new ResultRoute();
                resRoute.Id_Route       = ruta.Id;
                resRoute.Route_Priority = sum;
                resRoute.Date           = DateTime.Now;
                resultRouteInstance.AddResult(resRoute);
                allRoutesPriorities.Add(resRoute);
            }
            allRoutesPriorities.OrderBy(o => o.Route_Priority);
            var   route     = allRoutesPriorities.ElementAt(0);
            Route bestRoute = new Route();

            bestRoute = routeInstance.GetRouteById(route.Id_Route);

            return(bestRoute);
        }