Example #1
0
        /// <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);
        }
Example #3
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);
        }