Ejemplo n.º 1
0
        private void deleteAll_Click(object sender, RoutedEventArgs e)
        {
            CanvasAreaForSchemeOfRoom.Children.Clear();
            try
            {
                SchemeOfBuilding    scheme = _Context.Schemes.Where(c => c.ProjectNumber.ProjectId.Equals(_projectId)).First();
                List <ControlPoint> points = new List <ControlPoint>(scheme.Point);

                if (points.Count > 0)
                {
                    foreach (ControlPoint point in points)
                    {
                        _Context.Points.Remove(point);
                    }
                }

                List <Room> rooms = new List <Room>(scheme.Rooms);
                if (rooms.Count > 0)
                {
                    foreach (Room room in rooms)
                    {
                        _Context.Rooms.Remove(room);
                    }
                }

                List <InstallationPosition> positions = new List <InstallationPosition>(scheme.Positions);
                if (positions.Count > 0)
                {
                    foreach (InstallationPosition position in positions)
                    {
                        _Context.InstallationPositions.Remove(position);
                    }
                }

                SingleSpaceParams.getInstance().Rooms.Clear();
                SingleSpaceParams.getInstance().ControlPoints.Clear();
                _Context.SaveChanges();
            }
            catch
            {
                MessageBox.Show("Ошибка! Данные не были изменены.");
            }
        }
Ejemplo n.º 2
0
        private void OpenExistProjectButton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                Project          project = _ProjectsFromDB.ElementAt(_SelectedItemInCombobox);
                SchemeOfBuilding scheme  = project.Scheme.First();
                if (SingleSpaceParams.getInstance() == null)
                {
                    SingleSpaceParams.getInstance(Convert.ToInt32(scheme.Width), Convert.ToInt32(scheme.Height));
                }
                else
                {
                    SingleSpaceParams.KillSingle();
                    SingleSpaceParams.getInstance(Convert.ToInt32(scheme.Width), Convert.ToInt32(scheme.Height));
                }

                MainWindowPage mainWindow = new MainWindowPage(_Context, project.ProjectId);
                mainWindow.Show();
            }
            catch
            {
                MessageBox.Show("Ошибка! Информация не была получена из базы данных!");
            }
        }
Ejemplo n.º 3
0
        private void SaveDataButton_Click(object sender, RoutedEventArgs e)
        {
            if (!String.IsNullOrEmpty(ProjectNameTextBox.Text))
            {
                _ProjectName = ProjectNameTextBox.Text;
            }

            if (!String.IsNullOrEmpty(WidthOfAreaTextBox.Text))
            {
                _WidthOfArea = Convert.ToInt32(WidthOfAreaTextBox.Text);
            }

            if (!String.IsNullOrEmpty(HeightOfAreaTextBox.Text))
            {
                _HeightOfArea = Convert.ToInt32(HeightOfAreaTextBox.Text);
            }

            if (!String.IsNullOrEmpty(ProjectNumberTextBox.Text))
            {
                _ProjectNumber = Convert.ToInt32(ProjectNumberTextBox.Text);
            }

            if (!String.IsNullOrEmpty(_ProjectName) && _WidthOfArea != 0 && _HeightOfArea != 0 && _ProjectNumber != 0)
            {
                List <Customer> customers = _Context.Customers.ToList();
                Customer        customer  = customers.ElementAt(_SelectedItemInCombobox);

                Project project = new Project();
                project.Customer      = customer;
                project.ProgectName   = _ProjectName;
                project.ProjectNumber = _ProjectNumber;

                SchemeOfBuilding scheme = new SchemeOfBuilding();
                scheme.Width         = _WidthOfArea;
                scheme.Height        = _HeightOfArea;
                scheme.ProjectNumber = project;
                scheme.Point         = new List <ControlPoint>();
                scheme.Rooms         = new List <Room>();

                try
                {
                    _Context.Schemes.Add(scheme);
                    _Context.SaveChanges();

                    if (SingleSpaceParams.getInstance() == null)
                    {
                        SingleSpaceParams.getInstance(_WidthOfArea, _HeightOfArea);
                    }
                    else
                    {
                        SingleSpaceParams.getInstance().Width  = _WidthOfArea;
                        SingleSpaceParams.getInstance().Height = _HeightOfArea;
                    }
                    nav = NavigationService.GetNavigationService(this);

                    MainWindowPage mainWindow = new MainWindowPage(_Context, project.ProjectId);
                    mainWindow.Show();
                }
                catch
                {
                    MessageBox.Show("Ошибка! Информация не была сохранена в базу данных!");
                }
            }
        }
