using System.Collections.Generic; using System.Security.Permissions; using Umbraco.Core.Models; using Umbraco.Core.Models.EntityBase; namespace Umbraco.Core.Events { /// /// Event args for a strongly typed object that can support cancellation /// /// [HostProtection(SecurityAction.LinkDemand, SharedState = true)] public class CancellableObjectEventArgs : CancellableEventArgs { public CancellableObjectEventArgs(T eventObject, bool canCancel, EventMessages messages, IDictionary additionalData) : base(canCancel, messages, additionalData) { EventObject = eventObject; } public CancellableObjectEventArgs(T eventObject, bool canCancel, EventMessages eventMessages) : base(canCancel, eventMessages) { EventObject = eventObject; } public CancellableObjectEventArgs(T eventObject, EventMessages eventMessages) : this(eventObject, true, eventMessages) { } public CancellableObjectEventArgs(T eventObject, bool canCancel) : base(canCancel) { EventObject = eventObject; } public CancellableObjectEventArgs(T eventObject) : this(eventObject, true) { } /// /// Returns the object relating to the event /// /// /// This is protected so that inheritors can expose it with their own name /// protected T EventObject { get; set; } } }