private void HandleRecovery()
{
var recoveryRequired = false;
queueStorage.Global(actions =>
{
actions.MarkAllOutgoingInFlightMessagesAsReadyToSend();
actions.MarkAllProcessedMessagesWithTransactionsNotRegisterForRecoveryAsReadyToDeliver();
foreach (var bytes in actions.GetRecoveryInformation())
{
recoveryRequired = true;
TransactionManager.Reenlist(queueStorage.Id, bytes,
new TransactionEnlistment(queueStorage, () => { }, () => { }));
}
actions.Commit();
});
if (recoveryRequired)
TransactionManager.RecoveryComplete(queueStorage.Id);
}