/// <summary> /// 取经过排序的分页数据 /// </summary> /// <typeparam name="TKey">总体排序字段</typeparam> /// <param name="pageIndex">页码</param> /// <param name="pageSize">页容量</param> /// <param name="sortField">结果集的排序字段</param> /// <param name="sortOrder">结果集的排序方式</param> /// <param name="order">总体的排序方式</param> /// <param name="where">总体的筛选条件</param> /// <returns></returns> private IEnumerable <Book> GetSortPagedBooks <TKey>(int pageIndex, int pageSize, string sortField, Entities.SortOrder sortOrder, out int total, Func <Book, TKey> order, Func <Book, bool> @where = null) { var ret = (from b in DbSession.Books.All where (@where != null ? @where(b) : true) orderby order(b) select b); var desc = sortOrder == SortOrder.Desc; if (sortField != null) { switch (sortField.ToLower()) { case "name": ret = desc ? ret.OrderByDescending(b => b.Name) : ret.OrderBy(b => b.Name); break; case "maintitle": ret = desc ? ret.OrderByDescending(b => b.MainTitle) : ret.OrderBy(b => b.MainTitle); break; case "sellingprice": ret = desc ? ret.OrderByDescending(b => b.SellingPrice) : ret.OrderBy(b => b.SellingPrice); break; case "officialprice": ret = desc ? ret.OrderByDescending(b => b.OfficialPrice) : ret.OrderBy(b => b.OfficialPrice); break; case "publicationdate": ret = desc ? ret.OrderByDescending(b => b.PublicationDate) : ret.OrderBy(b => b.PublicationDate); break; case "printingtime": ret = desc ? ret.OrderByDescending(b => b.PrintingTime) : ret.OrderBy(b => b.PrintingTime); break; case "pagenum": ret = desc ? ret.OrderByDescending(b => b.PageNum) : ret.OrderBy(b => b.PageNum); break; case "language": ret = desc ? ret.OrderByDescending(b => b.Language) : ret.OrderBy(b => b.Language); break; case "addedtime": ret = desc ? ret.OrderByDescending(b => b.AddedTime) : ret.OrderBy(b => b.AddedTime); break; case "storagetime": ret = desc ? ret.OrderByDescending(b => b.StorageTime) : ret.OrderBy(b => b.StorageTime); break; case "salesvolume": ret = desc ? ret.OrderByDescending(b => b.SalesVolume) : ret.OrderBy(b => b.SalesVolume); break; case "promotedonfront": ret = desc ? ret.OrderByDescending(b => b.PromotedOnFront) : ret.OrderBy(b => b.PromotedOnFront); break; case "onsale": ret = desc ? ret.OrderByDescending(b => b.OnSale) : ret.OrderBy(b => b.OnSale); break; case "showonbanner": ret = desc ? ret.OrderByDescending(b => b.OnSale) : ret.OrderBy(b => b.OnSale); break; default: ret = desc ? ret.OrderByDescending(b => b.Name) : ret.OrderBy(b => b.Name); break; } } total = ret.Count(); return(ret.Skip(pageIndex * pageSize).Take(pageSize)); }
public IEnumerable <Entities.Press> GetPagedPresses(int pageIndex, int pageSize, string sortField, Entities.SortOrder sortOrder, out int total, Func <Press, Boolean> @where = null) { var ret = (from p in DbSession.Presss.All where (@where == null ? true : @where(p)) select p); var desc = sortOrder == SortOrder.Desc; switch (sortField.ToLower()) { case "name": ret = desc ? ret.OrderByDescending(p => p.Name) : ret.OrderBy(p => p.Name); break; default: ret = desc ? ret.OrderByDescending(p => p.Name) : ret.OrderBy(p => p.Name); break; } total = ret.Count(); return(ret.Skip(pageIndex * pageSize).Take(pageSize)); }
public IEnumerable <Entities.Book> GetPagedBooks(int pageIndex, int pageSize, string sortField, Entities.SortOrder sortOrder, out int total, Func <Book, Boolean> where = null) { return(GetSortPagedBooks(pageIndex, pageSize, sortField, sortOrder, out total, b => b.Name, where)); }
public IEnumerable <Entities.Book> GetPagedBooks(int pageIndex, int pageSize, string sortField, Entities.SortOrder sortOrder, out int total, Func <Entities.Book, bool> where = null) { return(_service.GetPagedBooks(pageIndex, pageSize, sortField, sortOrder, out total, where)); }
public IEnumerable <Entities.Book> GetPagedSearchBooks(string key, int pageIndex, int pageSize, string sortField, Entities.SortOrder sortOrder, out int total) { return(_service.GetPagedSearchBooks(key, pageIndex, pageSize, sortField, sortOrder, out total)); }
public IEnumerable <Entities.Book> GetPagedPressBooks(int pressId, int pageIndex, int pageSize, string sortField, Entities.SortOrder sortOrder, out int total) { return(_service.GetPagedPressBooks(pressId, pageIndex, pageSize, sortField, sortOrder, out total)); }
public IEnumerable <Entities.Book> GetPagedAuthorBooks(int authorId, int pageIndex, int pageSize, string sortField, Entities.SortOrder sortOrder, out int total) { return(GetPagedAuthorBooks(authorId, pageIndex, pageSize, sortField, sortOrder, out total)); }