Пример #1
0
        public void OnEvent(object sender, EventArgs args)
        {
            var eventArgs = args as SitecoreEventArgs;
            if (eventArgs == null)
            {
                return;
            }
            Item item = eventArgs.Parameters[0] as Item;
            string eventName = eventArgs.EventName.Replace(':', '/');

            Database database = item != null ? item.Database ?? Context.ContentDatabase : Context.ContentDatabase;
            Item libraryItem = database.GetItem(EventHandlerLibraryPath + eventName);

            if (libraryItem == null)
            {
                return;
            }
            using (var session = new ScriptSession(ApplicationNames.Default))
            {

                foreach (Item scriptItem in libraryItem.Children)
                {
                    if (item != null)
                    {
                        session.SetItemLocationContext(item);
                    }

                    session.SetVariable("eventArgs", eventArgs);
                    string script = scriptItem["Script"];
                    if (!String.IsNullOrEmpty(script))
                    {
                        session.ExecuteScriptPart(script);
                    }
                }
            }
        }
 private void ExportResults(Message message)
 {
     Database scriptDb = Database.GetDatabase(message.Arguments["scriptDb"]);
     Item scriptItem = scriptDb.GetItem(message.Arguments["scriptID"]);
     using (var session = new ScriptSession(ApplicationNames.Default))
     {
         String script = (scriptItem.Fields[ScriptItemFieldNames.Script] != null)
             ? scriptItem.Fields[ScriptItemFieldNames.Script].Value
             : string.Empty;
         var results = ListViewer.GetFilteredItems().Select(p => p.Original).ToList();
         session.SetVariable("resultSet", results);
         session.SetVariable("formatProperty", ListViewer.Data.Property);
         var result = session.ExecuteScriptPart(script, false).First().ToString();
         SheerResponse.Download(result);
     }
 }