/// <summary> /// Determines if item is equal to Value. /// </summary> /// <param name="data"> /// The data to compare against. /// </param> /// <returns> /// Returns true if data is equal to Value. /// </returns> protected override bool Evaluate(T data) { Debug.Assert(this.IsValid); int result = CustomTypeComparer.Compare <T>(this.Value.GetCastValue(), data); return(0 == result); }
/// <summary> /// Determines if item is less than Value. /// </summary> /// <param name="item"> /// The data to compare against. /// </param> /// <returns> /// Returns true if data is less than Value. /// </returns> protected override bool Evaluate(T item) { Debug.Assert(this.IsValid, "is valid"); int result = CustomTypeComparer.Compare <T>(this.Value.GetCastValue(), item); return(result >= 0); }
/// <summary> /// Evaluates data and determines if it is between /// StartValue and EndValue. /// </summary> /// <param name="data"> /// The data to evaluate. /// </param> /// <returns> /// Returns true if data is between StartValue and EndValue, /// false otherwise. /// </returns> protected override bool Evaluate(T data) { Debug.Assert(this.IsValid, "is valid"); int startValueComparedToData = CustomTypeComparer.Compare <T>(this.StartValue.GetCastValue(), data); int endValueComparedToData = CustomTypeComparer.Compare <T>(this.EndValue.GetCastValue(), data); bool isBetweenForward = startValueComparedToData < 0 && endValueComparedToData > 0; bool isBetweenBackwards = endValueComparedToData < 0 && startValueComparedToData > 0; return(isBetweenForward || isBetweenBackwards); }