Exemple #1
0
        /// <summary>
        /// 点赞
        /// </summary>
        /// <param name="articleId">文章id</param>
        /// <param name="userId">用户id</param>
        /// <returns></returns>
        public async Task GoodCountAdd(Guid articleId, Guid userId)
        {
            int likeCount;
            int hateCount;

            using (ILikeHateService likeHateSvc = new LikeHateService())
            {
                string result = await GetLikeHate(articleId, userId);

                if (result == "none")//没有创建过
                {
                    LikeHate likeHate = new LikeHate()
                    {
                        ArticleId = articleId, UserId = userId, Like = true, Hate = false
                    };
                    await likeHateSvc.CreatAsync(likeHate);
                }
                else if (result == "null")//创建了但都为false
                {
                    LikeHate likeHate = await likeHateSvc.GetAll().Where(m => m.ArticleId == articleId && m.UserId == userId && !m.Like && !m.Hate).FirstAsync();

                    likeHate.Like = true;
                    await likeHateSvc.EditAsync(likeHate);
                }
                likeCount = await likeHateSvc.GetAll().Where(m => m.ArticleId == articleId && m.Like).CountAsync();

                hateCount = await likeHateSvc.GetAll().Where(m => m.ArticleId == articleId && m.Hate).CountAsync();
            }

            using (IArticleService articleSvc = new ArticleService())
            {
                var article = await articleSvc.GetOneByIdAsync(articleId);

                article.BadCount  = hateCount;
                article.GoodCount = likeCount;
                await articleSvc.EditAsync(article);
            }
        }