/// <summary> /// Accepts the specified visitor by calling its <see cref="IQueryModelVisitor.VisitOrdering"/> method. /// </summary> /// <param name="visitor">The visitor to accept.</param> /// <param name="queryModel">The query model in whose context this clause is visited.</param> /// <param name="orderByClause">The <see cref="OrderByClause"/> in whose context this item is visited.</param> /// <param name="index">The index of this item in the <paramref name="orderByClause"/>'s <see cref="OrderByClause.Orderings"/> collection.</param> public virtual void Accept (IQueryModelVisitor visitor, QueryModel queryModel, OrderByClause orderByClause, int index) { ArgumentUtility.CheckNotNull ("visitor", visitor); ArgumentUtility.CheckNotNull ("queryModel", queryModel); ArgumentUtility.CheckNotNull ("orderByClause", orderByClause); visitor.VisitOrdering (this, queryModel, orderByClause, index); }
protected override QueryModel ApplyNodeSpecificSemantics (QueryModel queryModel, ClauseGenerationContext clauseGenerationContext) { ArgumentUtility.CheckNotNull ("queryModel", queryModel); var clause = new OrderByClause(); clause.Orderings.Add (new Ordering (GetResolvedKeySelector (clauseGenerationContext), OrderingDirection.Desc)); queryModel.BodyClauses.Add (clause); return queryModel; }
public virtual void VisitOrderByClause (OrderByClause orderByClause, QueryModel queryModel, int index) { ArgumentUtility.CheckNotNull ("orderByClause", orderByClause); ArgumentUtility.CheckNotNull ("queryModel", queryModel); VisitOrderings (orderByClause.Orderings, queryModel, orderByClause); }
protected virtual void VisitOrderings (ObservableCollection<Ordering> orderings, QueryModel queryModel, OrderByClause orderByClause) { ArgumentUtility.CheckNotNull ("queryModel", queryModel); ArgumentUtility.CheckNotNull ("orderByClause", orderByClause); ArgumentUtility.CheckNotNull ("orderings", orderings); foreach (var indexValuePair in orderings.AsChangeResistantEnumerableWithIndex()) indexValuePair.Value.Accept (this, queryModel, orderByClause, indexValuePair.Index); }
public virtual void VisitOrdering (Ordering ordering, QueryModel queryModel, OrderByClause orderByClause, int index) { ArgumentUtility.CheckNotNull ("ordering", ordering); ArgumentUtility.CheckNotNull ("queryModel", queryModel); ArgumentUtility.CheckNotNull ("orderByClause", orderByClause); // nothing to do here }
public override void VisitOrderByClause(OrderByClause orderByClause, QueryModel queryModel, int index) { QueryText.Append(" sort "); for (int i = 0; i < orderByClause.Orderings.Count; i++) { GetAqlExpression(orderByClause.Orderings[i].Expression, queryModel); QueryText.AppendFormat(" {0} {1} ", orderByClause.Orderings[i].OrderingDirection == OrderingDirection.Asc ? "asc" : "desc", i != orderByClause.Orderings.Count - 1 ? " , " : string.Empty); } base.VisitOrderByClause(orderByClause, queryModel, index); }
/// <summary> /// Clones this clause. /// </summary> /// <param name="cloneContext">The clones of all query source clauses are registered with this <see cref="CloneContext"/>.</param> /// <returns>A clone of this clause.</returns> public OrderByClause Clone (CloneContext cloneContext) { ArgumentUtility.CheckNotNull ("cloneContext", cloneContext); var result = new OrderByClause(); foreach (var ordering in Orderings) { var orderingClone = ordering.Clone (cloneContext); result.Orderings.Add (orderingClone); } return result; }