/// <summary> /// Gets a detailled equality comparison result. /// </summary> /// <returns>The equality result.</returns> /// <param name="x">The first object.</param> /// <param name="y">The second object.</param> public EqualityResult GetEqualityResult(TParent x, TParent y) { try { var valueX = valueProvider.GetValue(x); var valueY = valueProvider.GetValue(y); return(valueRule.GetEqualityResult(valueX, valueY)); } catch (Exception e) { var ruleResult = new EqualityRuleResult(Name, false, exception: e); return(resultFactory.GetEqualityResult(new[] { ruleResult })); } }
/// <summary> /// Gets the 'child' value from the parent object. /// </summary> /// <returns>The value.</returns> /// <param name="parent">Parent.</param> public TValue GetValue(TParent parent) => provider.GetValue(parent);