internal static void Configure(this Registry registry, ISyncTask task, RecurrencePatternConfiguration configuration)
        {
            switch (configuration)
            {
            case DailyRecurrencePatternConfiguration dailyConfiguration:
                var dailySchedule = registry.Schedule(() => task.Execute());
                Schedule(dailySchedule, dailyConfiguration);
                break;

            case MonthlyNamedRecurrencePatternConfiguration monthlyNamedConfiguration:
                var monthlyNamedSchedule = registry.Schedule(() => task.Execute());
                Schedule(monthlyNamedSchedule, monthlyNamedConfiguration);
                break;

            case MonthlyRecurrencePatternConfiguration monthlyConfiguration:
                var monthlySchedule = registry.Schedule(() => task.Execute());
                Schedule(monthlySchedule, monthlyConfiguration);
                break;

            case TimePartRecurrencePatternConfiguration timePartConfiguration:
                var timePartSchedule = registry.Schedule(() => task.Execute());
                Schedule(timePartSchedule, timePartConfiguration);
                break;

            case WeekendRecurrencePatternConfiguration weekendConfiguration:
                var saturdayWeekendDaySchedule = registry.Schedule(() => task.Execute());
                var sundayWeekendDaySchedule   = registry.Schedule(() => task.Execute());
                Schedule(saturdayWeekendDaySchedule, sundayWeekendDaySchedule, weekendConfiguration);
                break;

            case WeeklyRecurrencePatternConfiguration weeklyConfiguration:
                var weeklySchedule = registry.Schedule(() => task.Execute());
                Schedule(weeklySchedule, weeklyConfiguration);
                break;

            case WorkdayRecurrencePatternConfiguration workdayConfiguration:
                var workdaySchedule = registry.Schedule(() => task.Execute());
                Schedule(workdaySchedule, workdayConfiguration);
                break;
            }
        }
Example #2
0
        /// <summary>
        /// Schedule task by type
        /// </summary>
        /// <param name="config"></param>
        public void ScheduleTask <TTask>(RecurrencePatternConfiguration config) where TTask : ISyncTask
        {
            var instance = Activator.CreateInstance <TTask>();

            ScheduleTask(instance, config);
        }
Example #3
0
 /// <summary>
 /// Schedule task instance
 /// </summary>
 /// <param name="task"></param>
 /// <param name="config"></param>
 public void ScheduleTask(ISyncTask task, RecurrencePatternConfiguration config)
 {
     _registry.Configure(task, config);
 }