예제 #1
0
        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);
 }