public void WeeklyRules()
        {
            //test 1
            var r1 = new RecurrenceRule()
            {
                Freq  = Frequency.Weekly,
                Count = 10
            };

            var dates = r1.GetDates(new DateTime(1997, 9, 2, 9, 0, 0), _fromDate, _toDate);

            CollectionAssert.AreEqual(new List <DateTime>()
            {
                new DateTime(1997, 9, 2, 9, 0, 0), new DateTime(1997, 9, 9, 9, 0, 0),
                new DateTime(1997, 9, 16, 9, 0, 0), new DateTime(1997, 9, 23, 9, 0, 0),
                new DateTime(1997, 9, 30, 9, 0, 0), new DateTime(1997, 10, 7, 9, 0, 0),
                new DateTime(1997, 10, 14, 9, 0, 0), new DateTime(1997, 10, 21, 9, 0, 0),
                new DateTime(1997, 10, 28, 9, 0, 0), new DateTime(1997, 11, 4, 9, 0, 0)
            }, dates);


            //test 2
            r1 = new RecurrenceRule()
            {
                Freq     = Frequency.Weekly,
                Interval = 2,
                WKST     = RecurrenceRule.WeekDay.Parse("su"),
                Count    = 10
            };

            dates = r1.GetDates(new DateTime(1997, 9, 2, 9, 0, 0), _fromDate, _toDate);

            CollectionAssert.AreEqual(new List <DateTime>()
            {
                new DateTime(1997, 9, 2, 9, 0, 0), new DateTime(1997, 9, 16, 9, 0, 0),
                new DateTime(1997, 9, 30, 9, 0, 0), new DateTime(1997, 10, 14, 9, 0, 0),
                new DateTime(1997, 10, 28, 9, 0, 0), new DateTime(1997, 11, 11, 9, 0, 0),
                new DateTime(1997, 11, 25, 9, 0, 0), new DateTime(1997, 12, 9, 9, 0, 0),
                new DateTime(1997, 12, 23, 9, 0, 0), new DateTime(1998, 1, 6, 9, 0, 0)
            }, dates);

            //test 3
            r1 = new RecurrenceRule()
            {
                Freq     = Frequency.Weekly,
                Interval = 2,
                WKST     = RecurrenceRule.WeekDay.Parse("su"),
                Count    = 8,
                ByDay    = new RecurrenceRule.WeekDay[] { RecurrenceRule.WeekDay.Parse("tu"), RecurrenceRule.WeekDay.Parse("th") }
            };

            dates = r1.GetDates(new DateTime(1997, 9, 2, 9, 0, 0), _fromDate, _toDate);

            CollectionAssert.AreEqual(new List <DateTime>()
            {
                new DateTime(1997, 9, 2, 9, 0, 0), new DateTime(1997, 9, 4, 9, 0, 0),
                new DateTime(1997, 9, 16, 9, 0, 0), new DateTime(1997, 9, 18, 9, 0, 0),
                new DateTime(1997, 9, 30, 9, 0, 0), new DateTime(1997, 10, 2, 9, 0, 0),
                new DateTime(1997, 10, 14, 9, 0, 0), new DateTime(1997, 10, 16, 9, 0, 0)
            }, dates);


            r1    = RecurrenceRule.Parse("freq=weekly;count=3;interval=2;byday=mo");
            dates = r1.GetDates(new DateTime(2012, 1, 2, 0, 0, 0), _fromDate, _toDate);

            CollectionAssert.AreEqual(new List <DateTime>()
            {
                new DateTime(2012, 1, 2, 0, 0, 0), new DateTime(2012, 1, 16, 0, 0, 0),
                new DateTime(2012, 1, 30, 0, 0, 0)
            }, dates);
        }
Пример #2
0
 public List <EventWrapper> AddEvent(int calendarId, string name, string description, ApiDateTime startDate, ApiDateTime endDate, string repeatType, EventAlertType alertType, bool isAllDayLong, List <SharingParam> sharingOptions)
 {
     return(CreateEvent(calendarId, name, description, startDate.UtcTime, endDate.UtcTime, RecurrenceRule.Parse(repeatType), alertType, isAllDayLong, sharingOptions));
 }