コード例 #1
0
        public void Process()
        {
            while (true)
            {
                try
                {
                    ResetInputLine(_startCol, _startRow);
                    Console.Write("enter command:");
                    var input = Console.ReadLine();

                    if (input == null)
                    {
                        continue;
                    }
                    if (input.ToUpper().Equals("Q"))
                    {
                        break;
                    }

                    string[] splitString = input.Split(' ', StringSplitOptions.None);
                    var      shape       = _shapeObjectFactory.GetShapeObject(splitString[0]);

                    shape.Initialize(splitString);
                    shape.Draw();
                    _consoleBuffer.WriteToScreen();
                }
                catch (ArgumentException ex)
                {
                    ResetInputLine(0, 25);
                    Console.WriteLine(ex.Message);
                }
                catch (InvalidCoordinatesException icex)
                {
                    ResetInputLine(0, 25);
                    Console.WriteLine(icex.Message);
                }
                catch (InvalidShapeCreationException scex)
                {
                    ResetInputLine(0, 25);
                    Console.WriteLine(scex.Message);
                }
            }
        }