/// <summary> /// Compares two opening times for equality. /// </summary> /// <param name="OpeningTimes">An opening time to compare with.</param> /// <returns>True if both match; False otherwise.</returns> public Boolean Equals(OpeningTime OpeningTimes) => Periods.Count().Equals(OpeningTimes.Periods.Count()) && Periods.All(period => OpeningTimes.Periods.Contains(period)) && On.Equals(OpeningTimes.On) && ((!UnstructuredText.IsNullOrEmpty() && !OpeningTimes.UnstructuredText.IsNullOrEmpty()) || (UnstructuredText.IsNullOrEmpty() && OpeningTimes.UnstructuredText.IsNullOrEmpty() && UnstructuredText.Equals(OpeningTimes.UnstructuredText)));
/// <summary> /// Return the hash code of this object. /// </summary> /// <returns>The hash code of this object.</returns> public override Int32 GetHashCode() { unchecked { return(Periods.Aggregate(0, (hashCode, period) => hashCode ^ period.GetHashCode()) ^ On.GetHashCode() * 3 ^ (UnstructuredText.IsNullOrEmpty() ? UnstructuredText.GetHashCode() : 0)); } }