コード例 #1
0
        public void SetThreadInAction(String id)
        {
            var channelCache = (ModelChannel)cache.Get(id);

            foreach (var director in channelCache.getAllDirectory())
            {
                var files = _dbContext.Files.AsNoTracking().Where(s => s.FCid.Equals(director.ID));
                int total = files.Count();
                //files = files.OrderByDescending(e => e.FPublishDate);
                //files = files.Skip((pagenum - 1) * pageSize).Take(pageSize);

                foreach (var file in files)
                {
                    string imgscr = null;
                    if (file.FImg != null)
                    {
                        var base64 = Convert.ToBase64String(file.FImg);
                        imgscr = string.Format("data:image/png;base64,{0}", base64);
                    }
                    ModelPeekThread peekThread = new ModelPeekThread()
                    {
                        ID           = file.FId,
                        Name         = file.FName,
                        Description  = file.FDescription,
                        directorId   = director.ID,
                        PublishDate  = file.FPublishDate,
                        img          = imgscr,
                        directorName = director.Name,
                        CID          = channelCache.ID,
                    };

                    director.addThread(new ModelThread(peekThread, file.FText));
                }
                channelCache.CalculateTotalPages();
                //ViewBag.CurentPage = pagenum;
                //ViewBag.ShowPrevious = pagenum > 1;
                //ViewBag.ShowNext = pagenum < total;
            }
        }
コード例 #2
0
        //int pageSize = 6;


        public ViewResult MyFeed(int page = 1)
        {
            var dbuser = _dbcontext.Users.FirstOrDefault(u => u.UId.Equals(User.Identity.Name));

            //var jsonUser = HttpContext.Session.GetString(User.Identity.Name);
            ModelUser user    = new ModelUser();
            var       userImg = _dbcontext.UsersImg.FirstOrDefault(u => u.UId.Equals(User.Identity.Name));

            if (userImg != null)
            {
                ViewBag.img = Infrastructure.ImageConverter.ConvertToString(userImg.UImg);
            }

            var userChannelRelation = _dbcontext.RelationShip.Where(u => u.ActioinUserId.Equals(User.Identity.Name) && u.RStateId == 1);
            var Userchannel         = from RelationShip in _dbcontext.RelationShip
                                      join channnel in _dbcontext.Channel on RelationShip.RCid equals channnel.CId
                                      where RelationShip.ActioinUserId == User.Identity.Name
                                      select new
            {
                ID    = channnel.CId,
                CName = channnel.CName,
            };

            var directoryChannel = from UChannel in Userchannel
                                   join directory in _dbcontext.Directory on UChannel.ID equals directory.DOwnerId
                                   select new
            {
                CID   = UChannel.ID,
                CName = UChannel.CName,
                DID   = directory.DId,
                DName = directory.DName
            };


            var fileDirectory = from DChannel in directoryChannel
                                join thread in _dbcontext.Files on DChannel.DID equals thread.FCid

                                select new
            {
                CID          = DChannel.CID,
                CName        = DChannel.CName,
                DID          = DChannel.DID,
                DName        = DChannel.DName,
                TID          = thread.FId,
                TName        = thread.FName,
                TText        = thread.FText,
                TDate        = thread.FPublishDate,
                TDescription = thread.FDescription,
                TPic         = thread.FImg,
            };
            int total      = fileDirectory.Count();
            int totalPages = (int)Math.Ceiling(decimal.Divide(total, GeneralData.pageSize));

            fileDirectory = fileDirectory.OrderByDescending(f => f.TDate);
            fileDirectory = fileDirectory.Skip((page - 1) * GeneralData.pageSize)
                            .Take(GeneralData.pageSize);


            foreach (var file in fileDirectory)
            {
                ModelPeekThread peekThread = new ModelPeekThread()
                {
                    ID           = file.TID,
                    Name         = file.TName,
                    Description  = file.TDescription,
                    PublishDate  = file.TDate,
                    directorId   = file.DID,
                    directorName = file.DName,
                    CID          = file.CID,
                    Cname        = file.CName,
                    img          = Infrastructure.ImageConverter.ConvertToString(file.TPic)
                };
                user.addThread(new ModelThread(peekThread, file.TText));
            }

            ViewBag.CurentPage   = page;
            ViewBag.ShowPrevious = page > 1;
            ViewBag.ShowNext     = page < totalPages;



            //ViewBag.ChannelID = user.ChannelID;
            return(View(user));
        }