Rollback() защищенный абстрактный Метод

Rollback this event. This method is executed with Mementor.IsTrackingEnabled off, so no change marking will be done during its execution.

Because undo and redo are symmetric, this method might return a "reverse event" which will be used to rollback the effect of the current method. This method must now, however, return an isntance of BatchEvent.

protected abstract Rollback ( ) : BaseEvent
Результат BaseEvent
Пример #1
0
 private void RollbackEvent(BaseEvent @event, bool undoing)
 {
     ExecuteNoTrack(() => {
         var reverse = @event.Rollback();
         if (reverse == null)
         {
             return;
         }
         if (reverse is BatchEvent)
         {
             if (!(@event is BatchEvent))
             {
                 throw new InvalidOperationException("Must not return BatchEvent in Rollback()");
             }
             reverse = ProcessBatch((BatchEvent)reverse);
             if (reverse == null)
             {
                 return;
             }
         }
         (undoing ? _redoStack : _undoStack).Push(reverse);
     });
 }
Пример #2
0
 private void RollbackEvent(BaseEvent @event, bool undoing)
 {
     ExecuteNoTrack(() => {
         var reverse = @event.Rollback();
         if (reverse == null) return;
         if (reverse is BatchEvent)
         {
             if (!(@event is BatchEvent))
                 throw new InvalidOperationException("Must not return BatchEvent in Rollback()");
             reverse = ProcessBatch((BatchEvent) reverse);
             if (reverse == null) return;
         }
         (undoing ? _redoStack : _undoStack).Push(reverse);
     });
 }