public ActionResult List(PagerRequest request, CommentSearchOption search) { int totalCount; var data = _commentRepository.Search(request.PageIndex , request.PageSize , out totalCount , search ); var resourceQuerable = _commentRepository.Context.Set<ResourceEntity>().AsQueryable(); var vo = from u in _commentRepository.Context.Set<UserEntity>() from p in data where p.User_Id == u.Id let commentResource = (from r in resourceQuerable where r.SourceId == p.Id && r.SourceType == (int)SourceType.CommentAudio select r).FirstOrDefault() let sourceResource = (from r in resourceQuerable where r.SourceId == p.SourceId && r.SourceType == p.SourceType select r).FirstOrDefault() select new { C = p, U = u, CR = commentResource, SR = sourceResource }; var comment = from c in vo.ToList() let p = c.C let u = c.U select new CommentViewModel { CommentResource = MappingManager.ResourceViewMapping(c.CR) , SourceResource = MappingManager.ResourceViewMapping(c.SR) , Content = p.Content , CreatedDate = p.CreatedDate , CreatedUser = p.CreatedUser , Id = p.Id , ReplyId = p.ReplyId , ReplyUser = p.ReplyUser , SourceId = p.SourceId , SourceType = p.SourceType , Status = p.Status , UpdatedDate = p.UpdatedDate , UpdatedUser = p.UpdatedUser , User_Id = p.User_Id , CommentUser = new CustomerViewModel { Id = u.Id, Name = u.Name, Nickname = u.Nickname } }; var v = new CommentCollectionViewModel(request, totalCount) { Comments = comment.ToList() }; return View("List", v); }
public ActionResult Index(PagerRequest request, CommentSearchOption search) { return List(request, search); }