void RunCore(RecoverableActionRequest request) { var success = false; try { request.Action(); success = true; } catch (Exception e) { if (e.IsFatal()) { throw; } _itemsToRecover.Enqueue(new RecoverableActionRequest { Action = request.RecoveryAction, RecoveryAction = request.RecoveryAction, Then = request.Then }); _eventStream.Publish <RecoverableAction>(e); } if (success && request.Then != null) { request.Then(); } }
void RunCore(RecoverableActionRequest request) { var success = false; try { request.Action(); success = true; } catch (Exception e) { if (e.IsFatal()) throw; _itemsToRecover.Enqueue(new RecoverableActionRequest { Action = request.RecoveryAction, RecoveryAction = request.RecoveryAction, Then = request.Then }); _eventStream.Publish<RecoverableAction>(e); } if (success && request.Then != null) request.Then(); }