/// <summary> /// Compares two SessionAction for equality. /// </summary> /// <param name="SessionAction">An SessionAction to compare with.</param> /// <returns>True if both match; False otherwise.</returns> public Boolean Equals(SessionAction SessionAction) { if (SessionAction is null) { return(false); } return(Nature.Equals(SessionAction.Nature) && DateTime.Equals(SessionAction.DateTime) && ((!Id.HasValue && !SessionAction.Id.HasValue) || (Id.HasValue && SessionAction.Id.HasValue && Id.Value.Equals(SessionAction.Id.Value))) && ((!Parameter.IsNotNullOrEmpty() && !SessionAction.Parameter.IsNotNullOrEmpty()) || (Parameter.IsNotNullOrEmpty() && SessionAction.Parameter.IsNotNullOrEmpty() && Parameter.Equals(SessionAction.Parameter))) && ((!RelatedSessionEventId.HasValue && !SessionAction.RelatedSessionEventId.HasValue) || (RelatedSessionEventId.HasValue && SessionAction.RelatedSessionEventId.HasValue && RelatedSessionEventId.Value.Equals(SessionAction.RelatedSessionEventId.Value)))); }