public void CommentLike(string userId, int commentId,
                                string likeSpan, string dislikeSpan)
        {
            Likes like = repository.Likes
                         .FirstOrDefault(l => l.For == "Comment" && l.ForId == commentId &&
                                         l.UserId == userId);

            if (like == null)
            {
                like = new Likes
                {
                    For    = "Comment",
                    ForId  = commentId,
                    UserId = userId
                };
                repository.AddLike(like);

                //notification
                _ = ShowNotification(userId, commentId);
            }
            else
            {
                repository.DeleteLike(like.Id);
            }

            _ = CommentLikesDislikesInitial(userId, commentId, likeSpan, dislikeSpan);
        }
        public ActionResult AddLike(string userId, string For, int forId, string spanId)
        {
            ViewData["Id"] = userId;

            Likes like = new Likes
            {
                For    = For,
                ForId  = forId,
                UserId = userId
            };

            repository.AddLike(like);

            return(PartialView("LikesDislikesCount", new LikesDislikes
            {
                For = For,
                ForId = forId,
                spanId = spanId,
                Likes = repository.Likes.Where(l => l.For == For && l.ForId == forId),
                Dislikes = repository.Dislikes.Where(d => d.For == For && d.ForId == forId)
            }));
        }
Ejemplo n.º 3
0
        public async Task VideoLikes(int videoId, string userId)
        {
            bool  likeInd    = false;
            bool  dislikeInd = false;
            Likes like       = repository.Likes
                               .FirstOrDefault(l => l.For == "Video" &&
                                               l.ForId == videoId && l.UserId == userId);

            if (like == null)
            {
                like = new Likes
                {
                    For    = "Video",
                    ForId  = videoId,
                    UserId = userId
                };
                repository.AddLike(like);
                likeInd = true;

                _ = ShowNotification(userId, videoId);
            }
            else
            {
                repository.DeleteLike(like.Id);
            }

            int totalLikes = repository.Likes
                             .Where(l => l.For == "Video" && l.ForId == videoId)
                             .Count();
            int totalDislikes = repository.Dislikes
                                .Where(d => d.For == "Video" && d.ForId == videoId)
                                .Count();

            await Clients.All.SendAsync("AddRemoveLike", videoId, userId,
                                        totalLikes, likeInd, totalDislikes, dislikeInd);
        }