public ArtDetailDto GetOneArticle(int id) { ArtDetailDto artEntry = Queryable(u => u.Id == id && u.DeleteMark == false).Select(r => new ArtDetailDto { TypeName = r.ItemsDetail.ItemName, TypeCode = r.ItemsDetail.ItemCode, NickName = r.AppUser.NickName, Avatar = r.AppUser.Avatar, PersonSignature = r.AppUser.PersonSignature, Id = r.Id, Content = r.Content, Title = r.Title, CommentQuantity = r.CommentQuantity, Excerpt = r.Excerpt, CreatorUserId = r.CreatorUserId, CreatorTime = r.CreatorTime, ViewHits = r.ViewHits, Thumbnail = r.Thumbnail, PointQuantity = r.PointQuantity, Editor = r.Editor }).FirstOrDefault(); if (artEntry != null) { artEntry.TimeSpan = TimeHelper.GetDateFromNow(artEntry.CreatorTime.ToDateTime()); } return(artEntry); }
public override ActionResult Detail(int id) { ArtDetailDto entry = _articleRepository.GetOneArticle(id); if (entry == null) { throw new ArgumentNullException("根据Id,我去查了,但文章就是未找到!"); } //找到当前的上一个,下一个的文章 Expression <Func <Article, bool> > nextlambda = u => u.Id > id && u.DeleteMark == false; var next = _articleRepository.Queryable(nextlambda).FirstOrDefault(); if (next != null) { entry.NextPage = new BaseDto { Id = next.Id, Text = next.Title }; } Expression <Func <Article, bool> > previouslabmda = u => u.Id < id && u.DeleteMark == false; var pre = _articleRepository.Queryable(previouslabmda).OrderByDescending(u => u.Id).FirstOrDefault(); if (pre != null) { entry.PreviousPage = new BaseDto { Id = pre.Id, Text = pre.Title }; } IQueryable <Article> queryable = _articleRepository.Queryable(u => u.Id == id); _articleRepository.Update(queryable, u => new Article { ViewHits = entry.ViewHits + 1 }); entry.Content = Server.UrlDecode(entry.Content); ViewData["ArticleDto"] = entry; ViewBag.AId = id; return(base.View()); }