Exemplo n.º 1
0
        public void ParseLine(Queue <string> line)
        {
            while (line.Count > emptyNumberOfLines)
            {
                if (line.Count < maxArgsNumber)
                {
                    _printer.PrintError(Properties.Resources.NotEnoughArguments);
                    break;
                }

                string command = line.Dequeue();
                if (!Mapper.actions.ContainsKey(command))
                {
                    _printer.PrintError(Properties.Resources.UnknownParameter);
                    continue;
                }

                string   arg1 = line.Dequeue();
                string   arg2 = line.Dequeue();
                string[] args = new string[] { arg1, arg2 };

                var    operation = Mapper.GetOperation(command);
                string result    = operation.Execute(arg1, arg2);
                string message   = operation.GetOutputMessage(command, args, result ?? Properties.Resources.Unkown);
                _printer.PrintStatement(message);
            }
        }
Exemplo n.º 2
0
        internal static void Main()
        {
            var container = UnityConfig.Register();

            _printer = container.Resolve <ICmdPrinter>();

            char[] space          = Properties.Resources.SPACE.ToCharArray();
            var    arrowWithSpace = Properties.Resources.ArrowWithSpace;

            CommandLineParser cmdParser = new CommandLineParser(_printer);

            _printer.PrintStatement(Properties.Resources.PROMPT);
            _printer.PrintStatementWithoutNewLine(arrowWithSpace);

            string line;

            while ((line = Console.ReadLine()) != null)
            {
                string[] cmdline = line.Split(space[0], (char)StringSplitOptions.None);
                cmdParser.ParseLine(new Queue <string>(cmdline));
                _printer.PrintStatementWithoutNewLine(arrowWithSpace);
            }
        }