/// <summary>
        /// Compares the specified values using specified relational operator.
        /// </summary>
        /// <param name="leftValue">The first value.</param>
        /// <param name="rightValue">The second value.</param>
        /// <param name="relationalOperator">The relational operator.</param>
        /// <returns>Result of the given relational operator.</returns>
        private static bool Compare(object leftValue, object rightValue, ConditionRelationalOperator relationalOperator)
        {
#if !NETSTANDARD1_0
            System.Collections.IComparer comparer = StringComparer.InvariantCulture;
#else
            System.Collections.IComparer comparer = StringComparer.Ordinal;
#endif
            PromoteTypes(ref leftValue, ref rightValue);
            switch (relationalOperator)
            {
            case ConditionRelationalOperator.Equal:
                return(comparer.Compare(leftValue, rightValue) == 0);

            case ConditionRelationalOperator.NotEqual:
                return(comparer.Compare(leftValue, rightValue) != 0);

            case ConditionRelationalOperator.Greater:
                return(comparer.Compare(leftValue, rightValue) > 0);

            case ConditionRelationalOperator.GreaterOrEqual:
                return(comparer.Compare(leftValue, rightValue) >= 0);

            case ConditionRelationalOperator.LessOrEqual:
                return(comparer.Compare(leftValue, rightValue) <= 0);

            case ConditionRelationalOperator.Less:
                return(comparer.Compare(leftValue, rightValue) < 0);

            default:
                throw new NotSupportedException($"Relational operator {relationalOperator} is not supported.");
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Compares the specified values using specified relational operator.
        /// </summary>
        /// <param name="leftValue">The first value.</param>
        /// <param name="rightValue">The second value.</param>
        /// <param name="relationalOperator">The relational operator.</param>
        /// <returns>Result of the given relational operator.</returns>
        private static object Compare(object leftValue, object rightValue, ConditionRelationalOperator relationalOperator)
        {
            StringComparer comparer = StringComparer.InvariantCulture;

            PromoteTypes(ref leftValue, ref rightValue);
            switch (relationalOperator)
            {
            case ConditionRelationalOperator.Equal:
                return(comparer.Compare(leftValue, rightValue) == 0);

            case ConditionRelationalOperator.NotEqual:
                return(comparer.Compare(leftValue, rightValue) != 0);

            case ConditionRelationalOperator.Greater:
                return(comparer.Compare(leftValue, rightValue) > 0);

            case ConditionRelationalOperator.GreaterOrEqual:
                return(comparer.Compare(leftValue, rightValue) >= 0);

            case ConditionRelationalOperator.LessOrEqual:
                return(comparer.Compare(leftValue, rightValue) <= 0);

            case ConditionRelationalOperator.Less:
                return(comparer.Compare(leftValue, rightValue) < 0);

            default:
                throw new NotSupportedException("Relational operator " + relationalOperator + " is not supported.");
            }
        }
Exemplo n.º 3
0
        public static object Compare(object v1, object v2, ConditionRelationalOperator op)
        {
            if (v1 == null || v2 == null)
            {
                return(null);
            }

            IComparer comparer = Comparer.Default;

            PromoteTypes(ref v1, ref v2);
            switch (op)
            {
            case ConditionRelationalOperator.Equal:
                return(comparer.Compare(v1, v2) == 0);

            case ConditionRelationalOperator.NotEqual:
                return(comparer.Compare(v1, v2) != 0);

            case ConditionRelationalOperator.Greater:
                return(comparer.Compare(v1, v2) > 0);

            case ConditionRelationalOperator.GreaterOrEqual:
                return(comparer.Compare(v1, v2) >= 0);

            case ConditionRelationalOperator.LessOrEqual:
                return(comparer.Compare(v1, v2) <= 0);

            case ConditionRelationalOperator.Less:
                return(comparer.Compare(v1, v2) < 0);

            default:
                throw new NotSupportedException("Relational operator " + op + " is not supported.");
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="ConditionRelationalExpression" /> class.
 /// </summary>
 /// <param name="leftExpression">The left expression.</param>
 /// <param name="rightExpression">The right expression.</param>
 /// <param name="relationalOperator">The relational operator.</param>
 public ConditionRelationalExpression(ConditionExpression leftExpression, ConditionExpression rightExpression, ConditionRelationalOperator relationalOperator)
 {
     this.LeftExpression = leftExpression;
     this.RightExpression = rightExpression;
     this.RelationalOperator = relationalOperator;
 }
        /// <summary>
        /// Compares the specified values using specified relational operator.
        /// </summary>
        /// <param name="leftValue">The first value.</param>
        /// <param name="rightValue">The second value.</param>
        /// <param name="relationalOperator">The relational operator.</param>
        /// <returns>Result of the given relational operator.</returns>
        private static object Compare(object leftValue, object rightValue, ConditionRelationalOperator relationalOperator)
        {
#if NETFX_CORE
            StringComparer comparer = StringComparer.Ordinal;
            PromoteTypes(ref leftValue, ref rightValue);
            string leftValueText = leftValue.ToString();
            string rightValueText = rightValue.ToString();
#else
            StringComparer comparer = StringComparer.InvariantCulture;
            PromoteTypes(ref leftValue, ref rightValue);
            var leftValueText = leftValue;
            var rightValueText = rightValue;
#endif




            switch (relationalOperator)
            {
                case ConditionRelationalOperator.Equal:
                    return comparer.Compare(leftValueText, rightValueText) == 0;

                case ConditionRelationalOperator.NotEqual:
                    return comparer.Compare(leftValueText, rightValueText) != 0;

                case ConditionRelationalOperator.Greater:
                    return comparer.Compare(leftValueText, rightValueText) > 0;

                case ConditionRelationalOperator.GreaterOrEqual:
                    return comparer.Compare(leftValueText, rightValueText) >= 0;

                case ConditionRelationalOperator.LessOrEqual:
                    return comparer.Compare(leftValueText, rightValueText) <= 0;

                case ConditionRelationalOperator.Less:
                    return comparer.Compare(leftValueText, rightValueText) < 0;

                default:
                    throw new NotSupportedException("Relational operator " + relationalOperator + " is not supported.");
            }
        }
        /// <summary>
        /// Compares the specified values using specified relational operator.
        /// </summary>
        /// <param name="leftValue">The first value.</param>
        /// <param name="rightValue">The second value.</param>
        /// <param name="relationalOperator">The relational operator.</param>
        /// <returns>Result of the given relational operator.</returns>
        private static object Compare(object leftValue, object rightValue, ConditionRelationalOperator relationalOperator)
        {
            StringComparer comparer = StringComparer.InvariantCulture;
            PromoteTypes(ref leftValue, ref rightValue);
            switch (relationalOperator)
            {
                case ConditionRelationalOperator.Equal:
                    return comparer.Compare(leftValue, rightValue) == 0;

                case ConditionRelationalOperator.NotEqual:
                    return comparer.Compare(leftValue, rightValue) != 0;

                case ConditionRelationalOperator.Greater:
                    return comparer.Compare(leftValue, rightValue) > 0;

                case ConditionRelationalOperator.GreaterOrEqual:
                    return comparer.Compare(leftValue, rightValue) >= 0;

                case ConditionRelationalOperator.LessOrEqual:
                    return comparer.Compare(leftValue, rightValue) <= 0;

                case ConditionRelationalOperator.Less:
                    return comparer.Compare(leftValue, rightValue) < 0;

                default:
                    throw new NotSupportedException("Relational operator " + relationalOperator + " is not supported.");
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="ConditionRelationalExpression" /> class.
 /// </summary>
 /// <param name="leftExpression">The left expression.</param>
 /// <param name="rightExpression">The right expression.</param>
 /// <param name="relationalOperator">The relational operator.</param>
 public ConditionRelationalExpression(ConditionExpression leftExpression, ConditionExpression rightExpression, ConditionRelationalOperator relationalOperator)
 {
     LeftExpression     = leftExpression;
     RightExpression    = rightExpression;
     RelationalOperator = relationalOperator;
 }
Exemplo n.º 8
0
 public ConditionRelationalExpression(ConditionExpression par1, ConditionExpression par2, ConditionRelationalOperator op)
 {
     this.par1 = par1;
     this.par2 = par2;
     this.op   = op;
 }
 public ConditionRelationalExpression(ConditionExpression par1, ConditionExpression par2, ConditionRelationalOperator op) 
 {
     this.par1 = par1;
     this.par2 = par2;
     this.op = op;
 }
Exemplo n.º 10
0
        public static object Compare(object v1, object v2, ConditionRelationalOperator op) 
        {
            if (v1 == null || v2 == null)
                return null;

            IComparer comparer = Comparer.Default;
            PromoteTypes(ref v1, ref v2);
            switch (op)
            {
                case ConditionRelationalOperator.Equal:
                    return comparer.Compare(v1, v2) == 0;

                case ConditionRelationalOperator.NotEqual:
                    return comparer.Compare(v1, v2) != 0;

                case ConditionRelationalOperator.Greater:
                    return comparer.Compare(v1, v2) > 0;

                case ConditionRelationalOperator.GreaterOrEqual:
                    return comparer.Compare(v1, v2) >= 0;

                case ConditionRelationalOperator.LessOrEqual:
                    return comparer.Compare(v1, v2) <= 0;

                case ConditionRelationalOperator.Less:
                    return comparer.Compare(v1, v2) < 0;

                default:
                    throw new NotSupportedException("Relational operator " + op + " is not supported.");
            }
        }