Ejemplo n.º 1
0
        /// <summary>
        /// Returns query with filters and sorting applied.
        /// </summary>
        /// <typeparam name="TRoot">The type of the entity.</typeparam>
        /// <typeparam name="TSubType">The type of the sub type.</typeparam>
        /// <param name="query">The query.</param>
        /// <param name="filter">The filter.</param>
        /// <param name="order">The order.</param>
        /// <param name="orderDescending">if set to <c>true</c> order descending.</param>
        /// <param name="pageNumber">The page number.</param>
        /// <param name="itemsPerPage">The items per page.</param>
        /// <returns>Query with filters and sorting applied</returns>
        public static IQueryOver <TRoot, TSubType> ApplyFilters <TRoot, TSubType>(this IQueryOver <TRoot, TSubType> query, Expression <Func <TSubType, bool> > filter = null, Expression <Func <TSubType, dynamic> > order = null, bool orderDescending = false, int?pageNumber = null, int?itemsPerPage = null)
        {
            if (filter != null)
            {
                query = query.Where(filter);
            }
            if (order != null)
            {
                query = (orderDescending) ? query.OrderBy(order).Desc : query.OrderBy(order).Asc;
            }

            query = query.AddPaging(pageNumber, itemsPerPage);

            return(query);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Adds the paging to nHibernate query.
 /// </summary>
 /// <param name="query">The query.</param>
 /// <param name="options">The options.</param>
 /// <returns>The query</returns>
 public static IQueryOver <TRoot, TSubType> AddPaging <TRoot, TSubType>(this IQueryOver <TRoot, TSubType> query, SortAndPagingOptions options)
 {
     return(query.AddPaging(options.PageNumber, options.PageSize));
 }