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; } }
//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)); }