public static IQueryable <T> QueryData <T>(this IQueryable <T> source, Expression <Func <T, bool> > where, Pagination pagination) { try { if (where != null) { source = source.Where(where.Compile()).AsQueryable <T>(); } pagination.TotalCount = source.Count(); if (pagination.IsASC) { return(source.OrderBy <T>(pagination.SortName).QueryPage <T>(pagination)); } else { return(source.OrderByDescending <T>(pagination.SortName).QueryPage <T>(pagination)); } } catch { return(null); } }
public static IQueryable <T> QueryPage <T>(this IQueryable <T> source, Pagination page) { return(source.Skip <T>((page.PageIndex) * page.PageSize).Take <T>(page.PageSize)); }