示例#1
0
 public MethodInfo(string name, string className, IElementInfo parent)
 {
     Name      = name;
     ClassName = className;
     Parent    = parent;
     Methods   = new List <MethodInfo>();
 }
示例#2
0
 public ThreadInfo(int id)
 {
     Id             = id;
     Parent         = null;
     Methods        = new List <MethodInfo>();
     CurrentElement = this;
 }
            public void Initialize()
            {
                var mockElement = new Mock<IElementInfo>();
                mockElement.Setup(x => x.Properties)
                    .Returns(new[]
                    {
                        Mocks.Of<IPropertyInfo>().First(p => p.Type == "System.String"),
                        Mocks.Of<IPropertyInfo>().First(p => p.Type == "System.Boolean" && p.TypeConverterTypeName == "System.ComponentModel.StringConverter, System"),
                        Mocks.Of<IPropertyInfo>().First(p => p.Type == "System.Int32" && p.TypeConverterTypeName == "NuPattern.StringConverter, Microsoft"),
                        Mocks.Of<IPropertyInfo>().First(p => p.Type == "System.Boolean" && p.EditorTypeName == "System.ComponentModel.UIEditor, System"),
                        Mocks.Of<IPropertyInfo>().First(p => p.Type == "System.String" && p.EditorTypeName == "System.ComponentModel.Design.MultilineStringEditor, System.Design"),
                    });

                this.element = mockElement.Object;
            }
            public void Initialize()
            {
                var mockElement = new Mock <IElementInfo>();

                mockElement.Setup(x => x.Properties)
                .Returns(new[]
                {
                    Mocks.Of <IPropertyInfo>().First(p => p.Type == "System.String"),
                    Mocks.Of <IPropertyInfo>().First(p => p.Type == "System.Boolean" && p.TypeConverterTypeName == "System.ComponentModel.StringConverter, System"),
                    Mocks.Of <IPropertyInfo>().First(p => p.Type == "System.Int32" && p.TypeConverterTypeName == "NuPattern.StringConverter, Microsoft"),
                    Mocks.Of <IPropertyInfo>().First(p => p.Type == "System.Boolean" && p.EditorTypeName == "System.ComponentModel.UIEditor, System"),
                    Mocks.Of <IPropertyInfo>().First(p => p.Type == "System.String" && p.EditorTypeName == "System.ComponentModel.Design.MultilineStringEditor, System.Design"),
                });

                this.element = mockElement.Object;
            }
