Exemple #1
0
        protected static IEnumerable <Item> RunEnumeration(string scriptSource, Item item)
        {
            Assert.ArgumentNotNull(scriptSource, "scriptSource");
            Assert.ArgumentNotNull(item, "item");
            scriptSource = scriptSource.Replace("script:", "").Trim();
            var scriptItem = item.Database.GetItem(scriptSource);

            using (var session = ScriptSessionManager.NewSession(ApplicationNames.Default, true))
            {
                var script = (scriptItem.Fields[ScriptItemFieldNames.Script] != null)
                    ? scriptItem.Fields[ScriptItemFieldNames.Script].Value
                    : string.Empty;
                script = string.Format("{0}\n{1}", ScriptSession.GetDataContextSwitch(item), script);
                return(session.ExecuteScriptPart(script, false).Cast <Item>());
            }
        }
Exemple #2
0
        protected static IEnumerable <Item> RunEnumeration(string scriptSource, Item item)
        {
            Assert.ArgumentNotNull(scriptSource, "scriptSource");
            scriptSource = scriptSource.Replace("script:", "").Trim();
            var database   = item?.Database ?? Sitecore.Context.ContentDatabase ?? Sitecore.Context.Database;
            var scriptItem = ID.IsID(scriptSource) ? database.GetItem(ID.Parse(scriptSource)) : database.GetItem(scriptSource);

            if (!scriptItem.IsPowerShellScript())
            {
                return(new[] { scriptItem ?? item });
            }
            using (var session = ScriptSessionManager.NewSession(ApplicationNames.Default, true))
            {
                var script = scriptItem[Templates.Script.Fields.ScriptBody] ?? string.Empty;
                script = $"{ScriptSession.GetDataContextSwitch(item)}\n{script}";
                return(session.ExecuteScriptPart(script, false).Where(i => i is Item).Cast <Item>());
            }
        }