public void CanGetPageNumbers(int pageNumber, int totalPages, params int[] expected) { var query = new LogQuery() { PageNumber = pageNumber }; var results = new LogResultSet() { Page = pageNumber, TotalPages = totalPages }; var pageNumbers = new Pager(null, query, results).GetPageNumbers(); CollectionAssert.AreEqual(expected, pageNumbers); }
public LogResultSet Query(LogQuery criteria) { var result = new LogResultSet(); result.TotalEntries = Reader.Count(criteria); if (criteria.PageSize == 0) { criteria.PageNumber = 1; criteria.PageSize = result.TotalEntries; } result.PageSize = criteria.PageSize; result.TotalPages = (result.TotalEntries + result.PageSize - 1) / result.PageSize; result.Page = criteria.PageNumber; if (result.Page < 1) result.Page = 1; if (result.Page > result.TotalPages) result.Page = result.TotalPages; if (result.Page >= 1) result.LogEntries = Reader.GetLogEntries(criteria) .Skip((result.Page - 1) * result.PageSize) .Take(result.PageSize).ToList(); else result.LogEntries = new List<LogEntry>(0); return result; }
public Pager(Uri baseUrl, LogQuery baseQuery, LogResultSet results) { this.baseUrl = baseUrl; this.baseQuery = baseQuery; this.results = results; }