Conditional() public static method

public static Conditional ( SqlExpression testExpression, SqlExpression ifTrue ) : SqlConditionalExpression
testExpression SqlExpression
ifTrue SqlExpression
return SqlConditionalExpression
コード例 #1
0
            public override SqlConditionalExpression Deserialize(BinaryReader reader)
            {
                var testExp  = ReadExpression(reader);
                var trueExp  = ReadExpression(reader);
                var falseExp = ReadExpression(reader);

                return(SqlExpression.Conditional(testExp, trueExp, falseExp));
            }
コード例 #2
0
        public static void FormatToString()
        {
            var trueExp   = SqlExpression.FunctionCall("testResult");
            var falseExp  = SqlExpression.Constant(false);
            var testExp   = SqlExpression.Equal(SqlExpression.VariableReference("a"), SqlExpression.Constant(22));
            var condition = SqlExpression.Conditional(testExp, trueExp, falseExp);

            var expected = "CASE WHEN :a = 22 THEN testResult() ELSE FALSE";

            Assert.AreEqual(expected, condition.ToString());
        }
コード例 #3
0
        public static void SimpleCase()
        {
            var first            = SqlExpression.Constant(34);
            var second           = SqlExpression.Add(SqlExpression.Constant(10), SqlExpression.Constant(24));
            var condition        = SqlExpression.Equal(first, second);
            var returnExpression = SqlExpression.Constant("It was equal");
            var conditional      = SqlExpression.Conditional(condition, returnExpression);

            var result = conditional.EvaluateToConstant(null, null);

            Assert.IsNotNull(result);
            Assert.IsFalse(Field.IsNullField(result));
            Assert.AreEqual("It was equal", result.Value.ToString());
        }
コード例 #4
0
        public static void CaseNestedFalse()
        {
            var first         = SqlExpression.Constant(34);
            var second        = SqlExpression.Add(SqlExpression.Constant(10), SqlExpression.Constant(34));
            var condition     = SqlExpression.Equal(first, second);
            var ifTrue        = SqlExpression.Constant("It was equal");
            var ifFalseReturn = SqlExpression.Constant("It was not equal");
            var ifFalse       = SqlExpression.Conditional(SqlExpression.Constant(true), ifFalseReturn);

            var conditional = SqlExpression.Conditional(condition, ifTrue, ifFalse);

            var result = conditional.EvaluateToConstant(null, null);

            Assert.IsNotNull(result);
            Assert.IsFalse(Field.IsNullField(result));
            Assert.AreEqual("It was not equal", result.Value.ToString());
        }
コード例 #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="conditional"></param>
        /// <returns></returns>
        public virtual SqlExpression VisitConditional(SqlConditionalExpression conditional)
        {
            var test    = conditional.TestExpression;
            var ifTrue  = conditional.TrueExpression;
            var ifFalse = conditional.FalseExpression;

            if (test != null)
            {
                test = Visit(test);
            }
            if (ifTrue != null)
            {
                ifTrue = Visit(ifTrue);
            }
            if (ifFalse != null)
            {
                ifFalse = Visit(ifFalse);
            }

            return(SqlExpression.Conditional(test, ifTrue, ifFalse));
        }