예제 #1
0
        public static IQueryable <T> Take <T>(this IQueryable <T> source, ILimitedResultRequest limited)
        {
            if (limited.MaxResultCount <= 0)
            {
                return(source);
            }

            return(source.Take(limited.MaxResultCount));
        }
예제 #2
0
        /// <summary>
        /// Should apply paging if needed.
        /// </summary>
        /// <param name="query">The query.</param>
        /// <param name="input">The input.</param>
        protected virtual IQueryable <TEntity> ApplyPaging <TEntity>(IQueryable <TEntity> query, IPagedResultRequest input)
        {
            //Try to use paging if available
            IPagedResultRequest pagedInput = input;

            if (pagedInput != null)
            {
                return(query.PageBy(pagedInput));
            }

            //Try to limit query result if available
            ILimitedResultRequest limitedInput = input;

            if (limitedInput != null)
            {
                return(query.Take(limitedInput.MaxResultCount));
            }

            //No paging
            return(query);
        }