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)); }
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); } }