public ISpecification <T> Skip <T>(ISpecification <T> spec, int count) { MongoSpecification <T> mongoSpec = (MongoSpecification <T>)spec; mongoSpec.Skip = count; return(mongoSpec); }
public ISpecification <T> Shard <T>(ISpecification <T> spec, ShardParams shardParams) { MongoSpecification <T> mongoSpec = (MongoSpecification <T>)spec; mongoSpec.ShardParams = shardParams; return(mongoSpec); }
public ISpecification <T> Take <T>(ISpecification <T> spec, int count) { MongoSpecification <T> mongoSpec = (MongoSpecification <T>)spec; mongoSpec.Take = count; return(mongoSpec); }
public IOrderedSpecification <T> ThenBy <T, K>(IOrderedSpecification <T> spec, Expression <Func <T, K> > keySelector, QueryOrder order) { MongoSpecification <T> mongoSpec = (MongoSpecification <T>)spec; ((IList <QueryOrderExpression>)mongoSpec.ThenByExpressions).Add(QueryOrderExpression.CreateTheneBy(keySelector, order)); return(mongoSpec); }
public IOrderedSpecification <T> OrderBy <T, K>(ISpecification <T> spec, Expression <Func <T, K> > keySelector, QueryOrder order) { MongoSpecification <T> mongoSpec = (MongoSpecification <T>)spec; mongoSpec.OrderByExpression = QueryOrderExpression.CreateOrderBy(keySelector, order); return(mongoSpec); }
public virtual int Count <T>(ISpecification <T> spec) { MongoSpecification <T> mongoSpec = (MongoSpecification <T>)spec; var cq = mongoSpec.GetQuery(); if (mongoSpec.CriteriaExpression != null) { cq = cq.Where(mongoSpec.CriteriaExpression); } return(cq.Count()); }
public virtual PagingResult <T> FindPaging <T>(ISpecification <T> spec) { MongoSpecification <T> mongoSpec = (MongoSpecification <T>)spec; int count = 0; if (mongoSpec.Take > 0) { var cq = mongoSpec.GetQuery(); if (mongoSpec.CriteriaExpression != null) { cq = cq.Where(mongoSpec.CriteriaExpression); } count = cq.Count(); } PagingResult <T> result = new PagingResult <T>(count); result.AddRange(mongoSpec.Query.ToList()); return(result); }