Exemplo n.º 1
0
            private TemplatesCache InitializePageTemplatesCache()
            {
                var pageTemplates      = new List <PageTemplateDescriptor>();
                var providerByTemplate = new Hashtable <Guid, IPageTemplateProvider>();

                foreach (string providerName in this.ProviderNames)
                {
                    var provider  = PageTemplateProviderPluginFacade.GetProvider(providerName);
                    var templates = provider.GetPageTemplates().ToList();

                    pageTemplates.AddRange(templates);

                    foreach (var template in templates)
                    {
                        Verify.That(!providerByTemplate.ContainsKey(template.Id),
                                    "There are muliple layouts with the same ID: '{0}'", template.Id);

                        providerByTemplate.Add(template.Id, provider);
                    }
                }

                return(new TemplatesCache {
                    PageTemplates = pageTemplates, ProviderByTemplate = providerByTemplate
                });
            }
Exemplo n.º 2
0
        /// <summary>
        /// Gets the providers.
        /// </summary>
        /// <returns></returns>
        internal static IEnumerable <KeyValuePair <string, IPageTemplateProvider> > GetProviders()
        {
            foreach (string providerName in PageTemplateProviderRegistry.ProviderNames)
            {
                var provider = PageTemplateProviderPluginFacade.GetProvider(providerName);

                yield return(new KeyValuePair <string, IPageTemplateProvider>(providerName, provider));
            }
        }
Exemplo n.º 3
0
        public void FlushTemplates()
        {
            var resources = _resourceLocker.Resources;

            foreach (var providerName in resources.ProviderNames)
            {
                var provider = PageTemplateProviderPluginFacade.GetProvider(providerName);
                provider.FlushTemplates();
            }

            resources.ResetTemplatesCache();
        }
        private string GetRazorTemplatesRootFolder()
        {
            foreach (string providerName in PageTemplateProviderRegistry.ProviderNames)
            {
                var provider = PageTemplateProviderPluginFacade.GetProvider(providerName);
                if (provider is RazorPageTemplateProvider)
                {
                    return((provider as RazorPageTemplateProvider).TemplateDirectoryPath);
                }
            }

            throw new InvalidOperationException("Failed to get instance of " + typeof(RazorPageTemplateProvider));
        }
Exemplo n.º 5
0
        /// <summary>
        /// Gets the page templates.
        /// </summary>
        /// <returns></returns>
        public static IEnumerable <PageTemplateDescriptor> GetPageTemplates()
        {
            var result = new List <PageTemplateDescriptor>();

            foreach (string providerName in PageTemplateProviderRegistry.ProviderNames)
            {
                var provider = PageTemplateProviderPluginFacade.GetProvider(providerName);

                var templates = provider.GetPageTemplates();

                result.AddRange(templates);
            }

            return(result);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Gets the shared files.
        /// </summary>
        /// <returns></returns>
        public static IEnumerable <SharedFile> GetSharedFiles()
        {
            var result = new List <SharedFile>();

            foreach (string providerName in PageTemplateProviderRegistry.ProviderNames)
            {
                var provider = PageTemplateProviderPluginFacade.GetProvider(providerName);

                if (provider is ISharedCodePageTemplateProvider)
                {
                    var sharedFiles = (provider as ISharedCodePageTemplateProvider).GetSharedFiles();
                    result.AddRange(sharedFiles);
                }
            }

            return(result);
        }
        public IEnumerable <Element> GetRoots(SearchToken searchToken)
        {
            Element element = new Element(_context.CreateElementHandle(new PageTemplateRootEntityToken()));

            bool hasChildren = PageTemplateFacade.GetPageTemplates().Any();

            element.VisualData = new ElementVisualizedData
            {
                Label       = SR.GetString("Composite.Plugins.PageTemplateElementProvider", "PageTemplateElementProvider.RootLabel"),
                ToolTip     = SR.GetString("Composite.Plugins.PageTemplateElementProvider", "PageTemplateElementProvider.RootLabelToolTip"),
                HasChildren = hasChildren,
                Icon        = PageTemplateElementProvider.RootClosed,
                OpenedIcon  = PageTemplateElementProvider.RootOpen
            };

            const string addTemplateWorkflowType = "Composite.Plugins.Elements.ElementProviders.PageTemplateElementProvider.AddNewPageTemplateWorkflow";

            element.AddWorkflowAction(addTemplateWorkflowType, new[] { PermissionType.Add },
                                      new ActionVisualizedData
            {
                Label          = SR.GetString("Composite.Plugins.PageTemplateElementProvider", "PageTemplateElementProvider.AddTemplate"),
                ToolTip        = SR.GetString("Composite.Plugins.PageTemplateElementProvider", "PageTemplateElementProvider.AddTemplateToolTip"),
                Icon           = PageTemplateElementProvider.AddTemplate,
                Disabled       = false,
                ActionLocation = new ActionLocation
                {
                    ActionType  = ActionType.Add,
                    IsInFolder  = false,
                    IsInToolbar = true,
                    ActionGroup = PrimaryActionGroup
                }
            });

            foreach (var pageTemplateProviderName in PageTemplateProviderRegistry.ProviderNames)
            {
                var provider = PageTemplateProviderPluginFacade.GetProvider(pageTemplateProviderName);

                Verify.IsNotNull(provider, "Failed to get provider by name '{0}'", pageTemplateProviderName);

                IEnumerable <ElementAction> actions = provider.GetRootActions();

                element.AddAction(actions);
            }

            return(new [] { element });
        }