public void LowLevelSimpleRangeInYearTest1() { var nonWinterMonths = new ScheduleRangeInYear(4, 11); var winterDate = new DateTime(2040, 1, 17); var summerDate = new DateTime(2040, 7, 4); Assert.IsTrue(nonWinterMonths.Includes(summerDate)); Assert.IsFalse(nonWinterMonths.Includes(winterDate)); }
public void BuildStreetCleaningScheduleTest2() { var observedHolidays = GetObservedHolidays(); var rangeInYear = new ScheduleRangeInYear(4, 10); var builder = new ScheduleBuilder(); var schedule = builder .HavingFrequency(3) // monthly .DuringYear(rangeInYear) .DuringMonth(5) // 1st and 3rd weeks of month .OnDaysOfWeek(2) // Mon .Excluding(observedHolidays) .Create(); var firstMondayInOctober = new DateTime(2040, 10, 1); var thirdMondayInJuly = new DateTime(2040, 7, 16); var nextTuesday = TestHelper.GetNextWeekDate(DateTime.Today, DayOfWeek.Tuesday); var futureFriday = new DateTime(2040, 8, 17); Assert.IsTrue(schedule.IsOccurring(firstMondayInOctober)); Assert.IsTrue(schedule.IsOccurring(thirdMondayInJuly)); Assert.IsFalse(schedule.IsOccurring(nextTuesday)); Assert.IsFalse(schedule.IsOccurring(futureFriday)); }
public void BuildStreetCleaningScheduleTest1() { var observedHolidays = GetObservedHolidays(); var rangeInYear = new ScheduleRangeInYear(4, 10); var builder = new ScheduleBuilder(); var schedule = builder .DuringYear(rangeInYear) .DuringMonth(WeekInterval.First | WeekInterval.Third) .OnDaysOfWeek(DayInterval.Mon) .Excluding(observedHolidays) .HavingFrequency(FrequencyType.MonthlyByDayInMonth) .Create(); var firstMondayInOctober = new DateTime(2040, 10, 1); var thirdMondayInJuly = new DateTime(2040, 7, 16); var nextTuesday = TestHelper.GetNextWeekDate(DateTime.Today, DayOfWeek.Tuesday); var futureFriday = new DateTime(2040, 8, 17); Assert.IsTrue(schedule.IsOccurring(firstMondayInOctober)); Assert.IsTrue(schedule.IsOccurring(thirdMondayInJuly)); Assert.IsFalse(schedule.IsOccurring(nextTuesday)); Assert.IsFalse(schedule.IsOccurring(futureFriday)); }
public void SetRangeInYear(ScheduleRangeInYear range) { RangeInYear = range; }
/// <summary> /// Set the schedule range if it occurs only during partial periods within a year. /// For example, the street cleaning schedule occurs from April (4) to October (10). /// </summary> /// <param name="during"></param> /// <returns></returns> public ScheduleBuilder DuringYear(ScheduleRangeInYear during) { Schedule.SetRangeInYear(during); return(this); }