Exemplo n.º 1
0
 public List <TEntity> GetAllWithSorter <TSorter>(OrderByTypeEnum orderByType, Expression <Func <TEntity, TSorter> > sorter = null, Expression <Func <TEntity, bool> > filter = null)
 {
     if (orderByType == OrderByTypeEnum.ASC)
     {
         if (filter != null)
         {
             return(_context.Set <TEntity>().Where(filter).OrderBy(sorter).ToList());
         }
         else
         {
             return(_context.Set <TEntity>().OrderBy(sorter).ToList());
         }
     }
     else
     {
         if (filter != null)
         {
             return(_context.Set <TEntity>().Where(filter).OrderByDescending(sorter).ToList());
         }
         else
         {
             return(_context.Set <TEntity>().OrderByDescending(sorter).ToList());
         }
     }
 }
        public static IQueryable <TResult> ApplySort <TResult>(
            this IQueryable <TResult> query,
            string sortField,
            OrderByTypeEnum sortType = OrderByTypeEnum.Descending) where TResult : class
        {
            if (string.IsNullOrEmpty(sortField))
            {
                return(query);
            }

            query = sortType == OrderByTypeEnum.Ascending ? query.OrderBy(sortField.FirstCharToUpper()) : query.OrderByDescending(sortField.FirstCharToUpper());
            return(query);
        }
        /// <summary>
        /// This orderBy returns a OrderByTypeEnum for the string given.
        /// </summary>
        /// <param name="orderByTypeSource"></param>
        /// <returns></returns>
        public static OrderByTypeEnum ParseOrderByType(string orderByTypeSource)
        {
            // initial value
            OrderByTypeEnum orderByType = OrderByTypeEnum.No_Order_By;

            // determine OrderByType for each case
            switch (orderByTypeSource)
            {
            case "Field_Set":
            case "Field Set":

                // set orderByType
                orderByType = OrderByTypeEnum.Field_Set;

                // required
                break;

            case "No OrderBys":
            case "No_OrderBys":

                // set orderByType
                orderByType = OrderByTypeEnum.No_Order_By;

                // required
                break;

            case "Single Field":
            case "Single_Field":

                // set orderByType
                orderByType = OrderByTypeEnum.Single_Field;

                // required
                break;
            }

            // return value
            return(orderByType);
        }
 public SortModel(string sortField, OrderByTypeEnum sortDirection)
 {
     SortField   = sortField;
     OrderByType = sortDirection;
 }