async Task<ErrorHandleResult> DeferMessage(DelayedRetry action, ErrorContext errorContext)
{
var message = errorContext.Message;
Logger.Warn($"Delayed Retry will reschedule message '{message.MessageId}' after a delay of {action.Delay} because of an exception:", errorContext.Exception);
var currentDelayedRetriesAttempts = await delayedRetryExecutor.Retry(message, action.Delay, errorContext.TransportTransaction).ConfigureAwait(false);
if (raiseNotifications)
{
await eventAggregator.Raise(
new MessageToBeRetried(
attempt: currentDelayedRetriesAttempts,
delay: action.Delay,
immediateRetry: false,
errorContext: errorContext))
.ConfigureAwait(false);
}
return ErrorHandleResult.Handled;
}