public MainLogic(IConfiguration config , ILogger <MainLogic> logger , ISchedulesManager schManager , IVmExporter vmExporter , IVmArchiver vmArchiver , IBackupRemover backupRemover , IProgressReporter progressReporter , IBackupTaskService backupTaskService , ICentralServer centralServer) { _config = config; _logger = logger; _schManager = schManager; _vmArchiver = vmArchiver; _vmExporter = vmExporter; _backupRemover = backupRemover; _progressReporter = progressReporter; _backupTaskService = backupTaskService; _centralServer = centralServer; _schManager.EventOccurred += Schedules_EventOccurred; _backupTaskService.OnBackupTaskChange += BackupTaskChanged; LoadNewTask(); if (_centralServer.PingSuccess) { SendInfoToCentralServer(); } }
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); }