private Action<Exception> OnFailure(Endpoint endpoint, IEnumerable<PersistentMessage> messages)
{
return exception =>
{
try
{
queueStorage.Send(actions =>
{
foreach (var message in messages)
{
actions.MarkOutgoingMessageAsFailedTransmission(message.Bookmark,
exception is QueueDoesNotExistsException);
}
actions.Commit();
queueManager.FailedToSendTo(endpoint);
});
}
finally
{
Interlocked.Decrement(ref currentlySendingCount);
}
};
}