public virtual bool HasSameDomainEqualityAs(BaseDomainObject compareTo) { var domainEqualityProperties = GetDomainEqualityProperties(); foreach (PropertyInfo property in domainEqualityProperties) { object valueOfThisObject = property.GetValue(this, null); object valueToCompareTo = property.GetValue(compareTo, null); if (valueOfThisObject == null && valueToCompareTo == null) continue; if ((valueOfThisObject == null ^ valueToCompareTo == null) || (!valueOfThisObject.Equals(valueToCompareTo))) { return false; } } return domainEqualityProperties.Any() || base.Equals(compareTo); }
public virtual bool HasSameDomainEqualityAs(BaseDomainObject compareTo) { var domainEqualityProperties = GetDomainEqualityProperties(); foreach (PropertyInfo property in domainEqualityProperties) { object valueOfThisObject = property.GetValue(this, null); object valueToCompareTo = property.GetValue(compareTo, null); if (valueOfThisObject == null && valueToCompareTo == null) { continue; } if ((valueOfThisObject == null ^ valueToCompareTo == null) || (!valueOfThisObject.Equals(valueToCompareTo))) { return(false); } } return(domainEqualityProperties.Any() || base.Equals(compareTo)); }