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)); } } } }
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); } } } }