using System; using System.Collections.Generic; using Orchard.ContentManagement; using Orchard.ContentManagement.Handlers; using Orchard.Environment.Extensions; using Orchard.Events; namespace Orchard.Core.Contents.Handlers { public interface IRulesManager : IEventHandler { void TriggerEvent(string category, string type, Func> tokensContext); } [OrchardFeature("Orchard.Core.Contents.Rules")] public class RulePartHandler : ContentHandler { public RulePartHandler(IRulesManager rulesManager) { OnPublished( (context, part) => rulesManager.TriggerEvent("Content", "Published", () => new Dictionary { { "Content", context.ContentItem } })); OnPublished( (context, part) => rulesManager.TriggerEvent("Content", "Published", () => new Dictionary { { "Content", context.ContentItem } } )); OnRemoved( (context, part) => rulesManager.TriggerEvent("Content", "Removed", () => new Dictionary { { "Content", context.ContentItem } })); OnVersioned( (context, part1, part2) => rulesManager.TriggerEvent("Content", "Versioned", () => new Dictionary { { "Content", part1.ContentItem } })); OnCreated( (context, part) => rulesManager.TriggerEvent("Content", "Created", () => new Dictionary { { "Content", context.ContentItem } })); } } }