Example #1
0
        public Dictionary <int, List <string> > GetDriverPlanVerboseRoutes(Plan plan)
        {
            var solution            = GetSolutionFromPlan(plan);
            var intermediateResults = new Dictionary <Domain.Planning.PlanDriver, IList <RouteSegmentStatistics> >();

            foreach (var nodeRouteSolution in solution.RouteSolutions)
            {
                nodeRouteSolution.StartTime = nodeRouteSolution.Nodes.First().WindowStart;
                var routeSegmentStatistics = _reportingService.GetRouteSegmentStats(nodeRouteSolution);
                var planDriver             = plan.DriverPlans.First(x => x.DriverId == nodeRouteSolution.DriverNode.Driver.Id);
                if (!intermediateResults.ContainsKey(planDriver))
                {
                    intermediateResults.Add(planDriver, routeSegmentStatistics);
                }
                else
                {
                    intermediateResults[planDriver] = intermediateResults[planDriver].Concat(routeSegmentStatistics).ToList();
                }
            }

            var results = GetDriverPlanVerboseRoutes(intermediateResults);

            return(results);
        }
Example #2
0
        public SolutionPerformanceStatistics GetSolutionPerformanceStatistics(Plan plan)
        {
            var solution = GetSolutionFromPlan(plan);

            return(this.dataExtractor.GetSolutionPerformanceStatistics(solution));
        }
Example #3
0
        public Solution GetSolutionFromPlan(Plan plan)
        {
            var planModel = _mapperService.MapDomainToModel(plan);

            return(_planGenerator.GetSolutionFromPlan(planModel));
        }