Example #1
0
        private void LoadSchedulesFromBackupTask()
        {
            CheckVirtualMachinesExist();
            DeleteCurrentSchedules();

            foreach (var vm in backupTask.VirtualMachines)
            {
                vm.LoadedSchedules = _schManager.LoadFrom(vm.SchedulesConfigs);
            }
        }
Example #2
0
        public Worker(ILogger <Worker> logger, ISchedulesManager manager, IConfiguration config)
        {
            _logger  = logger;
            _manager = manager;
            _config  = config;

            // Set the event handler

            _manager.EventOccurred += Schedules_EventOccurred;

            // creates a schedule, which will fire event every day every 30 seconds from 07:00:00 till 23:00:00

            var daily1 = new DailySchedule(DailyIntervalUnit.Second, 30,
                                           new Time(7, 0, 0), new Time(23, 0, 0),
                                           enabled: true, description: "every day every 30 seconds");

            // creates a schedule, which will fire event every day every 2 minutes from 00:00:00 till 23:59:59,
            // schedule will be created disabled

            var daily2 = new DailySchedule(DailyIntervalUnit.Minute, 2, null, null,
                                           enabled: false, description: "every day every 2 minutes");

            // creates a schedule, which will fire event every day at 12:15:00

            var daily3 = new DailySchedule(new Time(12, 50, 0));

            // creates a schedule, which will fire event on every Monday and Wednesday,
            // every hour from 00:00:00 till 23:59:59

            var weekly1 = new WeeklySchedule(new DayOfWeek[] { DayOfWeek.Monday, DayOfWeek.Wednesday },
                                             DailyIntervalUnit.Hour, 1, null, null);

            // creates a schedule, which will fire event on 1, 2, 15 day of every month at 14:20:15

            var monthly1 = new MonthlySchedule(new int[] { 1, 2, 15 }, new Time("14:20:15"));

            _manager.AddSchedules(daily1, daily2, daily3, weekly1, monthly1);

            // Load from IConfiguration, section "SimpleSchedules" (see appsettings.json)

            _manager.LoadFrom(_config);
        }