public static IDocumentQuery <TSource> Paging <TSource>(this IDocumentQuery <TSource> source, Request request) { var maxResultsPerPage = 50; if (request.Query.per_page.HasValue) { maxResultsPerPage = request.Query.per_page; } if (maxResultsPerPage < 1) { maxResultsPerPage = 50; } var page = 1; if (request.Query.page.HasValue) { page = request.Query.page; } if (page < 1) { page = 1; } var skipResults = (page - 1) * maxResultsPerPage; return(source.Skip(skipResults) .Take(maxResultsPerPage)); }
private void VisitSkip(ConstantExpression constantExpression) { //Don't have to worry about the cast failing, the Skip() extension method only takes an int luceneQuery.Skip((int)constantExpression.Value); }