using System; using System.Linq; namespace Umbraco.Core.Events { /// /// Extension methods for cancellable event operations /// public static class EventExtensions { /// /// Raises the event and checks if a cancelation has occurred, if so it checks if any messages have been /// added to the event messages collection and if not it adds a default cancelation message /// /// /// /// /// /// /// /// public static bool IsRaisedEventCancelled( this TypedEventHandler eventHandler, EventMessages evtMsgs, Func args, TSender sender) where TArgs : CancellableEventArgs { var evtArgs = args(evtMsgs); if (eventHandler != null) { eventHandler(sender, evtArgs); } return evtArgs.Cancel; } /// /// Raises the event and returns a boolean value indicating if the event was cancelled /// /// /// /// /// /// /// public static bool IsRaisedEventCancelled( this TypedEventHandler eventHandler, TArgs args, TSender sender) where TArgs : CancellableEventArgs { if (eventHandler != null) eventHandler(sender, args); return args.Cancel; } /// /// Raises the event with EventMessages /// /// /// /// /// /// /// public static void RaiseEvent( this TypedEventHandler eventHandler, EventMessages evtMsgs, Func args, TSender sender) where TArgs : EventArgs { if (eventHandler != null) { var evtArgs = args(evtMsgs); eventHandler(sender, evtArgs); } } /// /// Raises the event /// /// /// /// /// /// public static void RaiseEvent( this TypedEventHandler eventHandler, TArgs args, TSender sender) where TArgs : EventArgs { if (eventHandler != null) eventHandler(sender, args); } } }