Пример #1
0
        public bool SavePolyhedron(string name)
        {
            try
            {
                if (_figure is Polygon)
                {
                    throw new InvalidOperationException("Can`t save polygon to polyhedrons table");
                }

                Polyhedron polyhedron = (Polyhedron)_figure;
                FigureData figureData = new FigureData();

                figureData.PolyhedronType = polyhedron.Type;
                figureData.PolygonType    = polyhedron.GetBaseFigure().Type;
                figureData.Coords         = polyhedron.GetBaseFigure().GetCoords();
                figureData.Height         = polyhedron.GetHeight();

                _database.SavePolyhedron(figureData, name);

                return(true);
            }
            catch (Exception e)
            {
                Console.Clear();

                ConsoleView.ColorizeError(e.Message);

                Console.WriteLine();

                return(false);
            }
        }
Пример #2
0
        private List <Coords> ReadCoords(int amount)
        {
            List <Coords> coords = new List <Coords>();

            try
            {
                for (int i = amount; i > 0; i--)
                {
                    Console.WriteLine("Coords left : {0}", i);

                    Console.WriteLine("Enter coords: ");
                    Console.Write("X = ");
                    int x = Int32.Parse(Console.ReadLine());

                    Console.Write("Y = ");
                    int y = Int32.Parse(Console.ReadLine());
                    Console.WriteLine();

                    coords.Add(new Coords(x, y));

                    Console.Clear();
                }
            }
            catch (Exception e)
            {
                Console.Clear();
                ConsoleView.ColorizeError("Input coords were not in a correct format");
                Console.WriteLine();

                return(null);
            }

            return(coords);
        }
Пример #3
0
        private Figure PolyhedronChoosingMenu()
        {
            Console.WriteLine("Polyhedron choosing menu:\n" +
                              "Create from current polygon - 1\n" +
                              "Create from saved polygon - 2\n" +
                              "Back - b");

            Console.Write("Input: ");
            string input = Console.ReadLine();

            Console.WriteLine();

            Figure figure = null;

            switch (input.ToLower())
            {
            case "1":
                if (_interactor.GetFigure() is Polygon)
                {
                    figure = _interactor.GetFigure();
                    Console.Clear();

                    return(figure);
                }

                Console.Clear();
                ConsoleView.ColorizeError("There is no current polygon");
                Console.WriteLine();

                break;

            case "2":
                Console.Write("Enter the polygon name: ");
                string name = Console.ReadLine();
                Console.WriteLine();

                Console.Clear();
                figure = _interactor.LoadPolygon(name);

                if (figure != null)
                {
                    return(figure);
                }

                break;

            case "b":
                Console.Clear();

                return(null);
            }

            return(PolyhedronChoosingMenu());
        }
Пример #4
0
        public int GetPolyhedronsCount()
        {
            try
            {
                return(_database.PolyhedronsCount());
            }
            catch (Exception e)
            {
                Console.Clear();

                ConsoleView.ColorizeError(e.Message);

                Console.WriteLine();
            }

            return(0);
        }
Пример #5
0
        public Polygon CreatePolygon(string type, List <Coords> coords)
        {
            try
            {
                Polygon polygon = PolygonFactory.FactoryMethod(type, coords);
                return(polygon);
            }
            catch (Exception e)
            {
                Console.Clear();

                ConsoleView.ColorizeError(e.Message);

                Console.WriteLine();
                return(null);
            }
        }
Пример #6
0
        public Polygon LoadPolygon(string name)
        {
            try
            {
                FigureData figureData = _database.LoadPolygon(name);
                return(CreatePolygon(figureData.PolygonType, figureData.Coords));
            }
            catch (Exception e)
            {
                Console.Clear();

                ConsoleView.ColorizeError(e.Message);

                Console.WriteLine();

                return(null);
            }
        }
Пример #7
0
        public Polyhedron CreatePolyhedron(string type, Polygon polygon, double height = 0)
        {
            try
            {
                Polyhedron polyhedron = PolyhedronFactory.FactoryMethod(type, polygon, height);

                return(polyhedron);
            }
            catch (Exception e)
            {
                Console.Clear();

                ConsoleView.ColorizeError(e.Message);

                Console.WriteLine();

                return(null);
            }
        }
Пример #8
0
        public Polyhedron LoadPolyhedron(string name)
        {
            try
            {
                FigureData figureData = _database.LoadPolyhedron(name);

                Polygon polygon = PolygonFactory.FactoryMethod(figureData.PolygonType, figureData.Coords);
                return(CreatePolyhedron(figureData.PolyhedronType, polygon, figureData.Height));
            }
            catch (Exception e)
            {
                Console.Clear();

                ConsoleView.ColorizeError(e.Message);

                Console.WriteLine();

                return(null);
            }
        }
Пример #9
0
        private void PolyhedronParamsMenu()
        {
            Console.WriteLine("Polyhedron parameters menu:\n" +
                              "Base area - 1\n" +
                              "Volume - 2\n" +
                              "Apexes amount - 3\n" +
                              "Edges amount - 4\n" +
                              "Brinks amount - 5\n" +
                              "Save polyhedron - 6\n" +
                              "Back - b");

            Console.Write("Input: ");
            string input = Console.ReadLine();

            Console.WriteLine();

            try
            {
                switch (input)
                {
                case "1":
                    Console.Clear();
                    ConsoleView.ColorizeSuccess($"Base area : {_interactor.GetBaseArea()}");
                    Console.WriteLine();

                    break;

                case "2":
                    Console.Clear();
                    ConsoleView.ColorizeSuccess($"Volume : {_interactor.GetVolume()}");
                    Console.WriteLine();

                    break;

                case "3":
                    Console.Clear();
                    ConsoleView.ColorizeSuccess($"Apexes : {_interactor.GetApexes()}");
                    Console.WriteLine();

                    break;

                case "4":
                    Console.Clear();
                    ConsoleView.ColorizeSuccess($"Edges : {_interactor.GetEdges()}");
                    Console.WriteLine();

                    break;

                case "5":
                    Console.Clear();
                    ConsoleView.ColorizeSuccess($"Brinks : {_interactor.GetBrinks()}");
                    Console.WriteLine();
                    break;

                case "6":
                    Console.WriteLine("Enter the figure name : ");
                    string name = Console.ReadLine();
                    Console.Clear();

                    if (_interactor.SavePolyhedron(name))
                    {
                        ConsoleView.ColorizeInfo("Polyhedron was successfully saved");
                        Console.WriteLine();
                    }

                    break;

                case "b":
                    Console.Clear();
                    return;
                }
            }
            catch (Exception e)
            {
                Console.Clear();
                ConsoleView.ColorizeError(e.Message);
                Console.WriteLine();
            }

            PolyhedronParamsMenu();
        }
Пример #10
0
        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();
            }
        }