Esempio n. 1
0
 public void VisgroupShowEditor()
 {
     using (var vef = new VisgroupEditForm(_document)) {
         if (vef.ShowDialog() == DialogResult.OK)
         {
             var nv = new List <Visgroup>();
             var cv = new List <Visgroup>();
             var dv = new List <Visgroup>();
             vef.PopulateChangeLists(_document, nv, cv, dv);
             if (nv.Any() || cv.Any() || dv.Any())
             {
                 _document.PerformAction("Edit visgroups", new CreateEditDeleteVisgroups(nv, cv, dv));
             }
         }
     }
 }
Esempio n. 2
0
        protected override async Task Invoke(MapDocument document, CommandParameters parameters)
        {
            using (var vg = new VisgroupEditForm(document))
            {
                _translator.Value.Translate(vg);
                if (vg.ShowDialog() == DialogResult.OK)
                {
                    var nv = new List <Visgroup>();
                    var cv = new List <Visgroup>();
                    var dv = new List <Visgroup>();

                    vg.PopulateChangeLists(document, nv, cv, dv);

                    if (nv.Any() || cv.Any() || dv.Any())
                    {
                        var tns = new Transaction();

                        if (dv.Any())
                        {
                            var ids = dv.Select(x => x.ID).ToList();
                            tns.Add(new RemoveMapData(document.Map.Data.Get <Visgroup>().Where(x => ids.Contains(x.ID))));
                        }

                        if (cv.Any())
                        {
                            var ids = cv.Select(x => x.ID).ToList();
                            tns.Add(new RemoveMapData(document.Map.Data.Get <Visgroup>().Where(x => ids.Contains(x.ID))));
                            tns.Add(new AddMapData(cv));
                        }

                        if (nv.Any())
                        {
                            tns.Add(new AddMapData(nv));
                        }

                        await MapDocumentOperation.Perform(document, tns);
                    }
                }
            }
        }