public void Do(IRevertableAction action) { if (finished) throw new InvalidOperationException ("Transaction has already finished, start a new transaction"); if (canceled) throw new InvalidOperationException ("Transaction has already been canceled"); actions.Add (action); }
private bool onActionFailed(IRevertableAction action) { //TODO change the event args so user can canel it var handler = ActionFailed; if (handler != null) handler (this, EventArgs.Empty); return true; }