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); } }
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(); }
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(); }
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); }
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; } }
public ComposerFunctionUpdater() { _functions = ReflectionHelper.GetTypesWithAttribute(typeof(FunctionTypeAttribute)).ToList(); _contentTypes = PageTypeHelper.GetPageTypes(ContentFunctionTypeManager.List()); _pageTypes = PageTypeManager.List(); }