/// <inheritdoc/> public bool IsElementEqualsOrExcluded( TModel candidate1, TModel candidate2, ICollection <IBaseAdditionalProcessing> additionalProcessings, IEnumerable <IComparerExclusion> exclusions) { if (EqualityComparerHelperStrategyUtils.IsPropertyExcluded(exclusions, typeof(TModel), this.propertyName)) { return(true); } var value1 = this.func.Invoke(candidate1) as TTargetModel; var value2 = this.func.Invoke(candidate2) as TTargetModel; return(this.comparer.Equals(value1, value2, additionalProcessings, exclusions)); }
/// <inheritdoc/> public bool IsElementEqualsOrExcluded( TModel candidate1, TModel candidate2, ICollection <IBaseAdditionalProcessing> additionalProcessings, IEnumerable <IComparerExclusion> exclusions) { if (EqualityComparerHelperStrategyUtils.IsPropertyExcluded(exclusions, typeof(TModel), this.propertyName)) { return(true); } var valuesCandidate1 = this.func.Invoke(candidate1); var valuesCandidate2 = this.func.Invoke(candidate2); var result = EqualityComparerHelperStrategyUtils.AreListEquivalent( valuesCandidate1, valuesCandidate2, (x, y) => this.comparer.Equals(x, y, additionalProcessings, exclusions)); return(result); }