コード例 #1
0
ファイル: BlogRepository.cs プロジェクト: HannaYurkavets/PI
        public void UpdateReplyLike(string replyid, string username, string likeordislike)
        {
            var replyLike = _context.ReplyLikes.Where(x => x.Username == username && x.ReplyId == replyid).FirstOrDefault();

            if (replyLike != null)
            {
                switch (likeordislike)
                {
                case "like":
                    if (replyLike.Like == false)
                    {
                        replyLike.Like = true; replyLike.Dislike = false;
                    }
                    else
                    {
                        replyLike.Like = false;
                    }
                    break;

                case "dislike":
                    if (replyLike.Dislike == false)
                    {
                        replyLike.Dislike = true; replyLike.Like = false;
                    }
                    else
                    {
                        replyLike.Dislike = false;
                    }
                    break;
                }
                if (replyLike.Like == false && replyLike.Dislike == false)
                {
                    _context.ReplyLikes.Remove(replyLike);
                }
            }
            else
            {
                switch (likeordislike)
                {
                case "like":
                    replyLike = new ReplyLike()
                    {
                        ReplyId = replyid, Username = username, Like = true, Dislike = false
                    };
                    _context.ReplyLikes.Add(replyLike);
                    break;

                case "dislike":
                    replyLike = new ReplyLike()
                    {
                        ReplyId = replyid, Username = username, Like = false, Dislike = true
                    };
                    _context.ReplyLikes.Add(replyLike);
                    break;
                }
            }
            Save();
        }
コード例 #2
0
        public async Task <ReplyLike> Like(Guid userId, Guid replyId)
        {
            var isExist = await _likeRepository.GetAll().Where(x => x.UserId == userId && x.ReplyId == replyId && x.IsDeleted == false)
                          .FirstOrDefaultAsync();

            if (isExist != null)
            {
                throw new Exception("Bu islem zaten yapilmis");
            }

            var model = new ReplyLike
            {
                UserId  = userId,
                ReplyId = replyId
            };
            await _likeRepository.AddAsync(model);

            var user = await _userRepository.GetByIdAsync(userId);

            var reply = await _replyRepository.GetByIdAsync(replyId);

            var comment = await _commentRepository.GetByIdAsync(reply.CommentId);

            var post = await _postRepository.GetByIdAsync(comment.PostId);

            var community = await _communityRepository.GetByIdAsync(post.CommunityId);

            if (reply.UserId == user.Id)
            {
                return(model);
            }
            var notify = new Notification
            {
                Content     = user.Username + " " + "yanıtını beğendi " + reply.Content,
                OwnerUserId = reply.UserId,
                Type        = NotifyContentType.ReplyLike,
                ImgPath     = user.ProfileImagePath,
                TargetName  = community.Slug + "/" + post.Slug,
                TargetId    = post.Id
            };
            await _notificationRepository.AddAsync(notify);

            return(model);
        }
コード例 #3
0
ファイル: ForumFunctions.cs プロジェクト: Grimhill/ForumWorks
        public void UpdateReplyLike(int replyid, string username, string likeordislike)
        {
            //enable user to change his vote
            var replyLike = _context.ReplyLikes.Where(x => x.Username == username && x.ReplyId == replyid).FirstOrDefault();

            if (replyLike != null)
            {
                switch (likeordislike)
                {
                case "like":
                    if (replyLike.Like == false)
                    {
                        replyLike.Like = true; replyLike.Dislike = false;
                    }
                    else
                    {
                        replyLike.Like = false;
                    }
                    Save();
                    break;

                case "dislike":
                    if (replyLike.Dislike == false)
                    {
                        replyLike.Dislike = true; replyLike.Like = false;
                    }
                    else
                    {
                        replyLike.Dislike = false;
                    }
                    Save();
                    break;
                }
                if (replyLike.Like == false && replyLike.Dislike == false)
                {
                    _context.ReplyLikes.Remove(replyLike);
                }
            }
            else //if user vote at first
            {
                switch (likeordislike)
                {
                case "like":
                    replyLike = new ReplyLike()
                    {
                        ReplyId = replyid, Username = username, Like = true, Dislike = false
                    };
                    _context.ReplyLikes.Add(replyLike);
                    Save();
                    break;

                case "dislike":
                    replyLike = new ReplyLike()
                    {
                        ReplyId = replyid, Username = username, Like = false, Dislike = true
                    };
                    _context.ReplyLikes.Add(replyLike);
                    Save();
                    break;
                }
            }
            var reply = _context.Replies.Where(x => x.Id == replyid).FirstOrDefault();

            reply.NetLikeCount = LikeDislikeCount("replylike", replyid) - LikeDislikeCount("replydislike", replyid);
            Save();
        }