Ejemplo n.º 4
0
        private void saveMenuItem_Click(object sender, RoutedEventArgs e)
        {
            SchemeOfBuilding       scheme = _Context.Schemes.Where(c => c.ProjectNumber.ProjectId.Equals(_projectId)).First();
            List <ModelsOfModules> models = _Context.Models.ToList();

            try
            {
                if (SingleSpaceParams.getInstance().ControlPoints.Count > 0)
                {
                    foreach (ControlPointInst cp in SingleSpaceParams.getInstance().ControlPoints)
                    {
                        ControlPoint point = new ControlPoint();
                        point.Coord_X = cp.X1;
                        point.Coord_Y = cp.Y1;

                        bool isExist = false;

                        foreach (ControlPoint c in scheme.Point)
                        {
                            if (c.Coord_X == point.Coord_X && c.Coord_Y == point.Coord_Y)
                            {
                                isExist = true;
                            }
                        }

                        if (!isExist)
                        {
                            scheme.Point.Add(point);
                        }
                    }
                }

                if (SingleSpaceParams.getInstance().Rooms.Count > 0)
                {
                    foreach (RectangleRoom rm in SingleSpaceParams.getInstance().Rooms)
                    {
                        Room room = new Room();
                        room.Coord_X1 = rm.X1;
                        room.Coord_Y1 = rm.Y1;

                        room.Coord_X2 = rm.X2;
                        room.Coord_Y2 = rm.Y2;

                        room.Coord_X3 = rm.X3;
                        room.Coord_Y3 = rm.Y3;

                        room.Coord_X4 = rm.X4;
                        room.Coord_Y4 = rm.Y4;

                        bool isExist = false;

                        foreach (Room r in scheme.Rooms)
                        {
                            if (r.Coord_X1 == room.Coord_X1 &&
                                r.Coord_Y1 == room.Coord_Y1 &&
                                r.Coord_X4 == room.Coord_X4 &&
                                r.Coord_Y4 == room.Coord_Y4)
                            {
                                isExist = true;
                            }
                        }

                        if (!isExist)
                        {
                            scheme.Rooms.Add(room);
                        }
                    }
                }

                if (_Chromosome != null)
                {
                    foreach (Gene gene in _Chromosome.Container)
                    {
                        PlacmentOfModules pm = new PlacmentOfModules();

                        pm.ModelId = (from m in models where m.ModelRadius.Equals(gene.Radius.ToString()) select m).First().ModuleId;

                        InstallationPosition position = new InstallationPosition();
                        position.Coord_X  = gene.OX;
                        position.Coord_Y  = gene.OY;
                        position.Placment = new List <PlacmentOfModules>();
                        position.Placment.Add(pm);

                        scheme.Positions.Add(position);
                    }
                }
                _Context.SaveChanges();
            }
            catch
            {
                MessageBox.Show("Ошибка! Данные не были сохранены в базу данных.");
            }
            MessageBox.Show("Результат сохранен.");
        }
