using System.Linq.Expressions; using Hangfire; namespace Books.Api.Infrastructure; public class HangfireScheduler(IBackgroundJobClient jobClient, IRecurringJobManager recurringJobManager) : IScheduler { public void EnqueueJob(Expression> methodCall) { jobClient.Enqueue(methodCall); } public void EnqueueJob(Expression> methodCall, TimeSpan delay) { jobClient.Schedule(methodCall, delay); } public void EnqueueJob(Expression> methodCall) { jobClient.Enqueue(methodCall); } public void AddOrUpdateScheduledJob(string title, Expression> methodCall, string cron) { recurringJobManager.AddOrUpdate(title, methodCall, cron); } }