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); } } }