namespace Umbraco.Cms.Core.Events;
///
/// Represents event data, for events that support cancellation, and expose impacted objects.
///
/// The type of the exposed, impacted objects.
public class CancellableEnumerableObjectEventArgs : CancellableObjectEventArgs>,
IEquatable>
{
public CancellableEnumerableObjectEventArgs(IEnumerable eventObject, bool canCancel, EventMessages messages, IDictionary additionalData)
: base(eventObject, canCancel, messages, additionalData)
{
}
public CancellableEnumerableObjectEventArgs(IEnumerable eventObject, bool canCancel, EventMessages eventMessages)
: base(eventObject, canCancel, eventMessages)
{
}
public CancellableEnumerableObjectEventArgs(IEnumerable eventObject, EventMessages eventMessages)
: base(eventObject, eventMessages)
{
}
public CancellableEnumerableObjectEventArgs(IEnumerable eventObject, bool canCancel)
: base(eventObject, canCancel)
{
}
public CancellableEnumerableObjectEventArgs(IEnumerable eventObject)
: base(eventObject)
{
}
public bool Equals(CancellableEnumerableObjectEventArgs? other)
{
if (other is null || other.EventObject is null)
{
return false;
}
if (ReferenceEquals(this, other))
{
return true;
}
return EventObject?.SequenceEqual(other.EventObject) ?? false;
}
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((CancellableEnumerableObjectEventArgs)obj);
}
public override int GetHashCode()
{
if (EventObject is not null)
{
return HashCodeHelper.GetHashCode(EventObject);
}
return base.GetHashCode();
}
}