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; }