Ejemplo n.º 1
0
            internal ExtensionState(
                IPatternInfo extendingProduct,
                IExtensionPointInfo extensionPoint,
                IBindingFactory bindingFactory)
            {
                this.ExtendingProduct = extendingProduct;
                this.ExtensionPoint   = extensionPoint;
                this.bindingFactory   = bindingFactory;

                this.BindingContext = bindingFactory.CreateContext();
                this.BindingContext.AddExportsFromInterfaces(extendingProduct);
                this.BindingContext.AddExportsFromInterfaces(extensionPoint);
            }
Ejemplo n.º 2
0
 private string GetPluralizedExtensionPath(IExtensionPointInfo element, int index)
 {
     if (element.Cardinality == Cardinality.ZeroToMany ||
         element.Cardinality == Cardinality.OneToMany)
     {
         return(string.Format(CultureInfo.CurrentCulture, ElementInstanceAddressFormat,
                              this.pluralization.Pluralize(element.CodeIdentifier), index.ToString(CultureInfo.CurrentCulture)));
     }
     else
     {
         return(element.CodeIdentifier);
     }
 }
Ejemplo n.º 3
0
            public void InitializeContext()
            {
                var serviceProvider = Mocks.Of <IServiceProvider>().First(provider =>
                                                                          provider.GetService(typeof(IPatternManager)) == Mocks.Of <IPatternManager>().First(manager =>
                                                                                                                                                             manager.InstalledToolkits == new IInstalledToolkitInfo[]
                {
                    Mocks.Of <IInstalledToolkitInfo>().First(toolkitInfo =>
                                                             toolkitInfo.Id == Ids.PatternToolkit1Id &&
                                                             toolkitInfo.Schema.Pattern.Id == Ids.ExtensionToolkitPatternSchema1Id &&
                                                             toolkitInfo.Schema.Pattern.ExtensionId == Ids.PatternToolkit1Id &&
                                                             toolkitInfo.Schema.Pattern.ProvidedExtensionPoints == new[]
                    {
                        Mocks.Of <IProvidedExtensionPointInfo>().First(extensionPoint => extensionPoint.ExtensionPointId == Ids.ExtensionPointSchemaPath1),
                        Mocks.Of <IProvidedExtensionPointInfo>().First(extensionPoint => extensionPoint.ExtensionPointId == Ids.ExtensionPointSchemaPath2)
                    }),
                    Mocks.Of <IInstalledToolkitInfo>().First(toolkitInfo =>
                                                             toolkitInfo.Id == Ids.PatternToolkit2Id &&
                                                             toolkitInfo.Schema.Pattern.Id == Ids.ExtensionToolkitPatternSchema2Id &&
                                                             toolkitInfo.Schema.Pattern.ExtensionId == Ids.PatternToolkit2Id &&
                                                             toolkitInfo.Schema.Pattern.ProvidedExtensionPoints == new[]
                    {
                        Mocks.Of <IProvidedExtensionPointInfo>().First(extensionPoint => extensionPoint.ExtensionPointId == Ids.ExtensionPointSchemaPath2)
                    }),
                    Mocks.Of <IInstalledToolkitInfo>().First(toolkitInfo =>
                                                             toolkitInfo.Id == Ids.SecondToolkitId &&
                                                             toolkitInfo.Schema.Pattern.Id == Ids.SecondPatternSchemaId &&
                                                             toolkitInfo.Schema.Pattern.Name == "SecondPatternSchema" &&
                                                             toolkitInfo.Schema.Pattern.ExtensionId == Ids.MainToolkitId),
                    Mocks.Of <IInstalledToolkitInfo>().First(toolkitInfo =>
                                                             toolkitInfo.Id == Ids.MainToolkitId &&
                                                             toolkitInfo.Schema.Pattern.Id == Ids.MainPatternSchemaId &&
                                                             toolkitInfo.Schema.Pattern.Name == "MainPatternSchema" &&
                                                             toolkitInfo.Schema.Pattern.ExtensionId == Ids.MainToolkitId &&
                                                             toolkitInfo.Schema.Pattern.Views == new []
                    {
                        //  View
                        //          ExtensionPoint1
                        //          ExtensionPoint2
                        Mocks.Of <IViewInfo>().First(view =>
                                                     view.Id == Ids.MainViewSchemaId &&
                                                     view.Name == "View" &&
                                                     view.ExtensionPoints == new IExtensionPointInfo[]
                        {
                            Mocks.Of <IExtensionPointInfo>().First(extensionPoint =>
                                                                   extensionPoint.Id == Ids.ExtensionPointSchema1Id &&
                                                                   extensionPoint.Name == "ExtensionPointSchema1" &&
                                                                   extensionPoint.OrderGroup == 2 &&
                                                                   extensionPoint.Cardinality == Cardinality.ZeroToMany &&
                                                                   extensionPoint.RequiredExtensionPointId == Ids.ExtensionPointSchemaPath1
                                                                   ),
                            Mocks.Of <IExtensionPointInfo>().First(extensionPoint =>
                                                                   extensionPoint.Id == Ids.ExtensionPointSchema2Id &&
                                                                   extensionPoint.Name == "ExtensionPointSchema2" &&
                                                                   extensionPoint.OrderGroup == 3 &&
                                                                   extensionPoint.Cardinality == Cardinality.ZeroToOne &&
                                                                   extensionPoint.RequiredExtensionPointId == Ids.ExtensionPointSchemaPath2
                                                                   ),
                        }),
                    }),
                })
                                                                          );

                using (var store = new Microsoft.VisualStudio.Modeling.Store(serviceProvider, typeof(Microsoft.VisualStudio.Modeling.CoreDomainModel), typeof(ProductStateStoreDomainModel)))
                    using (var tx = store.TransactionManager.BeginTransaction())
                    {
                        var productStore = store.ElementFactory.CreateElement <ProductState>();
                        productStore
                        .CreateProduct(p => { p.ExtensionId = Ids.SecondToolkitId; p.DefinitionId = Ids.SecondPatternSchemaId; });
                        productStore
                        .CreateProduct(p => { p.ExtensionId = Ids.SecondToolkitId; p.DefinitionId = Ids.SecondPatternSchemaId; });
                        productStore
                        .CreateProduct(p => { p.ExtensionId = Ids.MainToolkitId; p.DefinitionId = Ids.MainPatternSchemaId; })
                        .CreateView(v => v.DefinitionId = Ids.MainViewSchemaId);

                        ProductStateStoreSerializationHelper.Instance.SaveModel(new Microsoft.VisualStudio.Modeling.SerializationResult(), productStore, this.storeFilePath);
                        tx.Commit();
                    }

                this.store = new Microsoft.VisualStudio.Modeling.Store(serviceProvider, typeof(Microsoft.VisualStudio.Modeling.CoreDomainModel), typeof(ProductStateStoreDomainModel));
                using (var tx = this.store.TransactionManager.BeginTransaction("Loading", true))
                {
                    ProductStateStoreSerializationHelper.Instance.LoadModel(this.store, this.storeFilePath, null, null, null);
                    tx.Commit();

                    this.productStore = this.store.ElementDirectory.AllElements.OfType <ProductState>().First();
                }

                this.rootProduct3 = this.store.ElementDirectory.FindElements <Product>(true).Where(p => p.DefinitionId == Ids.SecondPatternSchemaId).ToArray()[0];
                this.rootProduct2 = this.store.ElementDirectory.FindElements <Product>(true).Where(p => p.DefinitionId == Ids.SecondPatternSchemaId).ToArray()[1];
                this.rootProduct1 = this.store.ElementDirectory.FindElements <Product>(true).First(p => p.DefinitionId == Ids.MainPatternSchemaId);
                this.view         = rootProduct1.Views.First();

                this.extensionPointInfo2 = this.view.Info.ExtensionPoints.First(ep => ep.Id == Ids.ExtensionPointSchema2Id);

                this.extensionProduct1 = this.view.CreateExtension(prod => { prod.ProductState = this.productStore; prod.ExtensionId = Ids.PatternToolkit1Id; prod.DefinitionId = Ids.ExtensionToolkitPatternSchema1Id; });
                this.extensionProduct2 = this.view.CreateExtension(prod => { prod.ProductState = this.productStore; prod.ExtensionId = Ids.PatternToolkit1Id; prod.DefinitionId = Ids.ExtensionToolkitPatternSchema1Id; });
                this.extensionProduct4 = this.view.CreateExtension(prod => { prod.ProductState = this.productStore; prod.ExtensionId = Ids.PatternToolkit2Id; prod.DefinitionId = Ids.ExtensionToolkitPatternSchema2Id; });
            }
