_invokeExecution(command, isRedo = false) {
    this.lock();

    let { args } = command;
    if (!args) {
      args = [];
    }

    return command
      .execute(...args)
      .then((value) => {
        if (!this._isSilent) {
          this.pushUndoStack(command);

          this.fire(isRedo ? eventNames.AFTER_REDO : eventNames.EXECUTE_COMMAND, command);
        }
        this.unlock();
        if (isFunction(command.executeCallback)) {
          command.executeCallback(value);
        }

        return value;
      })
      ['catch']((message) => {
        this.unlock();

        return Promise.reject(message);
      });
  }
Invoke command execution
@param {Command} command - Command
@param {boolean} [isRedo=false] - check if command is redo
@returns {Promise}
@private