using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using XP.Common.Database.Models; namespace XP.Common.Database.Helpers { /// /// 分页计算辅助工具 /// public static class PaginationHelper { /// /// 计算分页偏移量(SQLite OFFSET) /// public static int CalculateOffset(PaginationRequest pagination) { if (pagination.PageIndex < 1) pagination.PageIndex = 1; if (pagination.PageSize < 1) pagination.PageSize = 20; return (pagination.PageIndex - 1) * pagination.PageSize; } /// /// 验证并修正分页参数 /// public static PaginationRequest ValidateAndFix(PaginationRequest pagination) { var fixedPagination = new PaginationRequest { PageIndex = pagination.PageIndex < 1 ? 1 : pagination.PageIndex, PageSize = pagination.PageSize < 1 ? 20 : (pagination.PageSize > 1000 ? 1000 : pagination.PageSize), OrderBy = pagination.OrderBy ?? string.Empty }; return fixedPagination; } } }