namespace OrpaonVision.Core.Results;
///
/// 分页结果。
///
/// 数据项类型。
public sealed class PagedResult
{
///
/// 数据项列表。
///
public IReadOnlyList Items { get; init; } = [];
///
/// 总记录数。
///
public int TotalCount { get; init; }
///
/// 页码(从1开始)。
///
public int PageIndex { get; init; }
///
/// 每页大小。
///
public int PageSize { get; init; }
///
/// 总页数。
///
public int TotalPages => (int)Math.Ceiling((double)TotalCount / PageSize);
///
/// 是否有上一页。
///
public bool HasPreviousPage => PageIndex > 1;
///
/// 是否有下一页。
///
public bool HasNextPage => PageIndex < TotalPages;
///
/// 创建成功的分页结果。
///
/// 数据项列表。
/// 总记录数。
/// 页码。
/// 每页大小。
/// 分页结果。
public static PagedResult Success(IReadOnlyList items, int totalCount, int pageIndex, int pageSize)
{
return new PagedResult
{
Items = items,
TotalCount = totalCount,
PageIndex = pageIndex,
PageSize = pageSize
};
}
}