Ejemplo n.º 1
0
        public async Task <List <PlanByRouteModel> > GetPlannedNumberByRouteAsync(DateTime date)
        {
            var plans = await _planRepository.GetByDateAsync(date);

            var factObjects = await _factOfObjectRouteRepository.GetByDateAsync(date);

            var projectRoutes = await _projectRouteRepository.GetAllActiveAsync();

            var result = projectRoutes
                         .Select(x => x.RouteId)
                         .Distinct()
                         .Select(routeId => {
                var plan         = plans.FirstOrDefault(pl => pl.RoutId == routeId);
                var fact         = factObjects.FirstOrDefault(f => f.RouteId == routeId);
                var projectRoute = projectRoutes.FirstOrDefault(pr => pr.RouteId == routeId);

                var item = new PlanByRouteModel
                {
                    RouteId       = routeId,
                    ProjectId     = projectRoute != null ? projectRoute.ProjectId : 0,
                    FactNumber    = fact != null ? fact.CountObjects : 0,
                    PlannedNumber = plan != null ? plan.TypePlannedTotal : 0
                };

                return(item);
            })
                         .ToList();

            return(result);
        }