Esempio n. 1
0
        private void EvaluateJobForScheduling()
        {
            // It's safe to assume the data returned by the ScheduleWriter query is valid.
            // The query excludes ScheduleDateMode.Unscheduled records, and the validator
            // for BaseDefinition ensures all of the settings and combinations are correct.

            var dates = Formatting.SplitCommaSeparatedList(job.ScheduleDates);

            switch (job.ScheduleDateMode)
            {
            // any of 1-7 with commas, ISO format (Monday = 1, Sunday = 7)
            case ScheduleDateMode.DaysOfWeek:
                if (analysis.InDaysOfWeek(dates))
                {
                    CreateSchedulesForDate();
                }
                break;

            // any numeric with commas, or first,last
            case ScheduleDateMode.DaysOfMonth:
                if (analysis.InDaysOfMonth(dates))
                {
                    CreateSchedulesForDate();
                }
                break;

            // mm/dd,mm/dd,mm/dd
            case ScheduleDateMode.SpecificDates:
                if (analysis.InSpecificDates(dates))
                {
                    CreateSchedulesForDate();
                }
                break;

            // mm/dd-mm/dd,mm/dd-mm/dd (inclusive)
            case ScheduleDateMode.DateRanges:
                if (analysis.InDateRanges(dates))
                {
                    CreateSchedulesForDate();
                }
                break;

            // first,last,weekday,weekend
            case ScheduleDateMode.Weekdays:
                if (analysis.InWeekdays(dates))
                {
                    CreateSchedulesForDate();
                }
                break;
            }
        }