Exemplo n.º 1
0
        /// <inheritdoc/>
        public virtual void EndTransaction(string name, AggregateActionItemDelegate aggregateActionItems, bool reverseOrderOnUndo = true)
        {
            if (TransactionStack.Count == 0)
            {
                throw new InvalidOperationException(Properties.ExceptionMessages.CannotEndNoTransactionInProgress);
            }

            var currentTransaction = TransactionStack.Pop();

            if (currentTransaction.Count > 0)
            {
                var result = aggregateActionItems(currentTransaction);
                var aggregateActionItem = result as IAggregateActionItem;
                if (aggregateActionItem != null)
                {
                    aggregateActionItem.ReverseOrderOnUndo = reverseOrderOnUndo;
                }
                Add(result);
                TransactionEnded?.Invoke(this, new ActionItemsEventArgs <IActionItem>(result));
            }
            else
            {
                TransactionDiscarded?.Invoke(this, new ActionItemsEventArgs <IActionItem>(new IActionItem[0]));
            }
        }
 /// <inheritdoc/>
 public void EndTransaction(string displayName, AggregateActionItemDelegate aggregateActionItems, bool reverseOrderOnUndo = true)
 {
 }
Exemplo n.º 3
0
        /// <inheritdoc/>
        public virtual void EndTransaction(string name, AggregateActionItemDelegate aggregateActionItems, bool reverseOrderOnUndo = true)
        {
            if (TransactionStack.Count == 0) throw new InvalidOperationException(Properties.ExceptionMessages.CannotEndNoTransactionInProgress);

            var currentTransaction = TransactionStack.Pop();
            if (currentTransaction.Count > 0)
            {
                var result = aggregateActionItems(currentTransaction);
                var aggregateActionItem = result as IAggregateActionItem;
                if (aggregateActionItem != null)
                {
                    aggregateActionItem.ReverseOrderOnUndo = reverseOrderOnUndo;
                }
                Add(result);
                TransactionEnded?.Invoke(this, new ActionItemsEventArgs<IActionItem>(result));
            }
            else
            {
                TransactionDiscarded?.Invoke(this, new ActionItemsEventArgs<IActionItem>(new IActionItem[0]));
            }
        }
Exemplo n.º 4
0
 /// <inheritdoc/>
 public void EndTransaction(string displayName, AggregateActionItemDelegate aggregateActionItems, bool reverseOrderOnUndo = true)
 {
 }