Пример #1
0
        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());
        }
Пример #2
0
        public static int CountOptions(string optionName, Entity.Command command)
        {
            var regex   = new Regex(@"( -" + optionName + @" )+|( -" + optionName + @")$");
            var matches = regex.Matches(command.Input);

            return(matches.Count);
        }
Пример #3
0
 public void RunCommand(Entity.Command command)
 {
     try
     {
         RunHandlerByCommand(command);
     }
     catch (Exception exception)
     {
         _output.WriteLineForUser($"Error: {exception.Message}\r\n");
     }
 }
Пример #4
0
        private void RunHandlerByCommand(Entity.Command command)
        {
            var commandHandler = _handlerFactory.GetCommandHandler(command.GetSubCommandName());

            commandHandler.Configure();

            if (IsHelpRequestedByUser(command))
            {
                PrintHelp(commandHandler);
                return;
            }

            commandHandler.Handle(command, _output);
        }
Пример #5
0
        private static bool IsHelpRequestedByUser(Entity.Command command)
        {
            var parameters = command.SplitInputBySpace();

            return(parameters.Length == 3 && parameters[2] == "help");
        }