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;
}
}
}