/
ivanstrike
/
tasker
Обзор
Документация
Войти
/
ivanstrike
/
tasker
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Models/PaginationParams.cs
43 строки
1 KB
ivanstrike
Лабораторная работа 2
08 ноя 2025, 11:16
08 ноя 2025, 11:16
ec39293
Код
Авторство
О чём код?
namespace TaskerApi.Models; /// <summary> /// Параметры пагинации для списковых endpoint'ов /// </summary> public class PaginationParams { private const int MaxPageSize = 100; private int _pageSize = 20; /// <summary> /// Номер страницы (начиная с 1) /// </summary> public int Page { get; set; } = 1; /// <summary> /// Количество элементов на странице (максимум 100) /// </summary> public int PageSize { get => _pageSize; set => _pageSize = value > MaxPageSize ? MaxPageSize : value; } /// <summary> /// Вычисляет смещение для запроса к БД /// </summary> public int Skip => (Page - 1) * PageSize; } /// <summary> /// Обертка для пагинированного результата /// </summary> public class PaginatedResult<T> { public List<T> Items { get; set; } = new(); public int Page { get; set; } public int PageSize { get; set; } public int TotalCount { get; set; } public int TotalPages => (int)Math.Ceiling(TotalCount / (double)PageSize); public bool HasPrevious => Page > 1; public bool HasNext => Page < TotalPages; }