Beispiel #1
0
        /// <summary>
        /// Limit and offset query.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="query"></param>
        /// <param name="filter"></param>
        /// <returns></returns>
        public static IQueryable <T> LimitQuery <T>(this IQueryable <T> query, IFilterRequestQuery filter)
        {
            if (filter.Limit != null && filter.Page != null)
            {
                query = query.Skip(filter.Limit.Value * filter.Page.Value)
                        .Take(filter.Limit.Value);
            }

            return(query);
        }
Beispiel #2
0
        /// <summary>
        /// Base query filter, ordering by ASC, DESC.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="query"></param>
        /// <param name="filter"></param>
        /// <returns></returns>
        public static IQueryable <T> OrderQuery <T>(this IQueryable <T> query, IFilterRequestQuery filter)
        {
            if (filter.Order != null && !String.IsNullOrEmpty(filter.OrderByColumnName))
            {
                if (filter.Order == Order.ASC)
                {
                    query = query.OrderBy(p => EF.Property <object>(p, filter.OrderByColumnName));
                }
                else
                {
                    query = query.OrderByDescending(p => EF.Property <object>(p, filter.OrderByColumnName));
                }
            }

            return(query);
        }