public void Process(GetMastersArgs args)
        {
            Assert.ArgumentNotNull(args, nameof(args));

            var database          = args.Item.Database;
            var insertOptionRules = new List <Item>();

            foreach (var folder in Folders)
            {
                var rulesInFolder = GetInsertOptionsRules(database, folder);
                insertOptionRules.AddRange(rulesInFolder);
            }

            var rules = RuleFactory.GetRules <InsertOptionsRuleContext>(insertOptionRules, "Rule");

            if (rules == null)
            {
                return;
            }

            var ruleContext = new InsertOptionsRuleContext
            {
                Item          = args.Item,
                InsertOptions = args.Masters
            };

            rules.Run(ruleContext);
        }
示例#2
0
        private void GetMasters(Item parent, GetMastersArgs args)
        {
            foreach (var scriptItem in parent.Children.Where(p => p.IsPowerShellScript() || p.IsPowerShellLibrary()))
            {
                if (!RulesUtils.EvaluateRules(scriptItem[FieldNames.ShowRule], args.Item))
                {
                    continue;
                }

                if (scriptItem.IsPowerShellScript())
                {
                    args.Masters.Add(scriptItem);
                }
                else
                {
                    GetMasters(scriptItem, args);
                }
            }
        }
示例#3
0
        public void Process(GetMastersArgs args)
        {
            Assert.ArgumentNotNull(args, "args");
            try
            {
                if (!ServiceAuthorizationManager.IsUserAuthorized(WebServiceSettings.ServiceExecution, Context.User.Name))
                {
                    return;
                }

                foreach (var root in ModuleManager.GetFeatureRoots(IntegrationPoints.ContentEditorInsertItemFeature))
                {
                    GetMasters(root, args);
                }
            }
            catch (Exception e)
            {
                PowerShellLog.Error("Exception while getting item Masters", e);
            }
        }