Esempio n. 1
0
        private static bool IsPredicateArrayCorrect(byte[] left, byte[] right, SqlComparisonBooleanExpressionType comparisonOperator)
        {
            if (comparisonOperator != SqlComparisonBooleanExpressionType.Equals && comparisonOperator != SqlComparisonBooleanExpressionType.NotEqual)
            {
                throw new NotImplementedException( );
            }

            var equals = left.SequenceEqual(right);

            return(comparisonOperator == SqlComparisonBooleanExpressionType.Equals && equals);
        }
Esempio n. 2
0
        public static bool IsPredicateCorrect(object left, object right, SqlComparisonBooleanExpressionType comparisonOperator)
        {
            if (left == null && right == null)
            {
                return(true);
            }

            if (left == null || right == null)
            {
                return(false);
            }

            if (left.GetType(  ) == typeof(byte[]) && right.GetType(  ) == typeof(byte[]))
            {
                return(IsPredicateArrayCorrect((byte[])left, (byte[])right, comparisonOperator));
            }

            if (left is IComparable == false || right is IComparable == false)
            {
                return(false);
            }

            var comparison = (( IComparable )left).CompareTo(( IComparable )right);

            switch (comparisonOperator)
            {
            case SqlComparisonBooleanExpressionType.Equals: return(comparison == 0);

            case SqlComparisonBooleanExpressionType.LessThan: return(comparison < 0);

            case SqlComparisonBooleanExpressionType.ValueEqual: return(comparison == 0);

            case SqlComparisonBooleanExpressionType.NotEqual: return(comparison != 0);

            case SqlComparisonBooleanExpressionType.GreaterThan: return(comparison > 0);

            case SqlComparisonBooleanExpressionType.GreaterThanOrEqual: return(comparison >= 0);

            case SqlComparisonBooleanExpressionType.LessOrGreaterThan: return(comparison != 0);

            case SqlComparisonBooleanExpressionType.LessThanOrEqual: return(comparison <= 0);

            case SqlComparisonBooleanExpressionType.NotLessThan: return(comparison >= 0);

            case SqlComparisonBooleanExpressionType.NotGreaterThan: return(comparison <= 0);

            default:
                throw new NotImplementedException();
            }
        }