示例#1
0
        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);
        }
示例#2
0
        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());
        }