示例#5
0
文件: Runner.cs 项目: willrawls/arp
 public void Accept(IElementInfo elementGenerationInfo)
 {
     elements.Add(elementGenerationInfo);
 }
        /// <summary>
        /// Retrieves page for display.
        /// </summary>
        /// <param name="tenantId">Website whose page is read.</param>
        /// <param name="pageContext">Page context.</param>
        /// <returns>View model required to render a page.</returns>
        public PageViewModel GetPageViewModelFromPageContext(IPageContext pageContext)
        {
            // Construct page view model
            PageViewModel pageViewModel = new PageViewModel
            {
                Administration     = pageContext.MasterPage.Administration,
                PageContext        = pageContext,
                BeginRender        = FormatLayoutHtml(pageContext.Page, pageContext.MasterPage.BeginRender),
                EndRender          = FormatLayoutHtml(pageContext.Page, pageContext.MasterPage.EndRender),
                PageZoneViewModels = new List <PageZoneViewModel>(),
                Title                      = GetPageTitle(pageContext),
                MetaKeywords               = GetMetaKeywords(pageContext.Page),
                MetaDescription            = GetMetaDescription(pageContext.Page),
                AssetStyleSheetPath        = _assetService.GetAssetStyleSheetPath(pageContext.Web.TenantId),
                FontOptionStyleSheetPath   = _assetService.GetFontOptionStyleSheetPath(pageContext.Web.TenantId, pageContext.Web.FontOption),
                ColourOptionStyleSheetPath = _assetService.GetColourOptionStyleSheetPath(pageContext.Web.TenantId, pageContext.Web.ColourOption),
                ForumAction                = GetForumAction(),
                AssetElementTypes          = _assetService.GetAssetElementTypes(pageContext.Web.TenantId),
                StockElementViewPath       = "~/Views/Elements",
                AssetElementViewPath       = _assetService.GetElementViewPath(pageContext.Web.TenantId)
            };

            // Maintain lists of page elements, master elements and configurable page zones
            List <IElementInfo> pageElements          = new List <IElementInfo>();
            List <IElementInfo> masterElements        = new List <IElementInfo>();
            List <PageZone>     configurablePageZones = new List <PageZone>();

            // Get page zones by master page zone ID
            Dictionary <long, PageZone> pageZonesByMasterPageZoneId = new Dictionary <long, PageZone>();

            foreach (PageZone pageZone in pageContext.Page.PageZones)
            {
                pageZonesByMasterPageZoneId.Add(pageZone.MasterPageZoneId, pageZone);
            }

            // Populate page zone view models
            foreach (MasterPageZone masterPageZone in pageContext.MasterPage.MasterPageZones)
            {
                // Construct page zone view model
                PageZoneViewModel pageZoneViewModel = new PageZoneViewModel
                {
                    BeginRender = FormatLayoutHtml(pageContext.Page, masterPageZone.BeginRender),
                    EndRender   = FormatLayoutHtml(pageContext.Page, masterPageZone.EndRender),
                    ContentType = masterPageZone.ContentType,
                    PageZoneElementViewModels = new List <PageZoneElementViewModel>()
                };

                // Get page zone element view models
                PageZone pageZone;
                if (pageZonesByMasterPageZoneId.TryGetValue(masterPageZone.MasterPageZoneId, out pageZone))
                {
                    // Associate master page zone with page zone
                    pageZone.MasterPageZone = masterPageZone;

                    // If master page zone admin type is Editable, sort order is NULL at PageZoneElement level and we must use sort order stored in MasterPageZoneElement
                    Dictionary <long, MasterPageZoneElement> masterPageZoneElementsById = null;
                    if (masterPageZone.AdminType == MasterPageZoneAdminType.Editable)
                    {
                        // If admin type is Editable, then defer to MasterPageZoneElement level for ordering
                        masterPageZoneElementsById = new Dictionary <long, MasterPageZoneElement>();
                        foreach (MasterPageZoneElement masterPageZoneElement in masterPageZone.MasterPageZoneElements)
                        {
                            masterPageZoneElementsById.Add(masterPageZoneElement.MasterPageZoneElementId, masterPageZoneElement);
                        }
                        foreach (PageZoneElement pageZoneElement in pageZone.PageZoneElements)
                        {
                            MasterPageZoneElement masterPageZoneElement = masterPageZoneElementsById[pageZoneElement.MasterPageZoneElementId.Value];
                            pageZoneElement.SortOrder = masterPageZoneElement.SortOrder;
                        }
                        pageZone.PageZoneElements.Sort(new PageZoneElementComparer());
                    }

                    // Get page zone element view models from page
                    if (masterPageZone.AdminType == MasterPageZoneAdminType.Configurable)
                    {
                        configurablePageZones.Add(pageZone);
                    }
                    foreach (PageZoneElement pageZoneElement in pageZone.PageZoneElements)
                    {
                        IElementSettings settings = _elementService.Read(pageContext.Web.TenantId, pageZoneElement.ElementTypeId, pageZoneElement.ElementId);
                        IElementContent  content  = _elementService.GetContent(settings, pageContext);
                        IElementInfo     info     = _elementService.NewInfo(settings, content);
                        pageElements.Add(info);
                        PageZoneElementViewModel pageZoneElementViewModel = new PageZoneElementViewModel {
                            ElementInfo = info
                        };
                        if (masterPageZone.AdminType == MasterPageZoneAdminType.Editable)
                        {
                            pageZoneElementViewModel.BeginRender = masterPageZoneElementsById[pageZoneElement.MasterPageZoneElementId.Value].BeginRender;
                            pageZoneElementViewModel.EndRender   = masterPageZoneElementsById[pageZoneElement.MasterPageZoneElementId.Value].EndRender;
                        }
                        pageZoneViewModel.PageZoneElementViewModels.Add(pageZoneElementViewModel);
                    }
                }
                else
                {
                    // Get page zone element view models from master page
                    foreach (MasterPageZoneElement masterPageZoneElement in masterPageZone.MasterPageZoneElements)
                    {
                        IElementSettings settings = _elementService.Read(pageContext.Web.TenantId, masterPageZoneElement.Element.ElementTypeId, masterPageZoneElement.ElementId);
                        IElementContent  content  = _elementService.GetContent(settings, pageContext);
                        IElementInfo     info     = _elementService.NewInfo(settings, content);
                        masterElements.Add(info);
                        pageZoneViewModel.PageZoneElementViewModels.Add(new PageZoneElementViewModel {
                            ElementInfo = info, BeginRender = masterPageZoneElement.BeginRender, EndRender = masterPageZoneElement.EndRender
                        });
                    }
                }

                // Register page zone view model
                pageViewModel.PageZoneViewModels.Add(pageZoneViewModel);
            }

            // Pass administration options to elements that can display them
            IAdministrationOptions options = _administrationService.GetAdministrationOptions(pageContext, pageElements, masterElements, configurablePageZones);
            List <IElementInfo>    administrationElements = GetElementsWithContent <IAdministrationContent>(pageViewModel);

            foreach (IElementInfo elementInfo in administrationElements)
            {
                ((IAdministrationContent)elementInfo.Content).Options = options;
            }
            SetConsumerPageLinks(pageViewModel);
            pageViewModel.Options = options;

            // Return the resulting page view model
            return(pageViewModel);
        }
