예제 #1
0
        public TimeTableViewModel(DateTime day)
        {
            WeekNumber = HelperFunctions.GetIso8601WeekOfYear(day);
            var             db       = new WashContext();
            List <WashTime> times    = db.WashTimes.Where(x => x.Time.Year == day.Year).ToList();
            List <WashTime> thisWeek =
                times.Where(
                    time =>
                    HelperFunctions.GetIso8601WeekOfYear(time.Time) ==
                    HelperFunctions.GetIso8601WeekOfYear(DateTime.Today)
                    ).OrderBy(f => f.Time.Date).ThenBy(f => f.Time.Hour).ThenBy(f => f.Machine
                                                                                ).GroupBy(
                    f => new { f.Time.Date, f.Time.Hour, f.Machine }
                    ).Select(
                    group => group.First()
                    ).ToList();

            if (thisWeek.Count < (126 * 2))
            {
                FillWeek(day, db);
                times    = db.WashTimes.Where(x => x.Time.Year == day.Year).ToList();
                thisWeek =
                    times.Where(
                        time =>
                        HelperFunctions.GetIso8601WeekOfYear(time.Time) ==
                        HelperFunctions.GetIso8601WeekOfYear(DateTime.Today)
                        ).OrderBy(f => f.Time.Date).ThenBy(f => f.Time.Hour).ThenBy(f => f.Machine
                                                                                    ).GroupBy(
                        f => new { f.Time.Date, f.Time.Hour, f.Machine }
                        ).Select(
                        group => group.First()
                        ).ToList();
            }

            Monday    = new WashDayViewModel(thisWeek.GetRange(0, 36));
            Tuesday   = new WashDayViewModel(thisWeek.GetRange(35, 36));
            Wednesday = new WashDayViewModel(thisWeek.GetRange(71, 36));
            Thursday  = new WashDayViewModel(thisWeek.GetRange(107, 36));
            Friday    = new WashDayViewModel(thisWeek.GetRange(143, 36));
            Saturday  = new WashDayViewModel(thisWeek.GetRange(179, 36));
            Sunday    = new WashDayViewModel(thisWeek.GetRange(215, 36));
        }
예제 #2
0
        public TimeTableViewModel(List <WashTime> times)
        {
            Monday    = new WashDayViewModel(times.GetRange(0, 36));
            Tuesday   = new WashDayViewModel(times.GetRange(35, 36));
            Wednesday = new WashDayViewModel(times.GetRange(71, 36));
            Thursday  = new WashDayViewModel(times.GetRange(107, 36));
            Friday    = new WashDayViewModel(times.GetRange(143, 36));
            Saturday  = new WashDayViewModel(times.GetRange(179, 36));
            Sunday    = new WashDayViewModel(times.GetRange(215, 36));


            var el = times.FirstOrDefault();

            if (el != null)
            {
                WeekNumber = HelperFunctions.GetIso8601WeekOfYear(el.Time);
            }
            else
            {
                WeekNumber = HelperFunctions.GetIso8601WeekOfYear(DateTime.Now);
            }
        }