Exemplo n.º 1
0
 public static ISpecificationWithOrdering <T> ThenByDescending <T>(
     this ISpecificationWithOrdering <T> specification,
     Expression <Func <T, object> > keySelector)
 {
     return(specification
            .ThenBy(OrderingDirection.Descending, keySelector));
 }
Exemplo n.º 2
0
 public static ISpecificationWithOrdering <T> TakePage <T>(
     this ISpecificationWithOrdering <T> specification,
     int pageNumber,
     int pageSize)
 {
     return(specification
            .TakePage(new PaginationExpression(pageSize, pageNumber)));
 }
Exemplo n.º 3
0
 public static ISpecification <T> WithNoOrder <T>(
     this ISpecificationWithOrdering <T> specification)
 {
     return(new Specification <T>
            (
                criteria: specification.Criteria,
                groupBy:  specification.GroupBy,
                takePage: specification.TakePage
            ));
 }
Exemplo n.º 4
0
 public static ISpecificationWithOrdering <T> WhereAny <T>(
     this ISpecificationWithOrdering <T> specification)
 {
     return(new SpecificationWithOrdering <T>
            (
                criteria: null,
                groupBy:  specification.GroupBy,
                orderBy:  specification.OrderBy,
                takePage: specification.TakePage
            ));
 }
Exemplo n.º 5
0
 public static ISpecificationWithOrdering <T> GroupBy <T>(
     this ISpecificationWithOrdering <T> specification,
     Expression <Func <T, object> > keySelector)
 {
     return(new SpecificationWithOrdering <T>
            (
                criteria: specification.Criteria,
                groupBy:  keySelector,
                orderBy:  specification.OrderBy,
                takePage: specification.TakePage
            ));
 }
Exemplo n.º 6
0
 public static ISpecificationWithOrdering <T> Where <T>(
     this ISpecificationWithOrdering <T> specification,
     Expression <Func <T, bool> > predicate)
 {
     return(new SpecificationWithOrdering <T>
            (
                criteria: predicate,
                groupBy:  specification.GroupBy,
                orderBy:  specification.OrderBy,
                takePage: specification.TakePage
            ));
 }
Exemplo n.º 7
0
 private static ISpecificationWithOrdering <T> TakePage <T>(
     this ISpecificationWithOrdering <T> specification,
     PaginationExpression?takePage)
 {
     return(new SpecificationWithOrdering <T>
            (
                criteria: specification.Criteria,
                groupBy:  specification.GroupBy,
                orderBy:  specification.OrderBy,
                takePage: takePage
            ));
 }
Exemplo n.º 8
0
        private static ISpecificationWithOrdering <T> ThenBy <T>(
            this ISpecificationWithOrdering <T> specification,
            OrderingDirection direction,
            Expression <Func <T, object> > keySelector)
        {
            var orderBy = specification.OrderBy.ToList();

            orderBy.Add(new OrderingExpression <T>(direction, keySelector));

            return(new SpecificationWithOrdering <T>
                   (
                       criteria: specification.Criteria,
                       groupBy:  specification.GroupBy,
                       orderBy:  orderBy,
                       takePage: specification.TakePage
                   ));
        }
Exemplo n.º 9
0
 public static ISpecificationWithOrdering <T> TakeAll <T>(
     this ISpecificationWithOrdering <T> specification)
 {
     return(specification
            .TakePage(null));
 }