using Cronos; using Elsa.Common; namespace Elsa.Scheduling.Services; /// /// A cron parser that uses Cronos. /// public class CronosCronParser : ICronParser { private readonly ISystemClock _systemClock; /// /// Initializes a new instance of the class. /// public CronosCronParser(ISystemClock systemClock) { _systemClock = systemClock; } /// public DateTimeOffset GetNextOccurrence(string expression) { var parsedExpression = CronExpression.Parse(expression, CronFormat.IncludeSeconds); var now = _systemClock.UtcNow; return parsedExpression.GetNextOccurrence(now, TimeZoneInfo.Utc).GetValueOrDefault(); } }