public static IOrderedQueryable <T> Sorting <T>(this IQueryable <T> list, SortParameterCollection sc, IFilterSortPropResolver propResolver) where T : class, new() { foreach (var par in sc) { return(((IOrderedQueryable <T>)InvokeSortParameterOnQueryableFirst <T>(list, par, propResolver)).Sorting(sc, propResolver, true)); } if (sc.DefaultOrder != null) { foreach (var par in sc.DefaultOrder) { return(((IOrderedQueryable <T>)InvokeSortParameterOnQueryableFirst <T>(list, par, propResolver)).Sorting(sc.DefaultOrder, propResolver, true)); } } return(list.OrderBy <T, int>(m => 1)); }
public static IOrderedQueryable Sorting(this IQueryable list, SortParameterCollection sc, Type type) { var minfo = typeof(SortLinqExtension).GetGenericMethod("Sorting", new Type[] { typeof(IQueryable <>), typeof(SortParameterCollection) }); return(minfo.MakeGenericMethod(type).Invoke(null, new object[] { list, sc }) as IOrderedQueryable); }
public static IOrderedQueryable <T> Sorting <T>(this IOrderedQueryable <T> list, SortParameterCollection sc) where T : class, new() { return(Sorting <T>(list, sc, sc.PropertyNameResolver, false)); }
public static IOrderedQueryable <T> Sorting <T>(this IOrderedQueryable <T> list, SortParameterCollection sc, IFilterSortPropResolver propResolver) where T : class, new() { return(Sorting <T>(list, sc, propResolver, false)); }
private static IOrderedQueryable <T> Sorting <T>(this IOrderedQueryable <T> list, SortParameterCollection sc, IFilterSortPropResolver propResolver, bool skipFirst) where T : class, new() { IOrderedQueryable <T> result = list; foreach (var par in sc.Skip(skipFirst ? 1 : 0)) { result = (IOrderedQueryable <T>)InvokeSortParameterOnQueryableNext <T>(result, par, propResolver); } if (sc.DefaultOrder != null) { foreach (var par in sc.DefaultOrder) { if (sc.Any(p => p.Type == typeof(T) && p.ColumnName == par.ColumnName) == false) { result = (IOrderedQueryable <T>)InvokeSortParameterOnQueryableNext <T>(result, par, propResolver); } } } return(result); }