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