public bool TestCheckAvailabilityForYearlyEvents(string currentDate, string dayOfYear, int weekdaySequence, int weekday, int month, int frequency, int option)
        {
            var service = new RecurrenceService();

            RecurrenceYearlyModel model;

            if (option == 1)
            {
                model = new RecurrenceYearlyModel
                {
                    StartDate  = DateTime.Parse("01/11/2016"),
                    EndDate    = DateTime.Parse("30/11/2017"),
                    DateOfYear = DateTime.Parse(dayOfYear), // date of year
                    NthWeekday = WeekdaySequences.None,
                    Weekday    = Weekdays.None,
                    Month      = Months.None,
                    NumOfYears = frequency // frequency
                };
            }
            else
            {
                model = new RecurrenceYearlyModel
                {
                    StartDate  = DateTime.Parse("01/11/2016"),
                    EndDate    = DateTime.Parse("30/11/2017"),
                    DateOfYear = DateTime.MinValue,
                    NthWeekday = (WeekdaySequences)weekdaySequence, // number of weekday
                    Weekday    = (Weekdays)weekday,                 // weekday
                    Month      = (Months)month,                     // month
                    NumOfYears = frequency                          // frequency
                };
            }

            return(service.CheckAvailability(DateTime.Parse(currentDate), model));
        }
        public bool TestCheckAvailabilityForMonthlyEvents(string currentDate, int dayOfMonth, int weekdaySequence, int weekday, int frequency, int option)
        {
            var service = new RecurrenceService();

            RecurrenceMonthlyModel model;

            if (option == 1)
            {
                // Option 1
                model = new RecurrenceMonthlyModel
                {
                    StartDate   = DateTime.Parse("01/11/2016"),
                    EndDate     = DateTime.Parse("30/11/2017"),
                    DateOfMoth  = dayOfMonth,                // day of month
                    NthWeekday  = 0,
                    Weekday     = Weekdays.None,
                    NumOfMonths = frequency,                 // frequency
                };
            }
            else
            {
                // Option 2
                model = new RecurrenceMonthlyModel
                {
                    StartDate   = DateTime.Parse("01/11/2016"),
                    EndDate     = DateTime.Parse("30/11/2017"),
                    DateOfMoth  = 0,
                    NthWeekday  = (WeekdaySequences)weekdaySequence, // number of weekday
                    Weekday     = (Weekdays)weekday,                 // weekday
                    NumOfMonths = frequency                          // frequency
                };
            }

            return(service.CheckAvailability(DateTime.Parse(currentDate), model));
        }
        public bool TestCheckAvailabilityForDailyEvents(string currentDate, int frequency)
        {
            var service = new RecurrenceService();

            // recur every day.
            var model = new RecurrenceDailyModel
            {
                StartDate = DateTime.Parse("01/11/2016"),
                EndDate   = DateTime.Parse("31/01/2017"),
                Days      = frequency
            };

            return(service.CheckAvailability(DateTime.Parse(currentDate), model));
        }
        public bool TestCheckAvailabilityForWeeklyEvents(string currentDate, int frequency)
        {
            var service = new RecurrenceService();

            var model = new RecurrenceWeeklyModel
            {
                StartDate  = DateTime.Parse("1/11/2016"),
                EndDate    = DateTime.Parse("31/1/2017"),
                NumOfWeeks = frequency,
                Monday     = true,
                Tuesday    = false,
                Wednesday  = false,
                Thursday   = true,
                Friday     = true,
                Saturday   = false,
                Sunday     = true
            };

            var result = service.CheckAvailability(DateTime.Parse(currentDate), model);

            return(result);
        }