public void CanGenerateExpressionWithNullSortDescription() { var param = Expression.Parameter(typeof(IQueryable<ClassA>), "q"); var expr = new SortVisitor<ClassA>().Visit(param, null); Assert.AreEqual("q", expr.ToString()); }
public ElasticQueryParserConfiguration AddVisitorAfter <T>(IChainableQueryVisitor visitor) { QueryVisitor.AddVisitorAfter <T>(visitor); AggregationVisitor.AddVisitorAfter <T>(visitor); SortVisitor.AddVisitorAfter <T>(visitor); return(this); }
public ElasticQueryParserConfiguration ReplaceVisitor <T>(IChainableQueryVisitor visitor, int?newPriority = null) where T : IChainableQueryVisitor { QueryVisitor.ReplaceVisitor <T>(visitor, newPriority); AggregationVisitor.ReplaceVisitor <T>(visitor, newPriority); SortVisitor.ReplaceVisitor <T>(visitor, newPriority); return(this); }
public ElasticQueryParserConfiguration RemoveVisitor <T>() where T : IChainableQueryVisitor { QueryVisitor.RemoveVisitor <T>(); AggregationVisitor.RemoveVisitor <T>(); SortVisitor.RemoveVisitor <T>(); return(this); }
public ElasticQueryParserConfiguration AddVisitor(IChainableQueryVisitor visitor, int priority = 0) { QueryVisitor.AddVisitor(visitor, priority); AggregationVisitor.AddVisitor(visitor, priority); SortVisitor.AddVisitor(visitor, priority); return(this); }
public void CanSortBySingleAttributeDescending() { var sort = Helper.Sort("PropB.PropDateTimeNullable", ListSortDirection.Descending); var param = Expression.Parameter(typeof(IQueryable<ClassA>), "q"); var expr = new SortVisitor<ClassA>().Visit(param, sort); Assert.AreEqual("q.OrderByDescending(x => x.PropB.PropDateTimeNullable)", expr.ToString()); }
public Func <T[], T[]> Build <T>(IValueNode Sort) { var visitorContext = new QueryableSortContext(_inputType, true); var visitor = new SortVisitor <QueryableSortContext, QueryableSortOperation>(); visitor.Visit(Sort, visitorContext); Assert.Empty(visitorContext.Errors); return(elements => visitorContext.Sort(elements.AsQueryable()).ToArray()); }
public void CanSortByTwoAttributesAllAscending() { var sort = Helper.Sorts( Helper.Sort("PropInt", ListSortDirection.Ascending), Helper.Sort("PropString", ListSortDirection.Ascending)); var param = Expression.Parameter(typeof(IQueryable<ClassA>), "q"); var expr = new SortVisitor<ClassA>().Visit(param, sort); Assert.AreEqual("q.OrderBy(x => x.PropInt).ThenBy(x => x.PropString)", expr.ToString()); }
public ElasticQueryParserConfiguration UseAliases(AliasResolver defaultAliasResolver, int priority = 50) { DefaultAliasResolver = defaultAliasResolver; var visitor = new AliasedQueryVisitor(); QueryVisitor.AddVisitor(visitor, priority); SortVisitor.AddVisitor(visitor, priority); AggregationVisitor.AddVisitor(new AliasedQueryVisitor(false), priority); return(this); }
public void CanSortByThreeAttributesOneDescendingOtherAscendingLastDescending() { var sort = Helper.Sorts( Helper.Sort("PropInt", ListSortDirection.Descending), Helper.Sort("PropString", ListSortDirection.Ascending), Helper.Sort("PropB.PropDecimalNullable", ListSortDirection.Descending) ); var param = Expression.Parameter(typeof(IQueryable<ClassA>), "q"); var expr = new SortVisitor<ClassA>().Visit(param, sort); Assert.AreEqual("q.OrderByDescending(x => x.PropInt).ThenBy(x => x.PropString).ThenByDescending(x => x.PropB.PropDecimalNullable)", expr.ToString()); }
public ElasticQueryParserConfiguration AddSortVisitorBefore <T>(IChainableQueryVisitor visitor) { SortVisitor.AddVisitorBefore <T>(visitor); return(this); }