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}")); }
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}")); }