Пример #1
0
        /// <summary>
        /// Visits the children of the <see cref="T:System.Linq.Expressions.BinaryExpression"/>.
        /// </summary>
        /// <returns>
        /// The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.
        /// </returns>
        /// <param name="node">The expression to visit.</param>
        protected override Expression VisitBinary(BinaryExpression node)
        {
            var        op    = QueryHelper.GetOperator(node);
            Expression left  = node.Left;
            Expression right = node.Right;

            _writer.OpenBrace();

            if (QueryHelper.IsBoolean(left.Type))
            {
                Visit(left);
                _writer.WhiteSpace();
                _writer.Write(op);
                _writer.WhiteSpace();
                Visit(right);
            }
            else
            {
                VisitValue(left);
                _writer.WhiteSpace();
                _writer.Write(op);
                _writer.WhiteSpace();
                VisitValue(right);
            }

            _writer.CloseBrace();

            return(node);
        }