Пример #1
0
        public ActionResult OnGetRouteList()
        {
            // "[\"2020-11-01T05:00:00.000Z\",\"2020-11-02T05:00:00.000Z\"]"  =>
            // 202-11-01 2020-11-02
            var      date_range = Request.Query["data"].ToString().Replace("\"", "").Replace("[", "").Replace("]", "").Split(",");
            DateTime start_time = DateTime.ParseExact(date_range[0], "yyyy-MM-ddTHH:mm:ss.fffZ", null);
            DateTime end_time   = DateTime.ParseExact(date_range[1], "yyyy-MM-ddTHH:mm:ss.fffZ", null);

            Console.WriteLine(" ------------------------------ Get custom route list------------------------------");
            Console.WriteLine("Get datetime range from {0} to {1}", start_time, end_time);
            Console.WriteLine(" ------------------------------ Get custom route list ------------------------------");

            /* Get Route_Call for different weeks */
            Route_Call_All = _context.RouteCall
                             .Include(c => c.Route)
                             .ThenInclude(c => c.Machine_Train_List)
                             .Where(c => c.CompleteDate == null)
                             .AsNoTracking()
                             .ToList();

            List <RouteCall> Custom_Route_Call_List = Route_Call_All
                                                      .Where(r => r.ScheduleDate <= end_time)
                                                      .Where(r => r.ScheduleDate >= start_time)
                                                      .OrderBy(r => r.PkCallId)
                                                      .ToList();

            double route_hour = Custom_Route_Call_List.Sum(r => r.LabourHours);

            result = new CustomRouteList {
                route_list = Custom_Route_Call_List, hour = route_hour
            };

            return(new JsonResult(result));
        }
Пример #2
0
        public async Task OnGetAsync()
        {
            GetUserName();

            V_Route_Machines_All = await _context.VRouteMachines
                                   .AsNoTracking()
                                   .ToListAsync();

            /* Get Route_Call for different weeks */
            Route_Call_All = await _context.RouteCall
                             .Include(c => c.Route)
                             .ThenInclude(c => c.Machine_Train_List)
                             .Where(c => c.CompleteDate == null)
                             .AsNoTracking()
                             .ToListAsync();

            DayOfWeek weekStart    = DayOfWeek.Monday; // or Sunday, or whenever
            DateTime  startingDate = DateTime.Today;

            while (startingDate.DayOfWeek != weekStart)
            {
                startingDate = startingDate.AddDays(-1);
            }


            for (int i = 0; i < 4; ++i)
            {
                DateTime weekstartdate = startingDate.AddDays(-7 + 7 * i);
                DateTime weekenddate   = startingDate.AddDays(-1 + 7 * i);

                Route_Call_Week_List.Add(Route_Call_All
                                         .Where(r => r.ScheduleDate <= weekenddate)
                                         .Where(r => r.ScheduleDate >= weekstartdate)
                                         //.OrderBy(r => r.RouteId)
                                         .ToList());

                WeekHourList.Add(Route_Call_Week_List[i].Sum(r => r.LabourHours));

                for (int j = 0; j < Route_Call_Week_List[i].Count; ++j)
                {
                    var r_id = Route_Call_Week_List[i][j].FkRouteId;
                    if (!Machine_List_Dict.ContainsKey(r_id))
                    {
                        var Machine_List = V_Route_Machines_All
                                           .Where(m => m.RouteId == r_id)
                                           .ToList();
                        Machine_List_Dict.Add(r_id, Machine_List);
                    }
                }
            }
            /* Get Route_Call for different weeks */
        }