private void PolygonCreationMenu() { Console.WriteLine("Polygon creation menu:\n" + "Choose a polygon to create\n" + "Square - 1\n" + "Rectangle - 2\n" + "Parallelogram - 3\n" + "Triangle - 4\n" + // #TODO Fix triangle exception "Trapeze - 5\n" + "Custom - 6\n" + "Back - b\n"); Console.Write("Input: "); string input = Console.ReadLine(); Console.WriteLine(); Figure figure = null; List <Coords> coords = null; Console.Clear(); try { switch (input) { case "1": coords = ReadCoords(4); if (coords != null) { figure = _interactor.CreatePolygon("square", coords); } break; case "2": coords = ReadCoords(4); if (coords != null) { figure = _interactor.CreatePolygon("rectangle", coords); } break; case "3": coords = ReadCoords(4); if (coords != null) { figure = _interactor.CreatePolygon("parallelogram", coords); } break; case "4": coords = ReadCoords(3); if (coords != null) { figure = _interactor.CreatePolygon("triangle", coords); } break; case "5": coords = ReadCoords(4); if (coords != null) { figure = _interactor.CreatePolygon("trapeze", coords); } break; case "6": Console.Write("Enter the amount of apexes: "); int amount = Int32.Parse(Console.ReadLine()); Console.WriteLine(); coords = ReadCoords(amount); if (coords != null) { figure = _interactor.CreatePolygon("custom", coords); } break; case "b": Console.Clear(); return; } } catch (Exception e) { Console.Clear(); ConsoleView.ColorizeError(e.Message); Console.WriteLine(); } if (figure != null) { Console.Clear(); _interactor.SetFigure(figure); PolygonParamsMenu(); } else { PolygonCreationMenu(); } }