feat: 列表接口分页排序与验证
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace TakeoutSaaS.Shared.Abstractions.Results;
|
||||
|
||||
/// <summary>
|
||||
/// 分页结果包装,携带列表与总条数等元数据。
|
||||
/// </summary>
|
||||
/// <typeparam name="T">数据类型。</typeparam>
|
||||
public sealed class PagedResult<T>
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据列表。
|
||||
/// </summary>
|
||||
public IReadOnlyList<T> Items { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 当前页码,从 1 开始。
|
||||
/// </summary>
|
||||
public int Page { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 每页条数。
|
||||
/// </summary>
|
||||
public int PageSize { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 总条数。
|
||||
/// </summary>
|
||||
public int TotalCount { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 总页数。
|
||||
/// </summary>
|
||||
public int TotalPages { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 初始化分页结果。
|
||||
/// </summary>
|
||||
public PagedResult(IReadOnlyList<T> items, int page, int pageSize, int totalCount)
|
||||
{
|
||||
Items = items;
|
||||
Page = page;
|
||||
PageSize = pageSize;
|
||||
TotalCount = totalCount;
|
||||
TotalPages = pageSize == 0 ? 0 : (int)Math.Ceiling(totalCount / (double)pageSize);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user