protected override void VisitAndAlso(Content.Query.Expressions.AndAlsoExpression expression) { var andAlso = (AndAlsoExpression)expression; QueryComplete leftClause = null; if (!(andAlso.Left is TrueExpression)) { leftClause = VisitInner(andAlso.Left); } QueryComplete rightClause = null; if (!(andAlso.Right is TrueExpression)) { rightClause = VisitInner(andAlso.Right); } if (leftClause != null && rightClause != null) { var queryComplete = QueryBuilder.Query.And(leftClause, rightClause); SetQuery(queryComplete); } else if (leftClause != null) { SetQuery(leftClause); } else if (rightClause != null) { SetQuery(rightClause); } }
protected override void VisitAndAlso(Content.Query.Expressions.AndAlsoExpression expression) { string leftClause = ""; string leftViewName = ""; if (!(expression.Left is TrueExpression)) { var leftVisitor = VisitInner(expression.Left); leftClause = leftVisitor.WhereClause; leftViewName = leftVisitor.ViewName; if (leftVisitor.OrderClause != null) { this.OrderClause = leftVisitor.OrderClause; } this.eqUserKeys.AddRange(leftVisitor.EQUserKeys); } string rightClause = ""; string rightViewName = ""; if (!(expression.Right is TrueExpression)) { var rightVisitor = VisitInner(expression.Right); rightClause = rightVisitor.WhereClause; rightViewName = rightVisitor.ViewName; if (rightVisitor.OrderClause != null) { this.OrderClause = rightVisitor.OrderClause; } this.eqUserKeys.AddRange(rightVisitor.EQUserKeys); } if (!string.IsNullOrEmpty(leftClause) && !string.IsNullOrEmpty(rightClause)) { whereClause.AppendFormat(string.Format(" ({0} && {1})", leftClause, rightClause)); viewNameBuilder.AppendFormat("_({0}_AND_{1})", leftViewName, rightViewName); } else if (!string.IsNullOrEmpty(leftClause)) { whereClause.AppendFormat(string.Format("{0}", leftClause)); viewNameBuilder.AppendFormat("_{0}", leftViewName); } else if (!string.IsNullOrEmpty(rightClause)) { whereClause.AppendFormat(string.Format("{0}", rightClause)); viewNameBuilder.AppendFormat("_{0}", rightViewName); } }