#if FRAMEWORK20
using System;
using System.Collections.Generic;
using System.Text;
namespace DevComponents.Schedule.Model
{
    /// 
    /// Specifies notification type when appointment start time has been reached.
    /// 
    [Flags()]
    public enum eStartTimeAction
    {
        /// 
        /// No action is taken.
        /// 
        None = 0,
        /// 
        /// StartTimeReached event is fired.
        /// 
        StartTimeReachedEvent = 1,
        /// 
        /// StartTimeCommand is executed.
        /// 
        Command = 2,
        /// 
        /// Both event and command are performed.
        /// 
        StartTimeReachedEventAndCommand = StartTimeReachedEvent | Command
    }
    /// 
    /// Specifies notification type when reminder time has been reached.
    /// 
    [Flags()]
    public enum eReminderAction
    {
        /// 
        /// No action is taken.
        /// 
        None = 0,
        /// 
        /// Reminder event is fired.
        /// 
        Event = 1,
        /// 
        /// Reminder Command is executed.
        /// 
        Command = 2,
        /// 
        /// Both event and command are performed.
        /// 
        EventAndCommand = Event | Command
    }
    /// 
    /// Specifies the recurrence range type.
    /// 
    public enum eRecurrenceRangeLimitType
    {
        /// 
        /// Recurrence range has no end date specified.
        /// 
        NoEndDate,
        /// 
        /// Recurrence ends on date specified by RangeEndDate property.
        /// 
        RangeEndDate,
        /// 
        /// Recurrence ends after specified number of repeats by RangeNumberOfOccurrences property.
        /// 
        RangeNumberOfOccurrences
    }
    /// 
    /// Specifies the pattern type for appointment recurrence.
    /// 
    public enum eRecurrencePatternType
    {
        /// 
        /// Appointment recurs daily.
        /// 
        Daily,
        /// 
        /// Appointment recurs weekly.
        /// 
        Weekly,
        /// 
        /// Appointment recurs monthly.
        /// 
        Monthly,
        /// 
        /// Appointment recurs yearly.
        /// 
        Yearly
    }
    /// 
    /// Specifies the relative day in month for recurrence.
    /// 
    public enum eRelativeDayInMonth
    {
        /// 
        /// No value specified.
        /// 
        None,
        /// 
        /// The first occurrence of the specified day in its month. 
        /// 
        First,
        /// 
        /// The second occurrence of the specified day in its month. 
        /// 
        Second,
        /// 
        /// The third occurrence of the specified day in its month. 
        /// 
        Third,
        /// 
        /// The fourth occurrence of the specified day in its month. 
        /// 
        Fourth,
        /// 
        /// The last occurrence of the specified day in its month. 
        /// 
        Last
    }
    /// 
    /// Specifies on which day the appointment is repeated.
    /// 
    [Flags()]
    public enum eDayOfWeekRecurrence
    {
        None = 0,
        Monday = 1,
        Tuesday = 2,
        Wednesday = 4,
        Thursday = 8,
        Friday = 16,
        Saturday = 32,
        Sunday = 64,
        WeekendDays = Saturday | Sunday,
        WeekDays = Monday | Tuesday | Wednesday | Thursday | Friday,
        All = Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday
    }
    /// 
    /// Specifies on which days daily recurrence is repeated.
    /// 
    public enum eDailyRecurrenceRepeat
    {
        /// 
        /// Appointment is repeated on all days.
        /// 
        All = eDayOfWeekRecurrence.Monday | eDayOfWeekRecurrence.Tuesday | eDayOfWeekRecurrence.Wednesday | eDayOfWeekRecurrence.Thursday | eDayOfWeekRecurrence.Friday | eDayOfWeekRecurrence.Saturday | eDayOfWeekRecurrence.Sunday,
        
        /// 
        /// Appointment is repeated on week-days only, Monday-Friday.
        /// 
        WeekDays = eDayOfWeekRecurrence.Monday | eDayOfWeekRecurrence.Tuesday | eDayOfWeekRecurrence.Wednesday | eDayOfWeekRecurrence.Thursday | eDayOfWeekRecurrence.Friday,
        
        /// 
        /// Appointment is repeated on weekend-days only, Saturday-Sunday.
        /// 
        WeekendDays = eDayOfWeekRecurrence.WeekendDays
    }
    /// 
    /// Specifies on which month monthly appointment recurrence is repeated.
    /// 
    [Flags()]
    public enum eMonthRecurrence
    {
        January = 1,
        February = 2,
        March = 4,
        April = 8,
        May = 16,
        June = 32,
        July = 64,
        August = 128,
        September = 256,
        October = 512,
        November = 1024,
        December = 2048,
        All = January | February | March | April | May | June | July | August | September | October | November | December
    }
}
#endif