public static List <string> ParseOption(string optionName, Entity.Command command) { var regex = new Regex(@"(-" + optionName + @" [a-zA-Z0-9?_\: ]+)"); var matches = regex.Matches(command.Input); return((from Match match in matches select match.Value.Substring(optionName.Length + 1).Trim()).ToList()); }
public static int CountOptions(string optionName, Entity.Command command) { var regex = new Regex(@"( -" + optionName + @" )+|( -" + optionName + @")$"); var matches = regex.Matches(command.Input); return(matches.Count); }
public void RunCommand(Entity.Command command) { try { RunHandlerByCommand(command); } catch (Exception exception) { _output.WriteLineForUser($"Error: {exception.Message}\r\n"); } }
private void RunHandlerByCommand(Entity.Command command) { var commandHandler = _handlerFactory.GetCommandHandler(command.GetSubCommandName()); commandHandler.Configure(); if (IsHelpRequestedByUser(command)) { PrintHelp(commandHandler); return; } commandHandler.Handle(command, _output); }
private static bool IsHelpRequestedByUser(Entity.Command command) { var parameters = command.SplitInputBySpace(); return(parameters.Length == 3 && parameters[2] == "help"); }