using Duplicati.Library.Utility; using Duplicati.Server; using Duplicati.Server.Serialization.Interface; using Duplicati.WebserverCore.Abstractions; namespace WebserverCore.Services; public class SchedulerService : IScheduler { private readonly Duplicati.Server.Scheduler scheduler; public SchedulerService(Duplicati.Server.Scheduler scheduler) { this.scheduler = scheduler; } public List> Schedule => scheduler.Schedule; public List WorkerQueue => scheduler.WorkerQueue; public void SubScribeToNewSchedule(Action handler) => scheduler.NewSchedule += (_, _) => handler(); public IList> GetSchedulerQueueIds() => scheduler.GetSchedulerQueueIds(); public IList> GetProposedSchedule() => scheduler.GetProposedSchedule(); public void Reschedule() => scheduler.Reschedule(); public void Terminate(bool wait) => scheduler.Terminate(wait); public void Init(WorkerThread worker) => scheduler.Init(worker); }