protected static bool IsWeekend(CalendarFillingMode mode, DateTime date, int relativeIdx) { if (mode == CalendarFillingMode.Weekend) { return(true); } if (mode == CalendarFillingMode.OnlySelectedDay) { return(false); } if (mode == CalendarFillingMode.FiveByTwo) { return(date.DayOfWeek == DayOfWeek.Sunday || date.DayOfWeek == DayOfWeek.Saturday); } if (mode == CalendarFillingMode.TwoByTwo) { return(relativeIdx / 2 % 2 != 0); } return(true); }
protected void CheckWholeMonth(WorkerListPage page, DateTime month, CalendarFillingMode mode) => CheckCalendarRange(page, DateHelper.GetFirstDayOfMonth(month), DateHelper.GetLastDayOfMonth(month), mode);
protected void CheckCalendarRange(WorkerListPage page, DateTime from, DateTime to, CalendarFillingMode mode) { from = from.Date; to = to.Date; if (from.Month != to.Month || from.Year != to.Year) { throw new Exception("Dates should have same Month and Year"); } if (mode == CalendarFillingMode.OnlySelectedDay && from != to) { throw new Exception($"Can't check one day in provided range: {from:dd.MM.yyyy} - {to:dd.MM.yyyy}"); } Console.Write($"CheckCalendarRange [{from:dd.MM.yyyy} - {to:dd.MM.yyyy}] with mode: {mode}. WorkDaysMask: "); var firstDay = DateHelper.GetFirstDayOfMonth(from); var startOfRange = from.Day - 1; for (var i = from.Day - 1; i < to.Day; i++) { var relativeDate = firstDay.AddDays(i); var isWeekend = IsWeekend(mode, relativeDate, i - startOfRange); Console.Write(isWeekend ? "-" : "+"); page.GetCell(0, i).WaitFilled(!isWeekend, $"в индексе {i}"); } }
public static void SetCalendarMode(this DayEditingBlock block, CalendarFillingMode mode) { block.CalendarMode.SelectByIndex((int)mode); }