/// <summary> /// Gets the hash code /// </summary> /// <returns>Hash code</returns> public override int GetHashCode() { // Overflow is fine, just wrap unchecked { var hashCode = 41; // Suitable nullity checks etc, of course :) #pragma warning disable CA1307 // Specify StringComparison // ReSharper disable once NonReadonlyMemberInGetHashCode if (Id != null) { // ReSharper disable once NonReadonlyMemberInGetHashCode hashCode = (hashCode * 59) + Id.GetHashCode(); } // ReSharper disable once NonReadonlyMemberInGetHashCode if (Name != null) { // ReSharper disable once NonReadonlyMemberInGetHashCode hashCode = (hashCode * 59) + Name.GetHashCode(); } // ReSharper disable once NonReadonlyMemberInGetHashCode if (Venue != null) { // ReSharper disable once NonReadonlyMemberInGetHashCode hashCode = (hashCode * 59) + Venue.GetHashCode(); } // ReSharper disable once NonReadonlyMemberInGetHashCode if (TalkDrafts != null) { // ReSharper disable once NonReadonlyMemberInGetHashCode hashCode = (hashCode * 59) + TalkDrafts.GetHashCode(); } // ReSharper disable once NonReadonlyMemberInGetHashCode if (Friends != null) { // ReSharper disable once NonReadonlyMemberInGetHashCode hashCode = (hashCode * 59) + Friends.GetHashCode(); } #pragma warning restore CA1307 // Specify StringComparison return(hashCode); } }
/// <inheritdoc /> /// <summary> /// Returns true if MeetupDraft instances are equal /// </summary> /// <param name="other">Instance of MeetupDraft to be compared</param> /// <returns>Boolean</returns> public bool Equals(MeetupDraft other) { #pragma warning disable IDE0041 // Use 'is null' check if (ReferenceEquals(null, other)) { return(false); } if (ReferenceEquals(this, other)) { return(true); } #pragma warning disable CA1309 // Use ordinal stringcomparison #pragma warning disable CA1307 // Specify StringComparison #pragma warning disable SA1515 // Single-line comment must be preceded by blank line #pragma warning disable SA1009 // Closing parenthesis must be spaced correctly return (#pragma warning disable SA1119 // Statement must not use unnecessary parenthesis ( // ReSharper disable once RedundantNameQualifier string.Equals(Id, other.Id) || (Id != null && Id.Equals(other.Id)) ) && ( // ReSharper disable once RedundantNameQualifier string.Equals(Name, other.Name) || (Name != null && Name.Equals(other.Name)) ) && ( // ReSharper disable once RedundantNameQualifier string.Equals(Venue, other.Venue) || (Venue != null && Venue.Equals(other.Venue)) ) && ( TalkDrafts == other.TalkDrafts || (TalkDrafts != null && TalkDrafts.SequenceEqual(other.TalkDrafts)) ) && ( Friends == other.Friends || (Friends != null && Friends.SequenceEqual(other.Friends)) )); #pragma warning restore SA1119 // Statement must not use unnecessary parenthesis #pragma warning restore SA1009 // Closing parenthesis must be spaced correctly #pragma warning restore SA1515 // Single-line comment must be preceded by blank line #pragma warning restore CA1307 // Specify StringComparison #pragma warning restore CA1309 // Use ordinal stringcomparison }