PagingExt.cs 972 B

123456789101112131415161718192021222324252627
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. namespace Quadarax.Foundation.Core.Data.Extensions
  4. {
  5. public static class PagingExt
  6. {
  7. public static IQueryable<TEntity> Page<TEntity>(this IQueryable<TEntity> queryable, int? page, int? pageSize, int overlap = 0)
  8. {
  9. if (!(page.HasValue && pageSize.HasValue))
  10. return queryable;
  11. pageSize = pageSize.GetValueOrDefault(int.MaxValue);
  12. return queryable.Skip(page.Value * pageSize.Value).Take(pageSize.Value + overlap);
  13. }
  14. public static IEnumerable<TEntity> Page<TEntity>(this IEnumerable<TEntity> queryable, int? page, int? pageSize, int overlap = 0)
  15. {
  16. if (!(page.HasValue && pageSize.HasValue))
  17. return queryable;
  18. pageSize = pageSize.GetValueOrDefault(int.MaxValue);
  19. return queryable.Skip(page.Value * pageSize.Value).Take(pageSize.Value + overlap);
  20. }
  21. }
  22. }