From 69f21ca6957953852c58470e2ddfce32ba50c48b Mon Sep 17 00:00:00 2001 From: Biarity Date: Thu, 15 Feb 2018 18:45:19 +1000 Subject: [PATCH] Max page size (#9) --- Sieve/Models/SieveOptions.cs | 2 ++ Sieve/Services/SieveProcessor.cs | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Sieve/Models/SieveOptions.cs b/Sieve/Models/SieveOptions.cs index 37ba764..4933623 100644 --- a/Sieve/Models/SieveOptions.cs +++ b/Sieve/Models/SieveOptions.cs @@ -11,6 +11,8 @@ namespace Sieve.Models public int DefaultPageSize { get; set; } = 0; + public int MaxPageSize { get; set; } = 0; + public bool ThrowExceptions { get; set; } = false; } } \ No newline at end of file diff --git a/Sieve/Services/SieveProcessor.cs b/Sieve/Services/SieveProcessor.cs index 3a6b7f7..fd3cac3 100644 --- a/Sieve/Services/SieveProcessor.cs +++ b/Sieve/Services/SieveProcessor.cs @@ -239,11 +239,12 @@ namespace Sieve.Services { var page = model?.Page ?? 1; var pageSize = model?.PageSize ?? _options.Value.DefaultPageSize; + var maxPageSize = _options.Value.MaxPageSize > 0 ? _options.Value.MaxPageSize : pageSize; result = result.Skip((page - 1) * pageSize); if (pageSize > 0) - result = result.Take(pageSize); + result = result.Take(Math.Min(pageSize, maxPageSize)); return result; }