コード例 #1
0
 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);
 }
コード例 #2
0
        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;
        }
コード例 #3
0
ファイル: Pager.cs プロジェクト: jammycakes/badbehavior.net
 public Pager(Uri baseUrl, LogQuery baseQuery, LogResultSet results)
 {
     this.baseUrl = baseUrl;
     this.baseQuery = baseQuery;
     this.results = results;
 }