public static void ConvertToExtensionPageType(int pageTypeID, bool updateSortOrder)
        {
            var pageType = PageType.Load(pageTypeID);

            if (!PageTypeManager.IsExtensionPageType(pageType))
            {
                PageTypeHelper.AddExtensionPageProperty(pageType);

                if (updateSortOrder)
                {
                    var source = PageTypeManager.List();
                    if ((source != null) && (source.Count > 0))
                    {
                        pageType.SortOrder = source.Last().SortOrder + 10;
                    }
                }

                pageType.IsAvailable = true;
                pageType.Save();

                //private methods for access and rules
                PageTypeHelper.SetDefaultAccessPageType(pageType.ID);
                PageTypeHelper.SetDefaultRulePageType(pageType.ID);
            }
        }
Exemplo n.º 2
0
 public ComposerFunctionUpdater()
 {
     _functions        = ReflectionHelper.GetTypesWithAttribute(typeof(FunctionTypeAttribute)).ToList();
     _contentTypes     = PageTypeHelper.GetPageTypes(ContentFunctionTypeManager.List());
     _pageTypes        = PageTypeManager.List().Select(p => new WrappedPageType(p)).ToList();
     RulesTimer        = new System.Diagnostics.Stopwatch();
     AccessTimer       = new System.Diagnostics.Stopwatch();
     ContentAreasTimer = new System.Diagnostics.Stopwatch();
 }
Exemplo n.º 3
0
        private void UpdateRules(FunctionTypeAttribute functionTypeAttribute, WrappedPageType functionType)
        {
            RulesTimer.Start();

            int functionTypeID = functionType.ID;

            var filteredPageTypes   = _pageTypes;
            var filteredContetTypes = _contentTypes;

            if (functionTypeAttribute.AvailableOnPages == AvailableOn.Specific)
            {
                filteredPageTypes = PageTypeHelper.GetPageTypes(functionTypeAttribute.AvailableOnPageTypes);
            }

            if (functionTypeAttribute.AvailableOnContent == AvailableOn.Specific)
            {
                filteredContetTypes = PageTypeHelper.GetFunctionPageTypes(functionTypeAttribute.AvailableOnContentTypes);
            }

            var rules = new List <TypeIdContentAreaId>();

            foreach (var pageType in filteredPageTypes)
            {
                var realPageType = PageType.Load(pageType.ID);
                if (realPageType == null)
                {
                    continue;
                }
                var pageAreas = ContentAreaManager.GetAvailableContentAreasViaProperty(realPageType);

                foreach (var pageArea in pageAreas)
                {
                    rules.Add(new TypeIdContentAreaId(pageType.ID, pageArea.ID));
                }
            }

            foreach (var contentType in filteredContetTypes)
            {
                if (contentType.ID == functionTypeID)
                {
                    continue;
                }

                List <ContentAreaData> contentAreas = ContentAreaManager.GetAvailableContentAreasViaProperty(contentType.ID);

                foreach (var contentArea in contentAreas)
                {
                    rules.Add(new TypeIdContentAreaId(contentType.ID, contentArea.ID));
                }
            }

            SyncRules(functionTypeID, rules);

            RulesTimer.Stop();
        }
Exemplo n.º 4
0
        private void UpdateFunction(Type function)
        {
            var functionAttribute = AttributeHelper.GetFunctionAttribute(function);
            var functionType      = PageTypeHelper.GetFunctionPageType(function);

            if (functionType == null)
            {
                return;
            }

            UpdateRules(functionAttribute, functionType);
            UpdateAccess(functionAttribute, functionType);
            UpdateContentAreas(functionType);
        }
Exemplo n.º 5
0
        private void UpdateRules(FunctionTypeAttribute functionTypeAttribute, PageType functionType)
        {
            int functionTypeID = functionType.ID;

            RuleContentAreaCollection ruleCaCollection = RuleContentAreaManager.XMLRuleContentAreaList();

            ruleCaCollection.RemoveRuleContentFunction(functionTypeID);

            var filteredPageTypes   = _pageTypes;
            var filteredContetTypes = _contentTypes;

            if (functionTypeAttribute.AvailableOnPages == AvailableOn.Specific)
            {
                filteredPageTypes = PageTypeHelper.GetPageTypes(functionTypeAttribute.AvailableOnPageTypes);
            }

            if (functionTypeAttribute.AvailableOnContent == AvailableOn.Specific)
            {
                filteredContetTypes = PageTypeHelper.GetFunctionPageTypes(functionTypeAttribute.AvailableOnContentTypes);
            }

            foreach (var pageType in filteredPageTypes)
            {
                List <ContentAreaData> pageAreas = ContentAreaManager.GetAvailableContentAreasViaProperty(pageType);

                foreach (var pageArea in pageAreas)
                {
                    ruleCaCollection.AddRule(pageType.ID, pageArea.ID, functionTypeID);
                }
            }

            foreach (var contentType in filteredContetTypes)
            {
                if (contentType.ID == functionTypeID)
                {
                    continue;
                }

                List <ContentAreaData> contentAreas = ContentAreaManager.GetAvailableContentAreasViaProperty(contentType.ID);

                foreach (var contentArea in contentAreas)
                {
                    ruleCaCollection.AddRule(contentType.ID, contentArea.ID, functionTypeID);
                }
            }

            RuleContentAreaManager.SaveRuleContentAreaCollection(ruleCaCollection);
        }
        private void UpdatePage(Type page)
        {
            try
            {
                var pageAttribute = AttributeHelper.GetPageTypeAttribute(page) as ExtensionPageTypeAttribute;
                var pageType      = PageTypeHelper.GetPageType(page);

                if (pageAttribute == null || pageType == null)
                {
                    return;
                }

                UpdatePageRegistration(pageAttribute, pageType);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                throw;
            }
        }
Exemplo n.º 7
0
 public ComposerFunctionUpdater()
 {
     _functions    = ReflectionHelper.GetTypesWithAttribute(typeof(FunctionTypeAttribute)).ToList();
     _contentTypes = PageTypeHelper.GetPageTypes(ContentFunctionTypeManager.List());
     _pageTypes    = PageTypeManager.List();
 }