diff --git a/Directory.Build.props b/Directory.Build.props index 53b4d68..1d748e5 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,5 +1,5 @@ - 2.4.2 + 2.4.3 \ No newline at end of file diff --git a/TakasakiStudio.Lina.Utils/Extensions/QueryableExtensions.cs b/TakasakiStudio.Lina.Utils/Extensions/QueryableExtensions.cs index ac9576d..44f6cfd 100644 --- a/TakasakiStudio.Lina.Utils/Extensions/QueryableExtensions.cs +++ b/TakasakiStudio.Lina.Utils/Extensions/QueryableExtensions.cs @@ -11,11 +11,13 @@ public static class QueryableExtensions /// Query execution /// Current page /// Page size + /// Max page size /// Model type /// Query execution - public static IQueryable Paginate(this IQueryable query, int page, int pageSize = 20) + public static IQueryable Paginate(this IQueryable query, int page, int pageSize = 20, int? maxPageSize = null) { - if (page == 0) page = 1; + if (page == 0) + page = 1; pageSize = pageSize switch { @@ -23,6 +25,9 @@ public static IQueryable Paginate(this IQueryable query, int page, int _ => pageSize }; + if (pageSize > maxPageSize) + pageSize = maxPageSize.Value; + return query.Skip((page - 1) * pageSize).Take(pageSize); } }