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); } }