DispatchCommand() public static method

public static DispatchCommand ( ManyConsole.ConsoleCommand command, string arguments, TextWriter consoleOut ) : int
command ManyConsole.ConsoleCommand
arguments string
consoleOut System.IO.TextWriter
return int
Beispiel #1
0
        public override int Run(string[] remainingArguments)
        {
            string[] args;

            bool isInputRedirected = _redirectionDetector.IsInputRedirected();

            if (!isInputRedirected)
            {
                WritePromptForCommands();
            }

            bool   haveError = false;
            string input     = _inputStream.ReadLine();

            while (!input.Trim().Equals("x"))
            {
                if (input.Trim().Equals("?"))
                {
                    ConsoleHelp.ShowSummaryOfCommands(GetNextCommands(), _outputStream);
                }
                else
                {
                    args = CommandLineParser.Parse(input);

                    var result = ConsoleCommandDispatcher.DispatchCommand(GetNextCommands(), args, _outputStream, true);
                    if (result != 0)
                    {
                        haveError = true;

                        if (isInputRedirected)
                        {
                            return(result);
                        }
                    }
                }

                if (!isInputRedirected)
                {
                    _outputStream.WriteLine();

                    if (!isInputRedirected)
                    {
                        WritePromptForCommands();
                    }
                }

                input = _inputStream.ReadLine();
            }

            return(haveError ? -1 : 0);
        }
        public override int Run(string[] remainingArguments)
        {
            string[] args;

            bool isInputRedirected = _redirectionDetector.IsInputRedirected();

            if (!isInputRedirected)
            {
                _outputStream.WriteLine(continuePrompt);
            }

            bool   haveError = false;
            string input     = _inputStream.ReadLine();

            while (!input.Trim().Equals("x"))
            {
                if (input.Trim().Equals("?"))
                {
                    ConsoleCommandDispatcher.DispatchCommand(_commandSource(), new string[] { }, _outputStream);
                }
                else
                {
                    args = input.ToCommandLineArgs();
                    var result = ConsoleCommandDispatcher.DispatchCommand(_commandSource(), args, _outputStream);
                    if (result != 0)
                    {
                        haveError = true;

                        if (isInputRedirected)
                        {
                            return(result);
                        }
                    }
                }

                if (!isInputRedirected)
                {
                    _outputStream.WriteLine();
                    _outputStream.WriteLine(continuePrompt);
                }

                input = _inputStream.ReadLine();
            }

            return(haveError ? -1 : 0);
        }