コード例 #1
0
        public Result CanCommandBeExecuted(CommandContainer args)
        {
            IBotCommand command = _serviceProvider.GetCommand(args.CommandName);

            var    descriptor = command.GetBotCommandDescriptorAttribute();
            Result canExecute = command.CanExecute(args);

            return(canExecute.IsSuccess
                ? Result.Ok()
                : Result.Fail(
                       $"Command [{descriptor.CommandName}] cannot be executed: {canExecute}"));
        }
コード例 #2
0
ファイル: CommandHandler.cs プロジェクト: lososM/BotFramework
        public Result <CommandArgumentContainer> IsCommandCanBeExecuted(CommandArgumentContainer args)
        {
            Result <BotCommandDescriptor> commandTask = _commands.GetCommand(args.CommandName);

            if (commandTask.IsFailed)
            {
                return(commandTask.ToResult <CommandArgumentContainer>());
            }

            IBotCommand command = commandTask.Value.ResolveCommand(_serviceProvider);

            Result canExecute = command.CanExecute(args);

            return(canExecute.IsSuccess
                ? Result.Ok(args)
                : Result.Fail <CommandArgumentContainer>($"Command [{commandTask.Value.CommandName}] cannot be executed: {canExecute}"));
        }