public void Initialize() { var automationExtensions = new List <IExportedAutomationMetadata> { new Mock <IExportedAutomationMetadata>().Object }; this.target = new AddAutomationExtensionViewModel(automationExtensions); }
public override void Execute(IMenuCommand command) { var viewModel = new AddAutomationExtensionViewModel(this.AutomationSettings.Select(l => l.Metadata)); var view = this.DialogFactory(viewModel); if (view.ShowDialog().GetValueOrDefault()) { var diagramItems = new DiagramItemCollection(); var clientView = this.View.CurrentDesigner.DiagramClientView; foreach (var target in this.CurrentSelection) { var element = target as IPatternElementSchema; var automationSchema = element.CreateAutomationSettingsSchema(aes => { var aesMel = (ModelElement)aes; var extension = aesMel.AddExtension(viewModel.CurrentExportedAutomation.ExportingType); string displayName = extension.GetDomainClass().DisplayName; aes.Name = aesMel.GetUniqueName(SanitizeName(displayName)); aes.AutomationType = displayName; aes.Classification = ((IAutomationSettings)extension).Classification; }); var shape = PresentationViewsSubject.GetPresentation((PatternElementSchema)element).OfType <CompartmentShape>().FirstOrDefault(); if (shape != null) { var diagramItem = shape.FindDiagramItem <AutomationSettingsSchema>(a => a.Id == automationSchema.Id); if (diagramItem != null) { diagramItems.Add(diagramItem); } } } clientView.Selection.Set(diagramItems); } }