This commit is contained in:
Zeeshaun
2026-03-24 15:26:03 -05:00
parent 1e5beb292a
commit 9cc87337b8
333 changed files with 17931 additions and 0 deletions
@@ -0,0 +1,38 @@
using System;
using NCrontab;
using Serilog;
using LCU.Library.Internal.DispatcherModels.Entities;
using LCU.Library.Internal.DispatcherModels.Enums;
namespace LCU.Api.Internal.DispatcherSharedLib.Utilities;
public static class CronHelpers
{
public static void SetNextScheduledRunTime(ref Job job)
{
var isCronSchedule = !string.IsNullOrEmpty(job.CronSchedule);
if (isCronSchedule)
{
CrontabSchedule schedule = CrontabSchedule.Parse(job.CronSchedule);
job.NextRunTime = schedule.GetNextOccurrence(DateTime.Now);
if (job.SkipHolidays)
{
job.NextRunTime = HolidayHelpers.HandleHolidays(job.NextRunTime);
}
job.JobStatus = JobStatus.ReadyToSchedule;
}
}
public static CrontabSchedule SetCronSchedule(string cron, string cronDefault)
{
try
{
return CrontabSchedule.Parse(cron);
}
catch (Exception exception)
{
Log.Error(exception, "Failure parsing cron-tab in appsettings.");
return CrontabSchedule.Parse(cronDefault);
}
}
}