public Command Select(string commandName, List<Command> availableCommands) { var command = new MatchSelector<Command>().Match(commandName, availableCommands, c => c.Name); if (command != null) return command; var exception = new CommandNotFoundException(commandName); exception.AvailableCommands.AddRange(availableCommands); var possibleCommands = new MatchSelector<Command>().PartialMatch(commandName, availableCommands, c => c.Name); exception.PossibleCommands.AddRange(possibleCommands); throw exception; }
public CommandAction Select(string actionName, Command command, IEnumerable<CommandAction> availableActions) { CommandAction action = new MatchSelector<CommandAction>().Match(actionName, availableActions, c => c.Name); if (action != null) return action; var exception = new CommandActionNotFoundException(actionName, command); exception.AvailableActions.AddRange(availableActions); var possibleActions = new MatchSelector<CommandAction>().PartialMatch(actionName, availableActions, c => c.Name); exception.PossibleActions.AddRange(possibleActions); throw exception; }