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