namespace Dpz.Core.Public.ViewModel;

/// <summary>
/// Represents the PaginationBase type.
/// </summary>
public abstract class PaginationBase
{
    private const int MaxPageSize = 500;
    private const int MinPageSize = 1;
    private const int MinPageIndex = 1;

    /// <summary>
    /// 页容量
    /// </summary>
    public virtual int PageSize
    {
        get;
        set
        {
            field = value switch
            {
                > MaxPageSize => MaxPageSize,
                < MinPageSize => MinPageSize,
                _ => value
            };
        }
    } = 20;

    private int _pageIndex = 1;

    /// <summary>
    /// 页码
    /// </summary>
    public int PageIndex
    {
        get => _pageIndex;
        set => _pageIndex = _pageIndex < MinPageIndex ? MinPageSize : value;
    }
}
评论加载中...