Ejemplo n.º 5
0
        private void InitializeAllObjects()
        {
            SchemeOfBuilding scheme = null;

            try
            {
                scheme = _Context.Schemes.Where(c => c.ProjectNumber.ProjectId.Equals(_projectId)).First();
            }
            catch
            {
                MessageBox.Show("Ошибка загрузки данных из базы данных");
            }
            List <Room> rooms = null;

            if (scheme.Rooms != null)
            {
                if (scheme.Rooms.Count() > 0)
                {
                    rooms = scheme.Rooms;

                    foreach (Room room in rooms)
                    {
                        int coord_X1 = room.Coord_X1;
                        int coord_Y1 = room.Coord_Y1;

                        int coord_X2 = room.Coord_X2;
                        int coord_Y2 = room.Coord_Y2;

                        int coord_X3 = room.Coord_X3;
                        int coord_Y3 = room.Coord_Y3;

                        int coord_X4 = room.Coord_X4;
                        int coord_Y4 = room.Coord_Y4;

                        Line lin = new Line
                        {
                            Stroke          = color,
                            StrokeThickness = SIZE,
                            X1 = coord_X1,
                            Y1 = coord_Y1,
                            X2 = coord_X2,
                            Y2 = coord_Y2,
                            StrokeStartLineCap = PenLineCap.Round,
                            StrokeEndLineCap   = PenLineCap.Round
                        };

                        Line lin2 = new Line
                        {
                            Stroke          = color,
                            StrokeThickness = SIZE,
                            X1 = coord_X1,
                            Y1 = coord_Y1,
                            X2 = coord_X3,
                            Y2 = coord_Y3,
                            StrokeStartLineCap = PenLineCap.Round,
                            StrokeEndLineCap   = PenLineCap.Round
                        };

                        Line lin3 = new Line
                        {
                            Stroke          = color,
                            StrokeThickness = SIZE,
                            X1 = coord_X3,
                            Y1 = coord_Y3,
                            X2 = coord_X4,
                            Y2 = coord_Y4,
                            StrokeStartLineCap = PenLineCap.Round,
                            StrokeEndLineCap   = PenLineCap.Round
                        };

                        Line lin4 = new Line
                        {
                            Stroke          = color,
                            StrokeThickness = SIZE,
                            X1 = coord_X2,
                            Y1 = coord_Y2,
                            X2 = coord_X4,
                            Y2 = coord_Y4,
                            StrokeStartLineCap = PenLineCap.Round,
                            StrokeEndLineCap   = PenLineCap.Round
                        };

                        CanvasAreaForSchemeOfRoom.Children.Add(lin);
                        CanvasAreaForSchemeOfRoom.Children.Add(lin2);
                        CanvasAreaForSchemeOfRoom.Children.Add(lin3);
                        CanvasAreaForSchemeOfRoom.Children.Add(lin4);

                        RectangleRoom rectRoom = new RectangleRoom();
                        rectRoom.X1 = room.Coord_X1;
                        rectRoom.Y1 = room.Coord_Y1;
                        rectRoom.X2 = room.Coord_X2;
                        rectRoom.Y2 = room.Coord_Y2;
                        rectRoom.X3 = room.Coord_X3;
                        rectRoom.Y3 = room.Coord_Y3;
                        rectRoom.X4 = room.Coord_X4;
                        rectRoom.Y4 = room.Coord_Y4;
                        SingleSpaceParams.getInstance().Rooms.Add(rectRoom);
                    }
                }
            }

            if (scheme.Point != null)
            {
                List <ControlPoint> points = null;
                if (scheme.Point.Count > 0)
                {
                    points = scheme.Point;

                    foreach (ControlPoint point in points)
                    {
                        pointLine = new Line
                        {
                            Stroke = new SolidColorBrush
                            {
                                Color = Colors.Red,
                            },
                            StrokeThickness = 10,
                            X1 = point.Coord_X,
                            Y1 = point.Coord_Y,
                            X2 = point.Coord_X + 1,
                            Y2 = point.Coord_Y + 1,
                            StrokeStartLineCap = PenLineCap.Round,
                            StrokeEndLineCap   = PenLineCap.Round,
                        };
                        CanvasAreaForSchemeOfRoom.Children.Add(pointLine);

                        ControlPointInst controlPoint = new ControlPointInst(
                            Convert.ToInt32(point.Coord_X),
                            Convert.ToInt32(point.Coord_Y));

                        SingleSpaceParams.getInstance().ControlPoints.Add(controlPoint);
                    }
                }
            }

            if (scheme.Positions != null)
            {
                try
                {
                    List <InstallationPosition> positions = scheme.Positions;

                    foreach (InstallationPosition pos in positions)
                    {
                        PlacmentOfModules placement = pos.Placment.First();
                        ModelsOfModules   model     = _Context.Models.Where(mod => mod.ModuleId == placement.ModelId).First();

                        EllipseGeometry el = new EllipseGeometry
                        {
                            Center  = new Point(pos.Coord_X, pos.Coord_Y),
                            RadiusX = double.Parse(model.ModelRadius),
                            RadiusY = double.Parse(model.ModelRadius)
                        };
                        Path path = new Path();
                        path.Data            = el;
                        path.StrokeThickness = 2;
                        path.Opacity         = 0.5;
                        path.Fill            = new SolidColorBrush
                        {
                            Color   = Colors.LightBlue,
                            Opacity = 0.7
                        };
                        path.Stroke = new SolidColorBrush
                        {
                            Color = Colors.Red
                        };
                        CanvasAreaForSchemeOfRoom.Children.Add(path);
                    }
                }
                catch
                {
                    MessageBox.Show("Ошибка загрузки данных из базы данных");
                }
            }
            _Models = _Context.Models.ToList();
        }
