public void SimpleScheduleIsOccurringTest2() { var aEvent = CreateTodayEvent(); var schedule = new Schedule(aEvent); Assert.IsNotNull(schedule); Assert.IsFalse(schedule.IsOccurring(DateTime.Today.AddDays(1))); }
public static void Run() { Console.WriteLine(Environment.NewLine); Console.WriteLine("Running daily scenario 1 with a StartDateTime value of 12/1/2013"); Console.WriteLine(Environment.NewLine); var aEvent = new Event() { ID = 1, Title = "Event 1", Frequency = 1, // daily MonthlyInterval = 0, // not applicable DaysOfWeek = 127, // every day of week StartDateTime = new DateTime(2013, 12, 1) }; var during = new DateRange() { StartDateTime = new DateTime(2013, 12, 1), EndDateTime = new DateTime(2013, 12, 31) }; var schedule = new Schedule(aEvent); var dates = schedule.Occurrences(during); foreach (var date in dates) { Console.WriteLine(date.ToShortDateString()); } Console.WriteLine(Environment.NewLine); Console.WriteLine("Printed out all dates between {0} and {1}", during.StartDateTime.ToShortDateString(), during.EndDateTime.ToShortDateString()); }
public void OneTimeOnlyTest2() { var laborDay = new DateTime(2012, 9, 1); var aEvent = new Event() { ID = 1, Title = "Labor Day Extravaganza", Frequency = 0, // one-time only OneTimeOnlyEventDate = laborDay, MonthlyInterval = 0, // not applicable DaysOfWeek = 0 // not applicable }; var schedule = new Schedule(aEvent); var range = new DateRange() { StartDateTime = new DateTime(2012, 8, 1), EndDateTime = new DateTime(2012, 10, 1) }; var occurrences = schedule.Occurrences(range); var count = 0; using (var items = occurrences.GetEnumerator()) { while (items.MoveNext()) count++; } Assert.IsTrue(count > 0); }
public void WeeklyEventOnEveryMonWedFriTest() { var aEvent = new Event() { ID = 1, Title = "Weekly on Monday, Wednesday, Friday", Frequency = 64, // weekly on Monday, Wednesday, Friday DaysOfWeek = 42, // every Mon, Wed and Fri StartDateTime = new DateTime(2013, 8, 2) }; var schedule = new Schedule(aEvent); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 8, 2))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 3))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 4))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 8, 5))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 6))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 8, 7))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 8))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 8, 9))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 10))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 8, 11))); }
/// <summary> /// The canonical Critical Mass monthly bicycle ride /// </summary> public static void Run() { Console.WriteLine(Environment.NewLine); Console.WriteLine("Running monthly scenario 1."); Console.WriteLine(Environment.NewLine); var aEvent = new Event() { ID = 1, Title = "Critical Mass", FrequencyTypeOptions = FrequencyTypeEnum.Monthly, MonthlyIntervalOptions = MonthlyIntervalEnum.Last, DaysOfWeekOptions = DayOfWeekEnum.Fri }; var during = new DateRange() { StartDateTime = new DateTime(2013, 12, 1), EndDateTime = new DateTime(2013, 12, 31) }; var schedule = new Schedule(aEvent); var dates = schedule.Occurrences(during); foreach (var date in dates) { Console.WriteLine(date.ToShortDateString()); } Console.WriteLine(Environment.NewLine); Console.WriteLine("Printed out all dates between {0} and {1}", during.StartDateTime.ToShortDateString(), during.EndDateTime.ToShortDateString()); }
public void WeeklyEventFirstDayOfWeekMonday() { var aEvent = new Event() { ID = 1, Title = "Every 2nd week. First day of week Monday", Frequency = 2, // Weekly DaysOfWeek = 127, // Every day RepeatInterval = 2, FirstDayOfWeek = Enums.DayOfWeekEnum.Mon, StartDateTime = new DateTime(2015, 1, 1) }; var schedule = new Schedule(aEvent); Assert.IsTrue(schedule.IsOccurring(new DateTime(2015, 1, 1))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2015, 1, 2))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2015, 1, 3))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2015, 1, 4))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2015, 1, 5))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2015, 1, 6))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2015, 1, 7))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2015, 1, 8))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2015, 1, 9))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2015, 1, 10))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2015, 1, 11))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2015, 1, 12))); }
public void MonthTest1() { var aEvent = new Event() { ID = 1, Title = "Event 1", FrequencyTypeOptions = FrequencyTypeEnum.Monthly, MonthlyIntervalOptions = MonthlyIntervalEnum.EveryWeek, DaysOfWeekOptions = DayOfWeekEnum.Mon | DayOfWeekEnum.Fri }; var range = new DateRange() { StartDateTime = new DateTime(2013, 1, 15), EndDateTime = new DateTime(2013, 4, 30) }; var occurringDate = new DateTime(2013, 1, 21); var schedule = new Schedule(aEvent); Assert.IsTrue(schedule.IsOccurring(occurringDate)); var previousOccurrence = schedule.PreviousOccurrence(occurringDate, range); Assert.AreEqual(new DateTime(2013, 1, 18), previousOccurrence.Value); var nextOccurrence = schedule.NextOccurrence(occurringDate, range); Assert.AreEqual(new DateTime(2013, 1, 25), nextOccurrence.Value); var occurrences = schedule.Occurrences(range); Assert.AreEqual(30, occurrences.Count()); Assert.AreEqual(new DateTime(2013, 1, 18), occurrences.First()); Assert.AreEqual(new DateTime(2013, 4, 29), occurrences.Last()); }
public void YearTest2() { var aEvent = new Event() { ID = 1, Title = "Event 2", FrequencyTypeOptions = FrequencyTypeEnum.Yearly, Anniversary = new Anniversary() { Month = 9, Day = 27 } }; var schedule = new Schedule(aEvent); Assert.IsTrue(schedule.IsOccurring(new DateTime(2014, 9, 27))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2015, 9, 27))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2016, 9, 27))); var range = new DateRange() { StartDateTime = new DateTime(2012, 1, 1), EndDateTime = new DateTime(2016, 12, 31) }; var occurrences = schedule.Occurrences(range); Assert.AreEqual(5, occurrences.Count()); Assert.AreEqual(new DateTime(2012, 9, 27), occurrences.First()); Assert.AreEqual(new DateTime(2016, 9, 27), occurrences.Last()); }
public void SimpleScheduleIsOccurringTest1() { var aEvent = CreateTodayEvent(); var schedule = new Schedule(aEvent); Assert.IsNotNull(schedule); Assert.IsTrue(schedule.IsOccurring(DateTime.Today)); }
public void AnniversaryTest2() { var anniversary = new Anniversary() { Day = 5, Month = 6 }; var aEvent = new Event() { ID = 1, Title = "Give Flowers to Wife", Frequency = 16, // yearly Anniversary = anniversary }; var schedule = new Schedule(aEvent); Assert.IsFalse(schedule.IsOccurring(new DateTime(2009, 6, 4))); var range = new DateRange() { StartDateTime = new DateTime(2010, 1, 1), EndDateTime = new DateTime(2020, 12, 31) }; var occurrences = schedule.Occurrences(range).ToList(); Assert.IsTrue(occurrences.Count.Equals(11)); }
public void FineGrainedRangeInYearNullEndDayTest() { var holidays = GetHolidays(); var aEvent = CreateFineGrainedStreetCleaningEvent(); // put up a null end day aEvent.RangeInYear.EndDayOfMonth = null; var schedule = new Schedule(aEvent, holidays); Assert.IsNotNull(holidays); Assert.IsNotNull(aEvent); Assert.IsNotNull(schedule); Assert.IsTrue(schedule.IsOccurring(new DateTime(2016, 6, 20))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2016, 5, 16))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2016, 6, 6))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2018, 10, 15))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2018, 11, 5))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2018, 1, 1))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2018, 2, 5))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2018, 3, 19))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2014, 11, 1))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2014, 12, 1))); }
public void EventOptionsPreviousOccurrenceTest() { var holidays = GetHolidays(); var aEvent = CreateStreetCleaningEvent(); var schedule = new Schedule(aEvent, holidays); Assert.IsNotNull(holidays); Assert.IsNotNull(aEvent); Assert.IsNotNull(schedule); var range = new DateRange() { StartDateTime = new DateTime(2016, 1, 1), EndDateTime = new DateTime(2016, 12, 31) }; foreach (var item in schedule.Occurrences(range)) { System.Diagnostics.Debug.WriteLine(item); } var prev = schedule.PreviousOccurrence(new DateTime(2016, 6, 6)); Assert.IsTrue(prev.Equals(new DateTime(2016, 5, 16))); Assert.IsFalse(prev.Equals(new DateTime(2016, 6, 6))); Assert.IsFalse(prev.Equals(new DateTime(2016, 6, 20))); }
private static ISchedule GetSchedule() { var schedule = new Schedule(); var firstExpression = BuildStreetCleaningTemporalExpression(); var firstScheduledEvent = new Event() { ID = 1, Title = "Street Cleaning", DateRange = new DateRange() { StartDateTime = new DateTime(2011, 3, 1, 0, 0, 0), EndDateTime = new DateTime(2011, 10, 30, 18, 0, 0) } }; var secondExpression = BuildWitchingHourPrepTemporalExpression(); var secondScheduledEvent = new Event() { ID = 2, Title = "Witching Hour Preparation", DateRange = new DateRange() { StartDateTime = new DateTime(2012, 10, 1, 0, 0, 0), EndDateTime = new DateTime(2012, 10, 31, 0, 0, 0) } }; schedule.Add(firstScheduledEvent, firstExpression); schedule.Add(secondScheduledEvent, secondExpression); return schedule; }
public void RecurringScheduleIsOccurringTest1() { var aEvent = CreateRecurringEvent(); var schedule = new Schedule(aEvent); Assert.IsNotNull(schedule); Assert.IsTrue(schedule.IsOccurring(new DateTime(2012, 10, 1))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 1, 18))); }
public void RecurringScheduleNextOccurrenceTest2() { var aEvent = CreateRecurringEvent(); var schedule = new Schedule(aEvent); Assert.IsNotNull(schedule); var nextOccurrence = schedule.NextOccurrence(new DateTime(2012, 12, 19)); Assert.IsTrue(nextOccurrence == new DateTime(2013, 1, 2)); }
public void DeserializeScheduleTest() { var schedule = GetSchedule(); var doc = schedule.ToXml(); // given the doc deserialize it back into a Schedule object var anotherSchedule = new Schedule(doc); }
public void RecurringSchedulePreviousOccurrenceTest1() { var aEvent = CreateRecurringEvent(); var schedule = new Schedule(aEvent); Assert.IsNotNull(schedule); var previousOccurrence = schedule.PreviousOccurrence(new DateTime(2013, 1, 2)); Assert.IsFalse(previousOccurrence == new DateTime(2012, 12, 17)); Assert.IsTrue(previousOccurrence == new DateTime(2012, 12, 19)); }
public ActionResult GetEventDetails(int id, int type = 0) { EventLocation l = null; EventDetailsModel evm = null; if (type == 0) { CalendarEntry e = ApplicationContext.DatabaseContext.Database.Single<CalendarEntry>("SELECT * FROM ec_events WHERE id=@0", id); if (e.locationId != 0) { l = ApplicationContext.DatabaseContext.Database.Single<EventLocation>("SELECT * FROM ec_locations WHERE id = @0", e.locationId); } evm = new EventDetailsModel() { Title = e.title, Description = e.description, LocationId = e.locationId, Location = l }; if (null != e.start) { evm.StartDate = ((DateTime)e.start).ToString("F", CultureInfo.CurrentCulture); } if (null != e.end) { evm.EndDate = ((DateTime)e.end).ToString("F", CultureInfo.CurrentCulture); } } else if (type == 1) { RecurringEvent e = ApplicationContext.DatabaseContext.Database.Single<RecurringEvent>("SELECT * FROM ec_recevents WHERE id=@0", id); if (e.locationId != 0) { l = ApplicationContext.DatabaseContext.Database.Single<EventLocation>("SELECT * FROM ec_locations WHERE id = @0", e.locationId); } Schedule schedule = new Schedule(new Event() { Title = e.title, DaysOfWeekOptions = (DayOfWeekEnum)e.day, FrequencyTypeOptions = (FrequencyTypeEnum)e.frequency, MonthlyIntervalOptions = (MonthlyIntervalEnum)e.monthly_interval }); evm = new EventDetailsModel() { Title = e.title, Description = e.description, LocationId = e.locationId, Location = l, StartDate = ((DateTime)schedule.NextOccurrence(DateTime.Now)).ToString("F", CultureInfo.CurrentCulture) }; } return PartialView("EventDetails",evm); }
public void EventOptionsIndependenceDayTest() { var holidays = GetHolidays(); var aEvent = CreateStreetCleaningEvent(); var schedule = new Schedule(aEvent, holidays); Assert.IsNotNull(holidays); Assert.IsNotNull(aEvent); Assert.IsNotNull(schedule); Assert.IsFalse(schedule.IsOccurring(new DateTime(2012, 7, 4))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2016, 7, 4))); }
public void SimpleExcludedDayTest2() { // first Mon of Sep var excludedDay = new DateTime(2012, 9, 3); var aEvent = CreateRecurringEvent(); var excludedDates = new List<DateTime>() { excludedDay }; var schedule = new Schedule(aEvent, excludedDates); Assert.IsNotNull(schedule); Assert.IsFalse(schedule.IsOccurring(excludedDay)); }
public void EventOptionsNextOccurrenceTest() { var holidays = GetHolidays(); var aEvent = CreateStreetCleaningEvent(); var schedule = new Schedule(aEvent, holidays); Assert.IsNotNull(holidays); Assert.IsNotNull(aEvent); Assert.IsNotNull(schedule); var next = schedule.NextOccurrence(new DateTime(2016, 6, 6)); Assert.IsTrue(next.Equals(new DateTime(2016, 6, 20))); Assert.IsFalse(next.Equals(new DateTime(2016, 5, 16))); Assert.IsFalse(next.Equals(new DateTime(2016, 6, 6))); }
public void LastOccurrenceTest1() { var aEvent = new Event() { ID = 1, Title = "Daily, 3 times", FrequencyTypeOptions = FrequencyTypeEnum.Daily, NumberOfOccurrences = 3, FirstDateTime = new DateTime(2013, 7, 29) }; var schedule = new Schedule(aEvent); DateTime? endDate = schedule.GetLastOccurrenceDate(); Assert.IsTrue(endDate == new DateTime(2013, 7, 31)); }
public void StreetCleaningPreviousOccurrenceTest() { var holidays = GetHolidays(); var aEvent = CreateStreetCleaningEvent(); var schedule = new Schedule(aEvent, holidays); Assert.IsNotNull(holidays); Assert.IsNotNull(aEvent); Assert.IsNotNull(schedule); var prev = schedule.PreviousOccurrence(new DateTime(2016, 6, 6)); Assert.IsTrue(prev.Equals(new DateTime(2016, 5, 16))); Assert.IsFalse(prev.Equals(new DateTime(2016, 6, 6))); Assert.IsFalse(prev.Equals(new DateTime(2016, 6, 20))); }
public void RecurringScheduleExclusionsTest2() { var aEvent = CreateRecurringEvent(); var excludedDays = new List<DateTime>() { new DateTime(2012, 12, 5), new DateTime(2012, 12, 25), new DateTime(2013, 1, 2), new DateTime(2013, 2, 18) }; var schedule = new Schedule(aEvent, excludedDays); Assert.IsNotNull(schedule); var nextOccurrence = schedule.NextOccurrence(new DateTime(2013, 1, 1)); Assert.IsTrue(nextOccurrence == new DateTime(2013, 1, 7)); }
public void LastOccurrenceTest10() { var aEvent = new Event() { ID = 10, Title = "Annually on July 29, 2 times", FrequencyTypeOptions = FrequencyTypeEnum.Yearly, Anniversary = new Anniversary { Day = 29, Month = 7 }, StartDateTime = new DateTime(2013, 7, 29) }; aEvent.SetEndDateWithNumberOfOccurrences(2); var schedule = new Schedule(aEvent); DateTime? endDate = schedule.GetLastOccurrenceDate(); Assert.IsTrue(endDate == new DateTime(2014, 7, 29)); }
public void EventOptionsLaborDayTest() { var holidays = GetHolidays(); var aEvent = CreateStreetCleaningEvent(); var schedule = new Schedule(aEvent, holidays); Assert.IsNotNull(holidays); Assert.IsNotNull(aEvent); Assert.IsNotNull(schedule); // Labor Day Assert.IsFalse(schedule.IsOccurring(new DateTime(2012, 9, 3))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 9, 2))); // Third Monday in Sep Assert.IsTrue(schedule.IsOccurring(new DateTime(2014, 9, 15))); }
public void LastOccurrenceTest3() { var aEvent = new Event() { ID = 3, Title = "Weekly on Monday, Tuesday, 3 times", FrequencyTypeOptions = FrequencyTypeEnum.Weekly, DaysOfWeek = 6, NumberOfOccurrences = 3, FirstDateTime = new DateTime(2013, 7, 29) }; var schedule = new Schedule(aEvent); DateTime? endDate = schedule.GetLastOccurrenceDate(); Assert.IsTrue(endDate == new DateTime(2013, 8, 5)); }
public void LastOccurrenceTest2() { var aEvent = new Event() { ID = 2, Title = "Every 2 days, 3 times", FrequencyTypeOptions = FrequencyTypeEnum.Daily, NumberOfOccurrences = 3, DayInterval = 2, FirstDateTime = new DateTime(2013, 7, 29) }; var schedule = new Schedule(aEvent); DateTime? endDate = schedule.GetLastOccurrenceDate(); Assert.IsTrue(endDate == new DateTime(2013, 8, 2)); }
public void LastOccurrenceTest4() { var aEvent = new Event() { ID = 4, Title = "Every 2 weeks on Monday, Tuesday, Wednesday, 10 times", FrequencyTypeOptions = FrequencyTypeEnum.Weekly, DaysOfWeek = 14, WeeklyInterval = 2, NumberOfOccurrences = 10, FirstDateTime = new DateTime(2013, 7, 29) }; var schedule = new Schedule(aEvent); DateTime? endDate = schedule.GetLastOccurrenceDate(); Assert.IsTrue(endDate == new DateTime(2013, 9, 9)); }
public void DailyEventTest3() { var aEvent = new Event() { ID = 1, Title = "Event 3", FrequencyTypeOptions = FrequencyTypeEnum.Daily, RepeatInterval = 4, StartDateTime = new DateTime(2013, 1, 3) }; var schedule = new Schedule(aEvent); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 1, 7))); Assert.IsFalse(schedule.IsOccurring(new DateTime(2013, 1, 12))); Assert.IsTrue(schedule.IsOccurring(new DateTime(2013, 2, 4))); }