using System; using System.Collections.Generic; using System.Xml.Linq; namespace Umbraco.Core.Events { public class ExportEventArgs : CancellableObjectEventArgs>, IEquatable> { /// /// Constructor accepting a single entity instance /// /// /// /// public ExportEventArgs(TEntity eventObject, XElement xml, bool canCancel) : base(new List { eventObject }, canCancel) { Xml = xml; } /// /// Constructor accepting a single entity instance /// and cancellable by default /// /// /// public ExportEventArgs(TEntity eventObject, string elementName) : base(new List {eventObject}, true) { Xml = new XElement(elementName); } protected ExportEventArgs(IEnumerable eventObject, bool canCancel) : base(eventObject, canCancel) { } protected ExportEventArgs(IEnumerable eventObject) : base(eventObject) { } /// /// Returns all entities that were exported during the operation /// public IEnumerable ExportedEntities { get { return EventObject; } } /// /// Returns the xml relating to the export event /// public XElement Xml { get; private set; } public bool Equals(ExportEventArgs other) { if (ReferenceEquals(null, other)) return false; if (ReferenceEquals(this, other)) return true; return base.Equals(other) && Equals(Xml, other.Xml); } public override bool Equals(object obj) { if (ReferenceEquals(null, obj)) return false; if (ReferenceEquals(this, obj)) return true; if (obj.GetType() != this.GetType()) return false; return Equals((ExportEventArgs) obj); } public override int GetHashCode() { unchecked { return (base.GetHashCode() * 397) ^ (Xml != null ? Xml.GetHashCode() : 0); } } public static bool operator ==(ExportEventArgs left, ExportEventArgs right) { return Equals(left, right); } public static bool operator !=(ExportEventArgs left, ExportEventArgs right) { return !Equals(left, right); } } }