Ejemplo n.º 6
0
        private void StartAcommButton_Click(object sender, RoutedEventArgs e)
        {
            if (SingleSpaceParams.getInstance().ModulesRadius.Count > 0)
            {
                try
                {
                    SchemeOfBuilding scheme = _Context.Schemes.Where(c => c.ProjectNumber.ProjectId.Equals(_projectId)).First();

                    foreach (ControlPointInst cp in SingleSpaceParams.getInstance().ControlPoints)
                    {
                        ControlPoint point = new ControlPoint();
                        point.Coord_X = cp.X1;
                        point.Coord_Y = cp.Y1;

                        bool isExist = false;

                        foreach (ControlPoint c in scheme.Point)
                        {
                            if (c.Coord_X == point.Coord_X && c.Coord_Y == point.Coord_Y)
                            {
                                isExist = true;
                            }
                        }

                        if (!isExist)
                        {
                            scheme.Point.Add(point);
                        }
                    }

                    foreach (RectangleRoom rm in SingleSpaceParams.getInstance().Rooms)
                    {
                        Room room = new Room();
                        room.Coord_X1 = rm.X1;
                        room.Coord_Y1 = rm.Y1;

                        room.Coord_X2 = rm.X2;
                        room.Coord_Y2 = rm.Y2;

                        room.Coord_X3 = rm.X3;
                        room.Coord_Y3 = rm.Y3;

                        room.Coord_X4 = rm.X4;
                        room.Coord_Y4 = rm.Y4;

                        bool isExist = false;

                        foreach (Room r in scheme.Rooms)
                        {
                            if (r.Coord_X1 == room.Coord_X1 &&
                                r.Coord_Y1 == room.Coord_Y1 &&
                                r.Coord_X4 == room.Coord_X4 &&
                                r.Coord_Y4 == room.Coord_Y4)
                            {
                                isExist = true;
                            }
                        }

                        if (!isExist)
                        {
                            scheme.Rooms.Add(room);
                        }
                    }
                    _Context.SaveChanges();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Ошибка обновления базы данных!");
                }

                geneticAlgProgressBar.Visibility  = Visibility.Visible;
                progressTextStateLabel.Visibility = Visibility.Visible;


                StartAcommButton.IsEnabled = false;

                ExecuteService service = new ExecuteService(SingleSpaceParams.getInstance().ModulesRadius, _BackgroundWorker);
                _BackgroundWorker.RunWorkerAsync(service);
            }
        }