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));
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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));
        }
Beispiel #4
0
 public void SetRangeInYear(ScheduleRangeInYear range)
 {
     RangeInYear = range;
 }
Beispiel #5
0
 /// <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);
 }