private static void RescheduleIfAppropriate( ScheduledCommand storedCommand, ScheduledCommandResult result, CommandSchedulerDbContext db) { var failure = (CommandFailed)result; var now = Domain.Clock.Now(); if (failure.IsCanceled || failure.RetryAfter == null) { // no further retries storedCommand.FinalAttemptTime = now; } else { storedCommand.DueTime = now + failure.RetryAfter; } db.Errors.Add(new CommandExecutionError { ScheduledCommand = storedCommand, Error = result.IfTypeIs <CommandFailed>() .Then(f => f.Exception.ToJson()) .ElseDefault() }); }
internal void Add(ScheduledCommandResult result) { results.Add(result); }
internal void Add(ScheduledCommandResult result) => results.Add(result);