private void BuildCurrentStateSystem(int i)
        {
            CanvasGraph.Children.Clear();

            var ListConstantCoordinatesCountConnectClients = ConvertListForCanvas(ComboBoxSelectionChanged(item_param1, List_CountConnectClients[i], data_grid1), true);
            var ListConstantCoordinatesCountSameAdrress    = ConvertListForCanvas(ComboBoxSelectionChanged(item_param2, List_CountSameAddress[i], data_grid2), false);
            var shapes          = new Main_figures(CanvasGraph);
            var coordinate_axes = new Coordinate_axes(CanvasGraph);

            coordinate_axes.Main_coordinate_axes();

            Graph_Build(ListConstantCoordinatesCountConnectClients, true);
            Graph_Build(ListConstantCoordinatesCountSameAdrress, false);

            var Сrossing = new Сrossing();
            var list_pointCountConnectClients = Сrossing.IntersectionPoint(ListConstantCoordinatesCountConnectClients, IntervalForCountConnectClients, true);
            var list_pointCountSameAdrress    = Сrossing.IntersectionPoint(ListConstantCoordinatesCountSameAdrress, IntervalForCountSameAdrress, false);

            var ListNameConnectClients = ListConstantCoordinatesCountConnectClients.Select(s => s.Name).ToList();
            var ListNameSameAdrress    = ListConstantCoordinatesCountSameAdrress.Select(s => s.Name).ToList();

            var DrawAreaStateSystem = new DrawAreaConstantStateSystem(CanvasGraph, ListNameConnectClients, ListNameSameAdrress, list_pointCountConnectClients, list_pointCountSameAdrress);

            DrawAreaStateSystem.Rect_Area();

            var DrawAreaCurrentStateSystem = new DrawAreaCurrentStateSystem(CanvasGraph, ListNameConnectClients, ListNameSameAdrress, list_pointCountConnectClients, list_pointCountSameAdrress);

            DrawAreaCurrentStateSystem.DrawLineArea();
            danger_level.Text = DrawAreaCurrentStateSystem.DrawCurrentStateSystem();
        }
        public DrawAreaCurrentStateSystem(Canvas CanvasGraph, List <string> ListNameConnectClients, List <string> ListNameSameAdrress, List <NetworkParameter> list_point1, List <NetworkParameter> list_point2)
        {
            this.CanvasGraph            = CanvasGraph;
            this.ListNameConnectClients = ListNameConnectClients;
            this.ListNameSameAdrress    = ListNameSameAdrress;
            this.list_point1            = list_point1;
            this.list_point2            = list_point2;

            shapes = new Main_figures(CanvasGraph);
            GetIntersectionPoints();
        }
        public DrawAreaConstantStateSystem(Canvas CanvasGraph, List <string> ListNameConnectClients, List <string> ListNameSameAdrress, List <NetworkParameter> list_point_ConnectClients, List <NetworkParameter> list_point_SameAdrress)
        {
            this.CanvasGraph            = CanvasGraph;
            this.ListNameConnectClients = ListNameConnectClients;
            this.ListNameSameAdrress    = ListNameSameAdrress;
            PointsConstantCoordinatesCC = DrawAreaCurrentStateSystem.GetListIntersectionPoints(list_point_ConnectClients, "ConstantState");
            PointsConstantCoordinatesSA = DrawAreaCurrentStateSystem.GetListIntersectionPoints(list_point_SameAdrress, "ConstantState");

            height = 0.55 * CanvasGraph.Height;
            width  = 0.5 * CanvasGraph.Width;
            shapes = new Main_figures(CanvasGraph);
        }
        private void Graph_Build(List <NetworkParameter> list, bool flag)
        {
            var           x_graph_map = 0.0;
            var           y_graph_map = 0.0;
            var           interval    = 0.0;
            List <double> arr_leg;
            var           shapes = new Main_figures(CanvasGraph);

            if (flag)
            {
                x_graph_map = 0.7 * CanvasGraph.Width / 2;
                y_graph_map = 20;
            }
            else
            {
                x_graph_map = 10;
                y_graph_map = 1.1 * CanvasGraph.Height / 2;
            }

            foreach (var item in list)
            {
                Color color;

                interval = interval + 20;

                //Вибір кольорів для графіків
                switch (item.Name)
                {
                case "ОМ":  color = Colors.Blue;    break;

                case "М":   color = Colors.Green;   break;

                case "С":   color = Colors.Yellow;  break;

                case "Б":   color = Colors.Orange;  break;

                case "ОБ":  color = Colors.Red;     break;

                default:    color = Colors.Navy;    break;
                }
                arr_leg = new List <double>()
                {
                    x_graph_map, y_graph_map + interval, x_graph_map + koef * 60, y_graph_map + interval
                };
                //Відмальвуємо графік
                shapes.Draw_polyline(item.Array_coordinates, 2, color, false);

                //Підписуємо легенду графіка
                shapes.Text(x_graph_map + koef * 60 + 10, y_graph_map + interval - 10, item.Name, Convert.ToInt32(0.25 * (koef * CanvasGraph.Height) / 10.5));
                //Легенда графіка
                shapes.Draw_polyline(arr_leg, 3, color, false);
            }
        }