/// <summary> /// Build individual page nodes /// </summary> public List <Page> BuildPageNodes(int collectionSize, int selectedPageNumber, int itemsPerPage, int numberOfNodesInPaginatedList) { var lastPage = _pageInCollectionService.GetLastPageInCollection(collectionSize, itemsPerPage); // If we have less then numberOfNodesInPaginatedList * itemPage in our collectionSize, // then we know we have a partial list if (numberOfNodesInPaginatedList * itemsPerPage > collectionSize) { return(BuildPartialList(collectionSize, selectedPageNumber, itemsPerPage)); } // We are at the first collection of nodes in paginated list: 1, 2 & 3 if (selectedPageNumber < numberOfNodesInPaginatedList - 2) { return(BuildStartList(selectedPageNumber)); } // We are at the last collection of nodes in paginated list : last -2 , last - 1 & last if (selectedPageNumber > lastPage - (numberOfNodesInPaginatedList - 2)) { return(BuildEndList(collectionSize, selectedPageNumber, itemsPerPage, numberOfNodesInPaginatedList)); } // We are at an in between collection of node in paginated list return(BuildFullList(selectedPageNumber)); }
public PaginatedMetaModel GetMetaData(int collectionSize, int selectedPageNumber, int itemsPerPage) { var lastPage = _pageInCollectionService.GetLastPageInCollection(collectionSize, itemsPerPage); // Cover > out of range exceptions if (lastPage < selectedPageNumber) { selectedPageNumber = lastPage; } // Cover < out of range exceptions if (selectedPageNumber < 1) { selectedPageNumber = 1; } if (collectionSize == 0) { return(GetCollectionSizeZeroModel()); } _pages = _nodeService.BuildPageNodes(collectionSize, selectedPageNumber, itemsPerPage, NumberOfNodesInPaginatedList); return(new PaginatedMetaModel { PreviousPage = _previousPageService.BuildPreviousPage(_pages, collectionSize, selectedPageNumber, itemsPerPage), Pages = _pages, NextPage = _nextPageService.BuildNextPage( _pages, collectionSize, selectedPageNumber, itemsPerPage, NumberOfNodesInPaginatedList ) }); }
/// <summary> /// Determine if we need a Next Page /// </summary> private bool DisplayNextPage(int collectionSize, int selectedPageNumber, int itemsPerPage) { return(selectedPageNumber < _pageInCollectionService.GetLastPageInCollection(collectionSize, itemsPerPage)); }