public ISpecification <T> Skip <T>(ISpecification <T> spec, int count) { NHibernateSpecification <T> nhSpec = (NHibernateSpecification <T>)spec; nhSpec.Query = nhSpec.Query.Skip(count); return(nhSpec); }
public ISpecification <T> Shard <T>(ISpecification <T> spec, ShardParams shardParams) { NHibernateSpecification <T> nhSpec = (NHibernateSpecification <T>)spec; nhSpec.ShardParams = shardParams; return(nhSpec); }
public int Count(ISpecification <TEntity> spec) { NHibernateSpecification <TEntity> nhSpec = (NHibernateSpecification <TEntity>)spec; var cq = nhSpec.GetSession().Query <TEntity>(); if (nhSpec.CriteriaExpression != null) { cq = cq.Where(nhSpec.CriteriaExpression); } return(cq.Count()); }
public IOrderedSpecification <T> ThenBy <T, K>(IOrderedSpecification <T> spec, Expression <Func <T, K> > keySelector, QueryOrder order) { NHibernateSpecification <T> nhSpec = (NHibernateSpecification <T>)spec; if (order == QueryOrder.Ascending) { nhSpec.Query = ((IOrderedQueryable <T>)nhSpec.Query).ThenBy(keySelector); } else { nhSpec.Query = ((IOrderedQueryable <T>)nhSpec.Query).ThenByDescending(keySelector); } return(nhSpec); }
public PagingResult <TEntity> FindPaging(ISpecification <TEntity> spec) { NHibernateSpecification <TEntity> nhSpec = (NHibernateSpecification <TEntity>)spec; var cq = nhSpec.GetSession().Query <TEntity>(); if (nhSpec.CriteriaExpression != null) { cq = cq.Where(nhSpec.CriteriaExpression); } PagingResult <TEntity> result = new PagingResult <TEntity>(cq.Count()); result.AddRange(nhSpec.Query.ToList()); return(result); }