Ejemplo n.º 4
0
            public void InitializeContext()
            {
                var serviceProvider = Mocks.Of<IServiceProvider>().First(provider =>
                                        provider.GetService(typeof(IPatternManager)) == Mocks.Of<IPatternManager>().First(manager =>
                                            manager.InstalledToolkits == new IInstalledToolkitInfo[]
                        {
                            Mocks.Of<IInstalledToolkitInfo>().First(toolkitInfo =>
                                toolkitInfo.Id == Ids.PatternToolkit1Id &&
                                toolkitInfo.Schema.Pattern.Id == Ids.ExtensionToolkitPatternSchema1Id &&
                                toolkitInfo.Schema.Pattern.ExtensionId == Ids.PatternToolkit1Id &&
                                toolkitInfo.Schema.Pattern.ProvidedExtensionPoints == new[]
                                {
                                    Mocks.Of<IProvidedExtensionPointInfo>().First(extensionPoint => extensionPoint.ExtensionPointId == Ids.ExtensionPointSchemaPath1),
                                    Mocks.Of<IProvidedExtensionPointInfo>().First(extensionPoint => extensionPoint.ExtensionPointId == Ids.ExtensionPointSchemaPath2)
                                }),
                            Mocks.Of<IInstalledToolkitInfo>().First(toolkitInfo =>
                                toolkitInfo.Id == Ids.PatternToolkit2Id &&
                                toolkitInfo.Schema.Pattern.Id == Ids.ExtensionToolkitPatternSchema2Id &&
                                toolkitInfo.Schema.Pattern.ExtensionId == Ids.PatternToolkit2Id &&
                                toolkitInfo.Schema.Pattern.ProvidedExtensionPoints == new[]
                                {
                                    Mocks.Of<IProvidedExtensionPointInfo>().First(extensionPoint => extensionPoint.ExtensionPointId == Ids.ExtensionPointSchemaPath2)
                                }),
                            Mocks.Of<IInstalledToolkitInfo>().First(toolkitInfo =>
                                toolkitInfo.Id == Ids.SecondToolkitId &&
                                toolkitInfo.Schema.Pattern.Id == Ids.SecondPatternSchemaId &&
                                toolkitInfo.Schema.Pattern.Name == "SecondPatternSchema" &&
                                toolkitInfo.Schema.Pattern.ExtensionId == Ids.MainToolkitId),
                            Mocks.Of<IInstalledToolkitInfo>().First(toolkitInfo =>
                                toolkitInfo.Id == Ids.MainToolkitId &&
                                toolkitInfo.Schema.Pattern.Id == Ids.MainPatternSchemaId &&
                                toolkitInfo.Schema.Pattern.Name == "MainPatternSchema" &&
                                toolkitInfo.Schema.Pattern.ExtensionId == Ids.MainToolkitId &&
                                toolkitInfo.Schema.Pattern.Views == new []
                                {
                                    //  View
                                    //          ExtensionPoint1
                                    //          ExtensionPoint2
                                    Mocks.Of<IViewInfo>().First(view =>
                                        view.Id == Ids.MainViewSchemaId &&
                                        view.Name == "View" &&
                                        view.ExtensionPoints == new IExtensionPointInfo[]
                                        {
                                            Mocks.Of<IExtensionPointInfo>().First(extensionPoint =>
                                                extensionPoint.Id == Ids.ExtensionPointSchema1Id &&
                                                extensionPoint.Name == "ExtensionPointSchema1" &&
                                                extensionPoint.OrderGroup == 2 &&
                                                extensionPoint.Cardinality == Cardinality.ZeroToMany &&
                                                extensionPoint.RequiredExtensionPointId == Ids.ExtensionPointSchemaPath1
                                                ),
                                            Mocks.Of<IExtensionPointInfo>().First(extensionPoint =>
                                                extensionPoint.Id == Ids.ExtensionPointSchema2Id &&
                                                extensionPoint.Name == "ExtensionPointSchema2" &&
                                                extensionPoint.OrderGroup == 3 &&
                                                extensionPoint.Cardinality == Cardinality.ZeroToOne &&
                                                extensionPoint.RequiredExtensionPointId == Ids.ExtensionPointSchemaPath2
                                                ),
                                        }),
                                }),
                        })
                    );

                using (var store = new Microsoft.VisualStudio.Modeling.Store(serviceProvider, typeof(Microsoft.VisualStudio.Modeling.CoreDomainModel), typeof(ProductStateStoreDomainModel)))
                using (var tx = store.TransactionManager.BeginTransaction())
                {
                    var productStore = store.ElementFactory.CreateElement<ProductState>();
                    productStore
                        .CreateProduct(p => { p.ExtensionId = Ids.SecondToolkitId; p.DefinitionId = Ids.SecondPatternSchemaId; });
                    productStore
                        .CreateProduct(p => { p.ExtensionId = Ids.SecondToolkitId; p.DefinitionId = Ids.SecondPatternSchemaId; });
                    productStore
                        .CreateProduct(p => { p.ExtensionId = Ids.MainToolkitId; p.DefinitionId = Ids.MainPatternSchemaId; })
                        .CreateView(v => v.DefinitionId = Ids.MainViewSchemaId);

                    ProductStateStoreSerializationHelper.Instance.SaveModel(new Microsoft.VisualStudio.Modeling.SerializationResult(), productStore, this.storeFilePath);
                    tx.Commit();
                }

                this.store = new Microsoft.VisualStudio.Modeling.Store(serviceProvider, typeof(Microsoft.VisualStudio.Modeling.CoreDomainModel), typeof(ProductStateStoreDomainModel));
                using (var tx = this.store.TransactionManager.BeginTransaction("Loading", true))
                {
                    ProductStateStoreSerializationHelper.Instance.LoadModel(this.store, this.storeFilePath, null, null, null);
                    tx.Commit();

                    this.productStore = this.store.ElementDirectory.AllElements.OfType<ProductState>().First();
                }

                this.rootProduct3 = this.store.ElementDirectory.FindElements<Product>(true).Where(p => p.DefinitionId == Ids.SecondPatternSchemaId).ToArray()[0];
                this.rootProduct2 = this.store.ElementDirectory.FindElements<Product>(true).Where(p => p.DefinitionId == Ids.SecondPatternSchemaId).ToArray()[1];
                this.rootProduct1 = this.store.ElementDirectory.FindElements<Product>(true).First(p => p.DefinitionId == Ids.MainPatternSchemaId);
                this.view = rootProduct1.Views.First();

                this.extensionPointInfo2 = this.view.Info.ExtensionPoints.First(ep => ep.Id == Ids.ExtensionPointSchema2Id);

                this.extensionProduct1 = this.view.CreateExtension(prod => { prod.ProductState = this.productStore; prod.ExtensionId = Ids.PatternToolkit1Id; prod.DefinitionId = Ids.ExtensionToolkitPatternSchema1Id; });
                this.extensionProduct2 = this.view.CreateExtension(prod => { prod.ProductState = this.productStore; prod.ExtensionId = Ids.PatternToolkit1Id; prod.DefinitionId = Ids.ExtensionToolkitPatternSchema1Id; });
                this.extensionProduct4 = this.view.CreateExtension(prod => { prod.ProductState = this.productStore; prod.ExtensionId = Ids.PatternToolkit2Id; prod.DefinitionId = Ids.ExtensionToolkitPatternSchema2Id; });
            }
 private string GetPluralizedExtensionPath(IExtensionPointInfo element, int index)
 {
     if (element.Cardinality == Cardinality.ZeroToMany ||
         element.Cardinality == Cardinality.OneToMany)
     {
         return string.Format(CultureInfo.CurrentCulture, ElementInstanceAddressFormat,
             this.pluralization.Pluralize(element.CodeIdentifier), index.ToString(CultureInfo.CurrentCulture));
     }
     else
     {
         return element.CodeIdentifier;
     }
 }