void MyDesigner_OnDeleteCurrentSelection(object sender, EventArgs e) { DesignerCanvas designerCanvas = sender as DesignerCanvas; foreach (DesignerItem designerItem in designerCanvas.SelectionService.CurrentSelection.OfType <DesignerItem>()) { // Remove sub-configurations (diagram and configurations) var subDiagram = this.Package.SubDiagrams.Where(t => t.ParentItemId == designerItem.ID).FirstOrDefault(); if (subDiagram != null) { List <DesignerItem> subdiagramDesignerItems = DesignerCanvas.LoadDiagramDesignerItems(subDiagram.Diagram, this.moduleLoader.Modules); foreach (DesignerItem subdiagramDesignerItem in subdiagramDesignerItems) { this.Package.Configurations.RemoveAll(t => t.ConfigurationId == subdiagramDesignerItem.ID); } } this.Package.SubDiagrams.RemoveAll(t => t.ParentItemId == designerItem.ID); // Remove main-configuration this.Package.Configurations.RemoveAll(t => t.ConfigurationId == designerItem.ID); } }
void MyDesigner_OnCopyCurrentSelection(object sender, EventArgs e) { this.StepCopy = new StepCopy(); this.StepCopy.Type = ((DesignerCanvas)sender).DesignerCanvasType; List <ConfigurationBase> configurationsToCopy = new List <ConfigurationBase>(); List <SerializedDiagram> diagramsToCopy = new List <SerializedDiagram>(); DesignerCanvas designerCanvas = sender as DesignerCanvas; foreach (DesignerItem designerItem in designerCanvas.SelectionService.CurrentSelection.OfType <DesignerItem>()) { // Copy sub-configurations (diagram and configurations) var subDiagram = this.Package.SubDiagrams.Where(t => t.ParentItemId == designerItem.ID).FirstOrDefault(); if (subDiagram != null) { diagramsToCopy.Add(subDiagram); List <DesignerItem> subdiagramDesignerItems = DesignerCanvas.LoadDiagramDesignerItems(subDiagram.Diagram, this.moduleLoader.Modules); foreach (DesignerItem subdiagramDesignerItem in subdiagramDesignerItems) { var subconfiguration = this.Package.Configurations.Where(t => t.ConfigurationId == subdiagramDesignerItem.ID).FirstOrDefault(); if (subconfiguration != null) { configurationsToCopy.Add(subconfiguration); } } } // Copy main configuration var configuration = this.Package.Configurations.Where(t => t.ConfigurationId == designerItem.ID).FirstOrDefault(); if (configuration != null) { configurationsToCopy.Add(configuration); } } this.StepCopy.Configurations = ConfigurationSerializer.SerializeObject(configurationsToCopy, moduleLoader.GetModuleTypeList()); this.StepCopy.Diagrams = ConfigurationSerializer.SerializeObject(diagramsToCopy, moduleLoader.GetModuleTypeList()); }