namespace Umbraco.Cms.Core.Events;
///
/// Represent event data, for events that support cancellation, and expose an impacted object.
///
/// The type of the exposed, impacted object.
public class CancellableObjectEventArgs : CancellableObjectEventArgs,
IEquatable>
{
public CancellableObjectEventArgs(TEventObject? eventObject, bool canCancel, EventMessages messages, IDictionary additionalData)
: base(eventObject, canCancel, messages, additionalData)
{
}
public CancellableObjectEventArgs(TEventObject? eventObject, bool canCancel, EventMessages eventMessages)
: base(eventObject, canCancel, eventMessages)
{
}
public CancellableObjectEventArgs(TEventObject? eventObject, EventMessages eventMessages)
: base(eventObject, eventMessages)
{
}
public CancellableObjectEventArgs(TEventObject? eventObject, bool canCancel)
: base(eventObject, canCancel)
{
}
public CancellableObjectEventArgs(TEventObject? eventObject)
: base(eventObject)
{
}
///
/// Gets or sets the impacted object.
///
///
/// This is protected so that inheritors can expose it with their own name
///
protected new TEventObject? EventObject
{
get => (TEventObject?)base.EventObject;
set => base.EventObject = value;
}
public static bool operator ==(
CancellableObjectEventArgs left,
CancellableObjectEventArgs right) => Equals(left, right);
public static bool operator !=(
CancellableObjectEventArgs left,
CancellableObjectEventArgs right) => !Equals(left, right);
public bool Equals(CancellableObjectEventArgs? other)
{
if (other is null)
{
return false;
}
if (ReferenceEquals(this, other))
{
return true;
}
return base.Equals(other) && EqualityComparer.Default.Equals(EventObject, other.EventObject);
}
public override bool Equals(object? obj)
{
if (obj is null)
{
return false;
}
if (ReferenceEquals(this, obj))
{
return true;
}
if (obj.GetType() != GetType())
{
return false;
}
return Equals((CancellableObjectEventArgs)obj);
}
public override int GetHashCode()
{
unchecked
{
if (EventObject is not null)
{
return (base.GetHashCode() * 397) ^ EqualityComparer.Default.GetHashCode(EventObject);
}
return base.GetHashCode() * 397;
}
}
}