public OQuery Attach(OQuery query) { //if (query._letMap != null && q) //if (query._top != _top) //{ // _top = query._top; //} //if (query._skip != _skip) //{ // _skip = query._skip; //} if (query._orderByClauses.Any()) { query._orderByClauses.ForEach(c => _orderByClauses.Add(c)); } if (query._whereClauses.Any()) { query._whereClauses.ForEach(c => _whereClauses.Add(c)); } //Let's // if (query._letMap.Any()) { foreach (var let in query._letMap) { _letMap[let.Key] = let.Value; } } //TODO if (query._select != _select) { query._select = _select; } if (query._expandClauses.Any()) { query._expandClauses.ForEach(c => _expandClauses.Add(c)); } //LET, SELECT return(this); }
public OQuery Attach(OQuery query) { //if (query._letMap != null && q) //if (query._top != _top) //{ // _top = query._top; //} //if (query._skip != _skip) //{ // _skip = query._skip; //} if (query._orderByClauses.Any()) { query._orderByClauses.ForEach(c => _orderByClauses.Add(c)); } if (query._whereClauses.Any()) { query._whereClauses.ForEach(c => _whereClauses.Add(c)); } //Let's // if (query._letMap.Any()) { foreach (var let in query._letMap) { _letMap[let.Key] = let.Value; } } //TODO if (query._select != _select) { query._select = _select; } if (query._expandClauses.Any()) { query._expandClauses.ForEach(c => _expandClauses.Add(c)); } //LET, SELECT return this; }
public OQuery Attach(OQuery src, IExpression expression) { if (expression is TakeExpression && expression.OQueryExpression != null) { src.Take(expression.OQueryExpression._top); } else if (expression is SkipExpression && expression.OQueryExpression != null) { src.Skip(expression.OQueryExpression._skip); } else if (expression is OrderExpression) { var orderExpression = (OrderExpression)expression; if (orderExpression.Descending) src.OrderbyDesc(orderExpression.FieldName); else src.Orderby(orderExpression.FieldName); } else if (expression is AndAlsoExpression) { var andAlsoExpression = (AndAlsoExpression) expression; if (andAlsoExpression.Left != null) Attach(src, andAlsoExpression.Left); if (andAlsoExpression.Right != null) Attach(src, andAlsoExpression.Right); } else if (expression is OrElseExpression) { var orElseExpression = (OrElseExpression) expression; if (orElseExpression.Left != null) Attach(src, orElseExpression.Left); if (orElseExpression.Right != null) Attach(src, orElseExpression.Right); } if (expression.OQueryExpression != null) { src.Attach(expression.OQueryExpression); } if (expression is Expression) { var exp = (Expression)expression; if (exp.InnerExpression != null) return Attach(src, exp.InnerExpression); } return src; }