/// <summary> /// Gets the hash code /// </summary> /// <returns>Hash code</returns> public override int GetHashCode() { unchecked // Overflow is fine, just wrap { var hashCode = 41; // Suitable nullity checks etc, of course :) if (Ean != null) { hashCode = hashCode * 59 + Ean.GetHashCode(); } if (Type != null) { hashCode = hashCode * 59 + Type.GetHashCode(); } if (Status != null) { hashCode = hashCode * 59 + Status.GetHashCode(); } if (Name != null) { hashCode = hashCode * 59 + Name.GetHashCode(); } if (Streams != null) { hashCode = hashCode * 59 + Streams.GetHashCode(); } if (LevelSubjects != null) { hashCode = hashCode * 59 + LevelSubjects.GetHashCode(); } if (Models != null) { hashCode = hashCode * 59 + Models.GetHashCode(); } if (TrialAccessUrl != null) { hashCode = hashCode * 59 + TrialAccessUrl.GetHashCode(); } if (DefaultAccessUrl != null) { hashCode = hashCode * 59 + DefaultAccessUrl.GetHashCode(); } if (ShortDescription != null) { hashCode = hashCode * 59 + ShortDescription.GetHashCode(); } if (LongDescription != null) { hashCode = hashCode * 59 + LongDescription.GetHashCode(); } if (Media != null) { hashCode = hashCode * 59 + Media.GetHashCode(); } if (RelatedProducts != null) { hashCode = hashCode * 59 + RelatedProducts.GetHashCode(); } if (BundledProducts != null) { hashCode = hashCode * 59 + BundledProducts.GetHashCode(); } return(hashCode); } }
/// <summary> /// Returns true if Product instances are equal /// </summary> /// <param name="other">Instance of Product to be compared</param> /// <returns>Boolean</returns> public bool Equals(Product other) { if (ReferenceEquals(null, other)) { return(false); } if (ReferenceEquals(this, other)) { return(true); } return (( Ean == other.Ean || Ean != null && Ean.Equals(other.Ean) ) && ( Type == other.Type || Type != null && Type.Equals(other.Type) ) && ( Status == other.Status || Status != null && Status.Equals(other.Status) ) && ( Name == other.Name || Name != null && Name.Equals(other.Name) ) && ( Streams == other.Streams || Streams != null && Streams.SequenceEqual(other.Streams) ) && ( LevelSubjects == other.LevelSubjects || LevelSubjects != null && LevelSubjects.SequenceEqual(other.LevelSubjects) ) && ( Models == other.Models || Models != null && Models.SequenceEqual(other.Models) ) && ( TrialAccessUrl == other.TrialAccessUrl || TrialAccessUrl != null && TrialAccessUrl.Equals(other.TrialAccessUrl) ) && ( DefaultAccessUrl == other.DefaultAccessUrl || DefaultAccessUrl != null && DefaultAccessUrl.Equals(other.DefaultAccessUrl) ) && ( ShortDescription == other.ShortDescription || ShortDescription != null && ShortDescription.Equals(other.ShortDescription) ) && ( LongDescription == other.LongDescription || LongDescription != null && LongDescription.Equals(other.LongDescription) ) && ( Media == other.Media || Media != null && Media.Equals(other.Media) ) && ( RelatedProducts == other.RelatedProducts || RelatedProducts != null && RelatedProducts.SequenceEqual(other.RelatedProducts) ) && ( BundledProducts == other.BundledProducts || BundledProducts != null && BundledProducts.SequenceEqual(other.BundledProducts) )); }