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