protected void UpdateMonthCollection <T>() where T : CalendarMonth { if (ParentScheduleSettings.FlightDateStart.HasValue && ParentScheduleSettings.FlightDateEnd.HasValue) { var months = new List <CalendarMonth>(); var startDate = new DateTime(ParentScheduleSettings.FlightDateStart.Value.Year, ParentScheduleSettings.FlightDateStart.Value.Month, 1); while (startDate <= ParentScheduleSettings.FlightDateEnd.Value) { var month = Months.FirstOrDefault(x => x.Date.Equals(startDate)); if (month == null) { month = (T)Activator.CreateInstance(typeof(T), this); month.Date = startDate; } month.Days.Clear(); month.Days.AddRange(Days.Where(x => x.Date >= month.DaysRangeBegin && x.Date <= month.DaysRangeEnd)); months.Add(month); startDate = startDate.AddMonths(1); } Months.Clear(); Months.AddRange(months); } else { Months.Clear(); } }
public TimeAccountingCalendarViewModel(UsernamePasswordConnection connection) { _connection = connection; Year = new Year(DateTime.Now.Year, true); Months.AddRange(GetMonths()); UploadWorkItems(); }
public CronTemplate(IList <int> seconds, IList <int> minutes, IList <int> hours, IList <int> daysOfMonth, IList <int> months, IList <int> dayOfWeek) { Seconds.AddRange(seconds); Minutes.AddRange(minutes); Hours.AddRange(hours); DaysOfMonth.AddRange(daysOfMonth); Months.AddRange(months); DaysOfWeek.AddRange(dayOfWeek); }
public override void UpdateMonthCollection() { if (!MediaScheduleSettings.FlightDateStart.HasValue || !MediaScheduleSettings.FlightDateEnd.HasValue) { Months.Clear(); return; } var months = new List <CalendarMonth>(); var startDate = MediaScheduleSettings.FlightDateStart.Value; var monthTemplates = MediaScheduleSettings.MondayBased ? MediaMetaData.Instance.ListManager.MonthTemplatesMondayBased : MediaMetaData.Instance.ListManager.MonthTemplatesSundayBased; while (startDate <= MediaScheduleSettings.FlightDateEnd.Value) { var monthTemplate = monthTemplates.FirstOrDefault(mt => startDate >= mt.StartDate && startDate <= mt.EndDate); if (monthTemplate == null) { continue; } startDate = monthTemplate.Month.Value; var month = Months.FirstOrDefault(x => x.Date == startDate); if (month == null) { if (MediaScheduleSettings.MondayBased) { month = new CalendarMonthMediaMondayBased(this); } else { month = new CalendarMonthMediaSundayBased(this); } ApplyDefaultMonthSettings(month); } month.Date = monthTemplate.Month.Value; month.DaysRangeBegin = monthTemplate.StartDate.Value; month.DaysRangeEnd = monthTemplate.EndDate.Value; month.Days.Clear(); month.Days.AddRange(Days.Where(x => x.Date >= month.DaysRangeBegin && x.Date <= month.DaysRangeEnd)); months.Add(month); startDate = startDate.AddMonths(1); } Months.Clear(); Months.AddRange(months); }
private void CacheNextMonths() { var monthsToAdd = new List <MonthViewModel>(); var lastMonth = Months.Last(); for (int i = 1; i < CachedMonthCount; i++) { var monthToAddDateTime = lastMonth.CurrentDate.AddMonths(i); var monthToAdd = new MonthViewModel( monthToAddDateTime, SelectDayCommand, _toDoCalendarViewModel.GetDaysWithToDoByDateAndStatus(monthToAddDateTime, ConstantsHelper.Active), _toDoCalendarViewModel.GetDaysWithToDoByDateAndStatus(monthToAddDateTime, ConstantsHelper.Completed)); monthsToAdd.Add(monthToAdd); Months.RemoveAt(0); } Months.AddRange(monthsToAdd); }