Esempio n. 1
0
 private int GetCountry(Region region)
 {
     while (region.RegionLevel > 2)
     {
         region = RegionHelper.Get(region.IDParent.Value);
     }
     return(region.IDRegion);
 }
Esempio n. 2
0
 private void tvRegions_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
 {
     tvRegions.SelectedNode = e.Node;
     if (e.Button == MouseButtons.Left)
     {
         int idRegion = Convert.ToInt32(e.Node.Name);
         _regionData = RegionHelper.Get(idRegion);
         ShowShapeChilds(_regionData);
     }
     else
     {
         _selectedNode = e.Node;
         tvRegions.ContextMenuStrip = cmEditRegions;
         cmEditRegions.Show(tvRegions, e.X, e.Y);
     }
 }
        private void EditRiskAndAction_Load(object sender, EventArgs e)
        {
            //TREEVIEW
            Model model = ERMTSession.Instance.CurrentModel;

            if (model != null)
            {
                tvRegions.Nodes.Clear();
                Region        current = RegionHelper.Get(model.IDRegion);
                List <Region> regions = new List <Region>();
                regions.Add(RegionHelper.Get(1));
                if (current.IDParent.HasValue && current.IDParent != 1)
                {
                    regions.Add(RegionHelper.Get(current.IDParent.Value));
                }
                regions.Add(current);
                regions.AddRange(RegionHelper.GetAllChilds(current.IDRegion));

                TreeNode node = new TreeNode()
                {
                    Text = current.RegionName, Name = current.IDRegion.ToString(), Tag = current
                };
                int mainRegionLevel = RegionHelper.GetLevel(current.IDRegion);

                tvRegions.Nodes.Add(node);
                AddChildRegions(tvRegions.Nodes[0], regions, mainRegionLevel);
                tvRegions.SelectedNode = tvRegions.Nodes[0];
                tvRegions.ExpandAll();
            }

            //Electoral Phase
            cbElectoralPhases.Items.Add(new ComboBoxItemFace(null));
            cbElectoralPhases.Items.AddRange(PhaseHelper.GetAll().Select(p => new ComboBoxItemFace(p)).ToArray());
            cbElectoralPhases.SelectedIndex = 0;

            // Add data from alert:
            if (_alert.IDModel != 0)
            {
                tbCode.Text              = _alert.Code;
                tbTitle.Text             = _alert.Title;
                dtpDateFrom.Value        = _alert.DateFrom;
                dtpDateTo.Value          = _alert.DateTo;
                tbDescription.Text       = _alert.RiskDescription;
                tbAction.Text            = _alert.Action;
                tbResult.Text            = _alert.Result;
                rbStatusActive.Checked   = _alert.Active;
                rbStatusInactive.Checked = !_alert.Active;

                // Phases:
                List <ModelRiskAlertPhase> modelRiskAlertPhaseList = ModelRiskAlertHelper.GetPhases(_alert);
                foreach (ModelRiskAlertPhase mrap in modelRiskAlertPhaseList)
                {
                    foreach (var cboPhase in cbElectoralPhases.Items)
                    {
                        if (((ComboBoxItemFace)cboPhase).IFase != null)
                        {
                            if (((ComboBoxItemFace)cboPhase).IFase.IDPhase == mrap.IDPhase)
                            {
                                lbElectoralPhases.Items.Add(cboPhase);
                            }
                        }
                    }
                }

                // Regions:
                List <ModelRiskAlertRegion> modelRiskAlertRegionList = ModelRiskAlertHelper.GetModelRiskAlertRegions(_alert);
                foreach (ModelRiskAlertRegion region in modelRiskAlertRegionList)
                {
                    foreach (TreeNode node in tvRegions.Nodes)
                    {
                        CheckRegion(node, region);
                    }
                }

                // Add analysis:
                List <ModelRiskAlertAttachment> modelRiskAlertAttachment = ModelRiskAlertHelper.GetModelRiskAlertAttachments(_alert);
                foreach (ModelRiskAlertAttachment att in modelRiskAlertAttachment)
                {
                    addUpdater(att);
                }

                // And a last button to add more:
                addUpdater();
            }
            else
            {
                Label newLabel = new Label
                {
                    Text      = ResourceHelper.GetResourceText("RiskAndActionSaveWarning"),
                    ForeColor = Color.Red,
                    Width     = 500
                };
                analysisPanel.Controls.Add(newLabel);
            }
        }
Esempio n. 4
0
        private void LoadModelAndRegions()
        {
            Model model = ERMTSession.Instance.CurrentModel;

            if (model == null)
            {
                return;
            }


            if (!IsMasterRAR)
            {
                // Load tree:
                tvRegions.Nodes.Clear();
                Region        current = RegionHelper.Get(model.IDRegion);
                List <Region> regions = new List <Region>();
                regions.Add(RegionHelper.Get(1));
                if (current.IDParent.HasValue && current.IDParent != 1)
                {
                    regions.Add(RegionHelper.Get(current.IDParent.Value));
                }
                regions.Add(current);
                regions.AddRange(RegionHelper.GetAllChilds(current.IDRegion));

                TreeNode node = new TreeNode()
                {
                    Text = current.RegionName, Name = current.IDRegion.ToString(), Tag = current
                };
                int mainRegionLevel = RegionHelper.GetLevel(current.IDRegion);
                // node.ContextMenuStrip = NodeMenu;

                tvRegions.Nodes.Add(node);
                AddChildRegions(tvRegions.Nodes[0], regions, mainRegionLevel);
                tvRegions.ExpandAll();
                tvRegions.SelectedNode = tvRegions.Nodes[0];
            }
            else
            {
                // Load tree:
                tvRegions.Nodes.Clear();
                //Region current = RegionHelper.Get(model.IDRegion);
                //List<Region> regions = ModelRiskAlertHelper.GetAllRegionsWithAlerts();
                List <Region> regions = RegionHelper.GetAll().OrderBy(r => r.RegionLevel).ToList();
                //regions.Add(RegionHelper.GetWorld());

                if (regions.Count == 0)
                {
                    return;
                }

                TreeNode node = new TreeNode {
                    Text = regions[0].RegionName, Name = regions[0].IDRegion.ToString(), Tag = regions[0]
                };
                int mainRegionLevel = RegionHelper.GetLevel(regions[0].IDRegion);
                // node.ContextMenuStrip = NodeMenu;

                tvRegions.Nodes.Add(node);
                AddChildRegions(tvRegions.Nodes[0], regions, mainRegionLevel);
                tvRegions.ExpandAll();
                tvRegions.SelectedNode = tvRegions.Nodes[0];
            }
        }
