Beispiel #1
0
        /// <summary>
        /// 根据文章Id获取文章的赞踩数量
        /// </summary>
        /// <param name="articleId"></param>
        /// <returns></returns>
        public async Task <BlogArticlePraiseDto> GetArticlePraise(Guid articleId)
        {
            var query = await _blogArticlePraise.FindByAsyn(x => x.ArticleId.Equals(articleId));

            var articlePraise   = query.FirstOrDefault();
            var articlePraiseVM = new BlogArticlePraiseDto(articlePraise);

            //获取该文章的踩、赞用户记录
            var queryPraiseRecord = await _praiseRecord.FindByAsyn(x => x.ArticleId.Equals(articleId));

            foreach (var praiseRecord in queryPraiseRecord)
            {
                articlePraiseVM.Users.Add(await GetUserDtoById(praiseRecord.UserId));
            }
            return(articlePraiseVM);
        }
Beispiel #2
0
 public BlogArticleVM(BlogArticle bo)
 {
     this.SetVM <BlogArticle>(bo);
     this.Abstract  = bo.Abstract;
     this.Thumbnail = bo.Thumbnail;
     this.User      = new ApplicationUserDto();
     this.Category  = bo.Category != null? new BlogArticleCategoryVM(bo.Category): new BlogArticleCategoryVM();
     if (bo.BlogArticleLabels != null)
     {
         this.ArticleLabels = new List <BlogArticleLabelVM>();
         foreach (var blogArticleLabel in bo.BlogArticleLabels)
         {
             this.ArticleLabels.Add(new BlogArticleLabelVM(blogArticleLabel));
         }
     }
     this.Comments      = new List <BlogArticleCommentVM>();
     this.ArticlePraise = new BlogArticlePraiseDto();
 }
Beispiel #3
0
        public async Task <TzDataOutputDto <BlogArticlePraiseDto> > ArticlePraiseDown(Guid articleId)
        {
            string msg   = string.Empty;
            bool   state = false;

            //查询记录 PraiseRecord
            var queryPraiseRecord = await _praiseRecord.FindByAsyn(x => x.ArticleId.Equals(articleId) && x.UserId.Equals(Guid.Parse(TzUser.Id)));

            var praiseUpRecord   = queryPraiseRecord.FirstOrDefault(x => x.UpOrDown.Equals(BlogArticlePraiseType.Up));
            var praiseDownRecord = queryPraiseRecord.FirstOrDefault(x => x.UpOrDown.Equals(BlogArticlePraiseType.Down));
            var articlePraiseDto = new BlogArticlePraiseDto();

            if (queryPraiseRecord.Count().Equals(0))
            {
                //添加踩记录
                await _praiseRecord.AddOrEditAndSaveAsyn(new BlogArticlePraiseRecord
                {
                    ArticleId = articleId,
                    UserId    = Guid.Parse(TzUser.Id),
                    UpOrDown  = BlogArticlePraiseType.Down
                });

                //文章踩数量+1
                var query = await _blogArticlePraise.FindByAsyn(x => x.ArticleId.Equals(articleId));

                var articlePraise = query.FirstOrDefault();
                articlePraise.Down += 1;
                await _blogArticlePraise.AddOrEditAndSaveAsyn(articlePraise);

                articlePraiseDto = new BlogArticlePraiseDto(articlePraise);
                msg   = "您踩了这篇文章Ծ‸Ծ";
                state = true;
            }
            else if (praiseDownRecord != null)
            {
                msg = "您已经踩过这篇文章了Ծ‸Ծ";
            }
            else if (praiseUpRecord != null)
            {
                var query = await _blogArticlePraise.FindByAsyn(x => x.ArticleId.Equals(articleId));

                var articlePraise = query.FirstOrDefault();
                if (articlePraise != null)
                {
                    articlePraise.Up   -= 1;
                    articlePraise.Down += 1;
                    await _blogArticlePraise.AddOrEditAndSaveAsyn(articlePraise);

                    //踩记录(还原)
                    praiseUpRecord.UpOrDown = BlogArticlePraiseType.Down;
                    await _praiseRecord.AddOrEditAndSaveAsyn(praiseUpRecord);

                    articlePraiseDto = new BlogArticlePraiseDto(articlePraise);
                    state            = true;
                    msg = "您踩了这篇文章Ծ‸Ծ";
                }
                else
                {
                    msg = "请求错误Ծ‸Ծ!";
                }
            }

            var statusCode = HttpContext.Response.StatusCode.Equals(200) ? 0 : 1;

            return(new TzDataOutputDto <BlogArticlePraiseDto>
            {
                State = state,
                Code = statusCode,
                Msg = msg,
                Data = articlePraiseDto
            });
        }