PageRenderTime 37ms CodeModel.GetById 10ms RepoModel.GetById 1ms app.codeStats 0ms

/BlogEngine/DotNetSlave.BusinessLogic/Packaging/Pager.cs

#
C# | 89 lines | 50 code | 6 blank | 33 comment | 2 complexity | 73576ba53dc0eecc08b9cebb09c89aac MD5 | raw file
Possible License(s): LGPL-2.1, Apache-2.0, BSD-3-Clause
  1. using System.Collections.Generic;
  2. namespace BlogEngine.Core.Packaging
  3. {
  4. /// <summary>
  5. /// Gallery pager
  6. /// </summary>
  7. public class Pager
  8. {
  9. #region Private members
  10. private static int _currentPage;
  11. private static int _itemCount;
  12. private static string _pkgType;
  13. #endregion
  14. /// <summary>
  15. /// Pager
  16. /// </summary>
  17. /// <param name="currentPage">Current page</param>
  18. /// <param name="itemCount">Item count</param>
  19. /// <param name="pkgType">Package type</param>
  20. public Pager(int currentPage, int itemCount, string pkgType)
  21. {
  22. _currentPage = currentPage;
  23. _itemCount = itemCount;
  24. _pkgType = pkgType;
  25. }
  26. /// <summary>
  27. /// Current page
  28. /// </summary>
  29. public int CurrentPage
  30. {
  31. get { return _currentPage; }
  32. }
  33. /// <summary>
  34. /// Pager items
  35. /// </summary>
  36. public List<PagerItem> PageItems
  37. {
  38. get
  39. {
  40. var items = new List<PagerItem>();
  41. for (int i = 0; i <= (int)(_itemCount / Constants.PageSize); i++)
  42. {
  43. items.Add(i == _currentPage ? new PagerItem(i, true, _pkgType) : new PagerItem(i, false, _pkgType));
  44. }
  45. return items;
  46. }
  47. }
  48. }
  49. /// <summary>
  50. /// Page Item
  51. /// </summary>
  52. public class PagerItem
  53. {
  54. private readonly string _pkgType;
  55. /// <summary>
  56. /// Constructor
  57. /// </summary>
  58. /// <param name="pageNumber"></param>
  59. /// <param name="current"></param>
  60. /// <param name="pkgType"></param>
  61. public PagerItem(int pageNumber, bool current, string pkgType = "")
  62. {
  63. PageNumber = pageNumber;
  64. Current = current;
  65. _pkgType = pkgType;
  66. }
  67. /// <summary>
  68. /// Page number
  69. /// </summary>
  70. public int PageNumber { get; set; }
  71. /// <summary>
  72. /// Current selected page
  73. /// </summary>
  74. public bool Current { get; set; }
  75. /// <summary>
  76. /// Page link
  77. /// </summary>
  78. public string PageLink
  79. {
  80. get { return string.Format("GalleryGetPackages({0},'{1}'); return false;", PageNumber, _pkgType); }
  81. }
  82. }
  83. }