Esempio n. 5
0
        private void tsmiEditRegionAddChildRegion_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog {
                Filter = "Shape Files (*.shp)|*.shp"
            };
            DialogResult result = openFileDialog.ShowDialog();

            if (result == DialogResult.OK)
            {
                FileInfo shapeFileInfo = new FileInfo(openFileDialog.FileName);
                try
                {
                    int count = (LayerOverlay)winformsMap1.Overlays[0] != null ? ((LayerOverlay)winformsMap1.Overlays[0]).Layers.Count : 0;
                    if (!File.Exists(shapeFileInfo.ToString().Replace(".shp", ".dbf")) || !File.Exists(shapeFileInfo.ToString().Replace(".shp", ".shx")))
                    {
                        //if there's no DBF / SHX file, can't use this .shp.
                        //http://thinkgeo.com/forums/MapSuite/tabid/143/aft/2947/Default.aspx
                        //1) In real life, how those files (.shp .shx .dbf) are generated ?
                        //1. These files are automatically created upon creation of a shapefile, using the CreateShapeFile method of Map Suite or another shapefile creation application. These three files are required for a shapefile to function as dictated by ESRI shapefile standard.
                        CustomMessageBox.ShowMessage(ResourceHelper.GetResourceText("EditRegionShapeFileMissingFiles"));
                    }
                    else
                    {
                        ShapeFileFeatureLayer newRegion = MapHelper.GetRegionFeatureLayer(shapeFileInfo);
                        DataTable             table     = GetDataTable(newRegion);


                        PickColumnForm pck = new PickColumnForm(table);
                        if (pck.ShowDialog() == DialogResult.OK)
                        {
                            LoadingForm.ShowLoading();
                            _columnName = pck.SelectedColumn;
                            string parentColumnName = pck.SelectedParentColumn;
                            try
                            {
                                int           regionCount       = 0;
                                List <Region> siblingRegions    = null;
                                String        newRegionFileName = string.Empty;
                                Region        parent            = null;
                                foreach (DataRow row in table.Rows)
                                {
                                    Boolean saveRegion = false;
                                    Region  region     = NewRegionData;
                                    region.RegionName = row[_columnName].ToString();
                                    if (parentColumnName != "No parent column")
                                    //If la segunda columna esta seleccionada parentNameColumnIndex!=-1
                                    {
                                        //Quien es el pais?
                                        int idCountry = GetCountry(RegionHelper.Get(region.IDParent.Value));
                                        if (region.IDParent != null)
                                        {
                                            Region parentRegion = RegionHelper.Get(region.IDParent.Value);
                                            if (parentRegion.IDParent != null)
                                            {
                                                if (idCountry == _regionData.IDRegion)
                                                {
                                                    region.IDParent = _regionData.IDRegion;
                                                    saveRegion      = true;
                                                }
                                                else
                                                {
                                                    if (siblingRegions == null)
                                                    {
                                                        siblingRegions = RegionHelper.GetChildsAtLevel(idCountry,
                                                                                                       _regionData.RegionLevel);
                                                    }

                                                    foreach (Region r in siblingRegions) //Hermanos
                                                    {
                                                        if (r.RegionName != (string)row[parentColumnName])
                                                        {
                                                            continue;
                                                        }
                                                        region.IDParent = r.IDRegion;
                                                        saveRegion      = true;
                                                        break;
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                region.IDParent = parentRegion.IDRegion;
                                            }
                                        }
                                    }
                                    else
                                    {
                                        saveRegion = true;
                                    }

                                    parent = RegionHelper.Get(region.IDParent.Value);
                                    if (saveRegion)
                                    {
                                        region.RegionLevel = parent.RegionLevel + 1;
                                        if (newRegionFileName == string.Empty)
                                        {
                                            newRegionFileName = SaveShapefiles(shapeFileInfo, region);
                                        }
                                        region.ShapeFileName = newRegionFileName;
                                        if (table.Rows.Count == 1)
                                        {
                                            //it's the only region in the shapefile. So, no need to specify an index
                                            region.ShapeFileIndex = null;
                                        }
                                        else
                                        {
                                            //it's a shapefile that contains more than 1 regions. Index is needed.
                                            region.ShapeFileIndex = regionCount;
                                        }

                                        RegionHelper.Save(region);
                                        regionCount++;
                                    }
                                }
                                //Reload  map and tree
                                LoadRegions();
                                if (parent != null)
                                {
                                    ShowShapeChilds(parent);
                                }
                                LoadingForm.Fadeout();
                                CustomMessageBox.ShowMessage(regionCount + " " + ResourceHelper.GetResourceText("NewRegionsHaveBeenImported"));
                            }
                            catch (Exception ex)
                            {
                                LogHelper.LogError(ex);
                                throw;
                            }
                            finally
                            {
                                LoadingForm.Fadeout();
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    //Shape was not valid
                }
                finally
                {
                }
            }
        }