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