public void Initialize()
            {
                var automationExtensions = new List <IExportedAutomationMetadata> {
                    new Mock <IExportedAutomationMetadata>().Object
                };

                this.target = new AddAutomationExtensionViewModel(automationExtensions);
            }
Exemplo n.º 2
0
        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);
            }
        }