예제 #1
0
        public ActionResult MyList(string category, int page = 1, int PageSize = 6)
        {
            //根据页码以及分类来确定具体要显示的物品列表
            var Treasures = repository.Treasures
                            //筛选-1.类型为空或者当前类 2.是当前登录用户的物品 3.图片为空不显示
                            .Where(t => (category == null || t.TreasureType == category) && t.HolderID == CurrentUser.Id)
                            .OrderBy(t => t.TreasureName)
                            .Skip((page - 1) * PageSize)
                            .Take(PageSize);

            //新建一个List
            List <TreasureAndHolderInfo> treasureAndHolders = new List <TreasureAndHolderInfo>();

            //遍历物品集合,填充数据
            foreach (var trea in Treasures)
            {
                AppUser holder = UserManager.FindById(trea.HolderID);
                treasureAndHolders.Add(new TreasureAndHolderInfo
                {
                    Treasure = trea,
                    Holder   = holder
                });
            }

            //生成一个具体的列表视图模型
            TreasureListViewModel model = new TreasureListViewModel
            {
                TreasureAndHolderInfos = treasureAndHolders,
                //分页信息
                PagingInfo = new PagingInfo
                {
                    CurrentPage  = page,
                    ItemsPerPage = PageSize,
                    //总页数,无选择分类这全部,否则按当前的分类
                    TotalItem = category == null
                                          ? repository.Treasures.Count()
                                          : repository.Treasures.Where(e => e.TreasureType == category).Count()
                },
                //当前分类
                CurrentCate = category,
                //当前用户信息
                CurrentUserInfo = CurrentUser
            };

            return(View(model));
        }
예제 #2
0
        public ViewResult List(string category, int page = 1, int PageSize = 12)
        {
            //获取当前用户ID
            string id = CurrentUser.Id;

            //1.首先获取当前条件下的所有物品集合
            var Treasures = repository.Treasures
                            //筛选-1.当前类或者类型为空的 2.不能选择图片为空的(图片为空当作未完成项) 3.有正在交易的订单
                            .Where(t => (category == null || t.TreasureType == category) && (t.Cover != null && t.DetailPic != null) && (t.DLogUID == null))
                            .OrderBy(t => t.TreasureName)
                            .Skip((page - 1) * PageSize)
                            .Take(PageSize);

            //新建一个List
            List <TreasureAndHolderInfo> treasureAndHolders = new List <TreasureAndHolderInfo>();

            //遍历物品集合,填充数据
            foreach (var trea in Treasures)
            {
                AppUser holder     = UserManager.FindById(trea.HolderID);
                bool    IsFavorite = false;
                //检查是否已收藏
                using (var db = new FavoriteDataContext())
                {
                    var fav = db.Favorite.Where(f => (f.UserID == id && f.TreasureID == trea.TreasureUID.ToString())).FirstOrDefault();
                    //不等于空,既有收藏记录
                    if (fav != null)
                    {
                        IsFavorite = true;
                    }
                }
                //添加模型
                treasureAndHolders.Add(new TreasureAndHolderInfo
                {
                    Treasure   = trea,
                    Holder     = holder,
                    IsFavorite = IsFavorite
                });
            }


            //生成一个具体的列表视图模型
            TreasureListViewModel model = new TreasureListViewModel
            {
                //物品用户信息
                TreasureAndHolderInfos = treasureAndHolders,
                //分页信息
                PagingInfo = new PagingInfo
                {
                    CurrentPage  = page,
                    ItemsPerPage = PageSize,
                    //总页数,无选择分类这全部,否则按当前的分类
                    TotalItem = category == null
                                          ? repository.Treasures.Count()
                                          : repository.Treasures.Where(e => e.TreasureType == category).Count()
                },
                //当前分类
                CurrentCate = category,
                //当前用户信息
                CurrentUserInfo = CurrentUser,
                AllCnt          = repository.Treasures.Count()
            };

            return(View(model));
        }