Skip to content

Commit

Permalink
Add pageNumber param.
Browse files Browse the repository at this point in the history
  • Loading branch information
sarahelsaig committed May 17, 2024
1 parent 90eedc3 commit 82f0409
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions Lombiq.HelpfulLibraries.OrchardCore/Data/QueryExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -160,25 +160,35 @@ public static async Task<GetPageAndPagerViewModel<T>> GetPageAndPagerAsync<T>(
/// <c>Pager</c> shape that can be used to navigate to other pages.
/// </summary>
/// <param name="httpContext">Used to source some required services and current request information.</param>
/// <param name="pageNumber">
/// If not <see langword="null"/>, it's used to configure the <see cref="PagerParameters"/>. Otherwise the query
/// value of <c>pagenum</c> is used from <paramref name="httpContext"/>.
/// </param>
/// <param name="defaultPageSize">
/// An optional value it you want custom page size instead of the value coming from <see cref="ISite.PageSize"/>.
/// </param>
public static Task<GetPageAndPagerViewModel<T>> GetPageAndPagerAsync<T>(
this IQuery<T> query,
HttpContext httpContext,
int? pageNumber = null,
int? defaultPageSize = null)
where T : class
{
var page = pageNumber ?? 0;
if (page <= 0)
{
page = httpContext.Request.Query.TryGetValue("pagenum", out var pageNumberString) &&
int.TryParse(pageNumberString, CultureInfo.InvariantCulture, out var pageNumberInt)
? pageNumberInt
: 1;
}

var provider = httpContext.RequestServices;
var pageNumber = httpContext.Request.Query.TryGetValue("pagenum", out var pageNumberString) &&
int.TryParse(pageNumberString, CultureInfo.InvariantCulture, out var pageNumberInt)
? pageNumberInt
: 1;

return query.GetPageAndPagerAsync(
provider.GetRequiredService<IShapeFactory>(),
provider.GetRequiredService<ISiteService>(),
new PagerParameters { Page = pageNumber > 0 ? pageNumber : 1 },
new PagerParameters { Page = page > 0 ? page : 1 },
httpContext.Request.RouteValues,
defaultPageSize);
}
Expand Down

0 comments on commit 82f0409

Please sign in to comment.