Paging.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using System;
  2. using Quadarax.Foundation.Core.Data.Interface;
  3. namespace Quadarax.Foundation.Core.Data
  4. {
  5. public class Paging : IPaging
  6. {
  7. #region *** Properties ***
  8. /// <summary>
  9. /// Zero based index
  10. /// </summary>
  11. public int Page { get; }
  12. /// <summary>
  13. /// Number of items per page
  14. /// </summary>
  15. public int PageSize { get; }
  16. /// <summary>
  17. /// Defines if paging is disabled
  18. /// </summary>
  19. public bool IsDisabled { get; }
  20. #endregion
  21. #region *** Constructors ***
  22. public Paging(int page, int pageSize)
  23. {
  24. IsDisabled = pageSize == 0;
  25. Page = page;
  26. PageSize = pageSize;
  27. }
  28. public Paging(int takeCount)
  29. {
  30. IsDisabled = takeCount == 0;
  31. Page = 1;
  32. PageSize = takeCount;
  33. }
  34. public Paging()
  35. {
  36. IsDisabled = true;
  37. }
  38. public static Paging NoPaging()
  39. {
  40. return new Paging();
  41. }
  42. #endregion
  43. #region *** Overrides ***
  44. public override string ToString()
  45. {
  46. return $"Paging:IsDisabled={IsDisabled};Page={Page};PageSize={PageSize}";
  47. }
  48. #endregion
  49. }
  50. }