Example #1
0
        /// <summary>
        /// Команда Отменить
        /// </summary>
        private void UndoImplementation()
        {
            if (!Commands.Any())
            {
                return;
            }

            var commandToUndo = Commands[Commands.Count - 1];

            commandToUndo.Rollback();
            Commands.RemoveAt(Commands.Count - 1);
            UndoedCommands.Add(commandToUndo);
        }
Example #2
0
        /// <summary>
        /// Команда Вернуть
        /// </summary>
        private void RedoImplementation()
        {
            if (!UndoedCommands.Any())
            {
                return;
            }

            var commandToRedo = UndoedCommands[Commands.Count - 1];

            commandToRedo.Execute();
            UndoedCommands.RemoveAt(Commands.Count - 1);
            Commands.Add(commandToRedo);
        }
Example #3
0
        /// <summary>
        /// Выполняет новую команду
        /// </summary>
        /// <param name="command">команда</param>
        public void ExecuteNewCommand(IUndoRedoCommand command)
        {
            if (command == null)
            {
                throw new ArgumentNullException(nameof(command));
            }

            if (UndoedCommands.Any())
            {
                UndoedCommands.Clear();
            }

            Commands.Add(command);
            command.Execute();
        }
Example #4
0
 internal void Clear()
 {
     UndoedCommands.Clear();
     Commands.Clear();
 }