diff --git a/zero.Core/Extensions/NumberExtensions.cs b/zero.Core/Extensions/NumberExtensions.cs new file mode 100644 index 00000000..98bd9b62 --- /dev/null +++ b/zero.Core/Extensions/NumberExtensions.cs @@ -0,0 +1,18 @@ +namespace zero.Core.Extensions +{ + public static class NumberExtensions + { + public static int Limit(this int input, int min, int max) + { + if (input < min) + { + return min; + } + if (input > max) + { + return max; + } + return input; + } + } +} diff --git a/zero.Core/Extensions/QueryableExtensions.cs b/zero.Core/Extensions/QueryableExtensions.cs index f0ad947c..d0d540f0 100644 --- a/zero.Core/Extensions/QueryableExtensions.cs +++ b/zero.Core/Extensions/QueryableExtensions.cs @@ -48,6 +48,9 @@ namespace zero.Core.Extensions public static IQueryable Paging(this IQueryable source, int pageNumber, int pageSize) { + pageNumber = pageNumber.Limit(1, 10_000_000); + pageSize = pageSize.Limit(1, 1_000); + if (pageNumber <= 0 || pageSize <= 0) { throw new NotSupportedException("Both pageNumber and pageSize must be greater than zero"); diff --git a/zero.Web/ViewHelpers/ZeroMediaHelper.cs b/zero.Web/ViewHelpers/ZeroMediaHelper.cs index c309a4ca..20aa4533 100644 --- a/zero.Web/ViewHelpers/ZeroMediaHelper.cs +++ b/zero.Web/ViewHelpers/ZeroMediaHelper.cs @@ -83,7 +83,7 @@ namespace zero.Web.ViewHelpers public async Task GetUrl(string id, bool isAbsolute = false) { IMedia media = await GetById(id); - return media?.Source; + return media?.Source.TrimStart("url://"); } @@ -91,7 +91,7 @@ namespace zero.Web.ViewHelpers public async Task> GetUrls(string[] ids, bool isAbsolute = false) { Dictionary medias = await GetByIds(ids); - return medias.ToDictionary(x => x.Key, x => x.Value?.Source); + return medias.ToDictionary(x => x.Key, x => x.Value?.Source.TrimStart("url://")); } }