示例#7
0
        public static Element SyncElement(Element element, IElementInfo schema)
        {
            SyncContainer(element, schema);

            return element;
        }
            public void Initialize()
            {
                this.storeFilePath = Path.Combine(Path.GetTempPath(), Path.GetTempFileName());

                var viewInfo = Mocks.Of<IViewInfo>().First(x => x.Id == Guid.NewGuid());

                this.elementInfo = Mock.Of<IElementInfo>(x =>
                    x.Id == Guid.NewGuid() &&
                    x.Cardinality == Cardinality.ZeroToMany &&
                    x.Elements == new List<IAbstractElementInfo>
                    {
                        Mock.Of<IElementInfo>(e => e.Id == Guid.NewGuid() && e.Cardinality == Cardinality.OneToOne && e.AutoCreate == true),
                        Mock.Of<ICollectionInfo>(e => e.Id == Guid.NewGuid() && e.Cardinality == Cardinality.OneToOne && e.AutoCreate == true),
                        Mock.Of<ICollectionInfo>(e => e.Id == Guid.NewGuid() && e.Cardinality == Cardinality.ZeroToMany)
                    } &&
                    x.Properties == new List<IPropertyInfo>
                    {
                        Mock.Of<IPropertyInfo>(p => p.Id == Guid.NewGuid() && p.Name == "Foo" + Guid.NewGuid() && p.Type == "System.String"),
                        Mock.Of<IPropertyInfo>(p => p.Id == Guid.NewGuid() && p.Name == "Foo" + Guid.NewGuid() && p.Type == "System.String")
                    } &&
                    x.ExtensionPoints == new List<IExtensionPointInfo>
                    {
                        Mock.Of<IExtensionPointInfo>(ep => ep.Id == Guid.NewGuid() && ep.Cardinality == Cardinality.OneToOne && ep.RequiredExtensionPointId == "ext_1"),
                        Mock.Of<IExtensionPointInfo>(ep => ep.Id == Guid.NewGuid() && ep.Cardinality == Cardinality.ZeroToMany && ep.RequiredExtensionPointId == "ext_2"),
                    });

                var providedExtension1 = Mocks.Of<IProvidedExtensionPointInfo>().First(x => x.ExtensionPointId == "ext_1");
                var extensionPoint1 = Mocks.Of<IInstalledToolkitInfo>().First(x =>
                    x.Id == "ext_toolkit_1" &&
                    x.Schema.Pattern.Id == Guid.NewGuid() &&
                    x.Schema.Pattern.ExtensionId == "ext_toolkit_1" &&
                    x.Schema.Pattern.ProvidedExtensionPoints == new[] { providedExtension1 });

                var providedExtension2 = Mocks.Of<IProvidedExtensionPointInfo>().First(x => x.ExtensionPointId == "ext_2");
                var extensionPoint2 = Mocks.Of<IInstalledToolkitInfo>().First(x =>
                    x.Id == "ext_toolkit_2" &&
                    x.Schema.Pattern.Id == Guid.NewGuid() &&
                    x.Schema.Pattern.ExtensionId == "ext_toolkit_2" &&
                    x.Schema.Pattern.ProvidedExtensionPoints == new[] { providedExtension2 });

                Mock.Get(viewInfo).Setup(x => x.Elements).Returns(new[] { elementInfo });

                var toolkit = Mocks.Of<IInstalledToolkitInfo>().First(x =>
                    x.Id == "test_toolkit" &&
                    x.Schema.Pattern.Id == Guid.NewGuid() &&
                    x.Schema.Pattern.Views == new[] { viewInfo } &&
                    x.Schema.Pattern.ProvidedExtensionPoints == new[] { providedExtension1, providedExtension2 });

                var patternManager = new Mock<IPatternManager>();
                patternManager.Setup(x => x.InstalledToolkits)
                    .Returns(new[] { toolkit, extensionPoint1, extensionPoint2 });

                var serviceProvider = new Mock<IServiceProvider>();
                serviceProvider.Setup(x => x.GetService(typeof(IPatternManager)))
                    .Returns(patternManager.Object);

                using (var store = new Microsoft.VisualStudio.Modeling.Store(serviceProvider.Object, typeof(Microsoft.VisualStudio.Modeling.CoreDomainModel), typeof(ProductStateStoreDomainModel)))
                using (var tx = store.TransactionManager.BeginTransaction())
                {
                    var productStore = store.ElementFactory.CreateElement<ProductState>();

                    var element = productStore
                        .CreateProduct(x =>
                        {
                            x.ExtensionId = "test_toolkit";
                            x.DefinitionId = toolkit.Schema.Pattern.Id;
                        })
                        .CreateView(x => x.DefinitionId = viewInfo.Id)
                        .CreateElement(x => x.DefinitionId = this.elementInfo.Id);

                    this.elementId = element.Id;

                    element.CreateCollection(x => x.DefinitionId = this.elementInfo.Elements.ElementAt(2).Id);
                    element.CreateCollection(x => x.DefinitionId = this.elementInfo.Elements.ElementAt(2).Id);

                    element.CreateExtension(x =>
                    {
                        x.DefinitionId = extensionPoint1.Schema.Pattern.Id;
                        x.ExtensionId = extensionPoint1.Schema.Pattern.ExtensionId;
                    });
                    element.CreateExtension(x =>
                    {
                        x.DefinitionId = extensionPoint2.Schema.Pattern.Id;
                        x.ExtensionId = extensionPoint2.Schema.Pattern.ExtensionId;
                    });
                    element.CreateExtension(x =>
                    {
                        x.DefinitionId = extensionPoint2.Schema.Pattern.Id;
                        x.ExtensionId = extensionPoint2.Schema.Pattern.ExtensionId;
                    });

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

                this.store = new Microsoft.VisualStudio.Modeling.Store(serviceProvider.Object, typeof(Microsoft.VisualStudio.Modeling.CoreDomainModel), typeof(ProductStateStoreDomainModel));
            }
            public void Initialize()
            {
                this.storeFilePath = Path.Combine(Path.GetTempPath(), Path.GetTempFileName());

                var viewInfo = Mocks.Of <IViewInfo>().First(x => x.Id == Guid.NewGuid());

                this.elementInfo = Mock.Of <IElementInfo>(x =>
                                                          x.Id == Guid.NewGuid() &&
                                                          x.Cardinality == Cardinality.ZeroToMany &&
                                                          x.Elements == new List <IAbstractElementInfo>
                {
                    Mock.Of <IElementInfo>(e => e.Id == Guid.NewGuid() && e.Cardinality == Cardinality.OneToOne && e.AutoCreate == true),
                    Mock.Of <ICollectionInfo>(e => e.Id == Guid.NewGuid() && e.Cardinality == Cardinality.OneToOne && e.AutoCreate == true),
                    Mock.Of <ICollectionInfo>(e => e.Id == Guid.NewGuid() && e.Cardinality == Cardinality.ZeroToMany)
                } &&
                                                          x.Properties == new List <IPropertyInfo>
                {
                    Mock.Of <IPropertyInfo>(p => p.Id == Guid.NewGuid() && p.Name == "Foo" + Guid.NewGuid() && p.Type == "System.String"),
                    Mock.Of <IPropertyInfo>(p => p.Id == Guid.NewGuid() && p.Name == "Foo" + Guid.NewGuid() && p.Type == "System.String")
                } &&
                                                          x.ExtensionPoints == new List <IExtensionPointInfo>
                {
                    Mock.Of <IExtensionPointInfo>(ep => ep.Id == Guid.NewGuid() && ep.Cardinality == Cardinality.OneToOne && ep.RequiredExtensionPointId == "ext_1"),
                    Mock.Of <IExtensionPointInfo>(ep => ep.Id == Guid.NewGuid() && ep.Cardinality == Cardinality.ZeroToMany && ep.RequiredExtensionPointId == "ext_2"),
                });

                var providedExtension1 = Mocks.Of <IProvidedExtensionPointInfo>().First(x => x.ExtensionPointId == "ext_1");
                var extensionPoint1    = Mocks.Of <IInstalledToolkitInfo>().First(x =>
                                                                                  x.Id == "ext_toolkit_1" &&
                                                                                  x.Schema.Pattern.Id == Guid.NewGuid() &&
                                                                                  x.Schema.Pattern.ExtensionId == "ext_toolkit_1" &&
                                                                                  x.Schema.Pattern.ProvidedExtensionPoints == new[] { providedExtension1 });

                var providedExtension2 = Mocks.Of <IProvidedExtensionPointInfo>().First(x => x.ExtensionPointId == "ext_2");
                var extensionPoint2    = Mocks.Of <IInstalledToolkitInfo>().First(x =>
                                                                                  x.Id == "ext_toolkit_2" &&
                                                                                  x.Schema.Pattern.Id == Guid.NewGuid() &&
                                                                                  x.Schema.Pattern.ExtensionId == "ext_toolkit_2" &&
                                                                                  x.Schema.Pattern.ProvidedExtensionPoints == new[] { providedExtension2 });

                Mock.Get(viewInfo).Setup(x => x.Elements).Returns(new[] { elementInfo });

                var toolkit = Mocks.Of <IInstalledToolkitInfo>().First(x =>
                                                                       x.Id == "test_toolkit" &&
                                                                       x.Schema.Pattern.Id == Guid.NewGuid() &&
                                                                       x.Schema.Pattern.Views == new[] { viewInfo } &&
                                                                       x.Schema.Pattern.ProvidedExtensionPoints == new[] { providedExtension1, providedExtension2 });

                var patternManager = new Mock <IPatternManager>();

                patternManager.Setup(x => x.InstalledToolkits)
                .Returns(new[] { toolkit, extensionPoint1, extensionPoint2 });

                var serviceProvider = new Mock <IServiceProvider>();

                serviceProvider.Setup(x => x.GetService(typeof(IPatternManager)))
                .Returns(patternManager.Object);

                using (var store = new Microsoft.VisualStudio.Modeling.Store(serviceProvider.Object, typeof(Microsoft.VisualStudio.Modeling.CoreDomainModel), typeof(ProductStateStoreDomainModel)))
                    using (var tx = store.TransactionManager.BeginTransaction())
                    {
                        var productStore = store.ElementFactory.CreateElement <ProductState>();

                        var element = productStore
                                      .CreateProduct(x =>
                        {
                            x.ExtensionId  = "test_toolkit";
                            x.DefinitionId = toolkit.Schema.Pattern.Id;
                        })
                                      .CreateView(x => x.DefinitionId    = viewInfo.Id)
                                      .CreateElement(x => x.DefinitionId = this.elementInfo.Id);

                        this.elementId = element.Id;

                        element.CreateCollection(x => x.DefinitionId = this.elementInfo.Elements.ElementAt(2).Id);
                        element.CreateCollection(x => x.DefinitionId = this.elementInfo.Elements.ElementAt(2).Id);

                        element.CreateExtension(x =>
                        {
                            x.DefinitionId = extensionPoint1.Schema.Pattern.Id;
                            x.ExtensionId  = extensionPoint1.Schema.Pattern.ExtensionId;
                        });
                        element.CreateExtension(x =>
                        {
                            x.DefinitionId = extensionPoint2.Schema.Pattern.Id;
                            x.ExtensionId  = extensionPoint2.Schema.Pattern.ExtensionId;
                        });
                        element.CreateExtension(x =>
                        {
                            x.DefinitionId = extensionPoint2.Schema.Pattern.Id;
                            x.ExtensionId  = extensionPoint2.Schema.Pattern.ExtensionId;
                        });

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

                this.store = new Microsoft.VisualStudio.Modeling.Store(serviceProvider.Object, typeof(Microsoft.VisualStudio.Modeling.CoreDomainModel), typeof(ProductStateStoreDomainModel));
            }