Esempio n. 1
0
        /// <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));
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
 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));
 }
Esempio n. 4
0
 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));
 }
Esempio n. 5
0
 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));
 }
Esempio n. 6
0
 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));
 }
Esempio n. 7
0
 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));
 }