示例#1
0
        public async Task <IActionResult> LikePost([FromBody] LikePostViewModel viewModel)
        {
            var postLike = new PostLike
            {
                // ReSharper disable once TooManyChainedReferences
                UserId    = _caller.Claims.Single(claim => claim.Type == "id").ToString().Remove(0, 4),
                PostId    = viewModel.PostId,
                LikeTime  = DateTime.Now,
                LikeCount = viewModel.Value
            };
            var result = await _postRepository.LikePost(postLike);

            return(new OkObjectResult(new
            {
                Message = " bine ba ai postat o glumitza",
                result
            }));
        }
        public void LikePost(LikePostViewModel likePostViewModel)
        {
            if (likePostViewModel == null || string.IsNullOrEmpty(likePostViewModel.UserId) || likePostViewModel.PostId <= 0)
            {
                return;
            }
            var user = _dbContext.Users.FirstOrDefault(x => x.Id == likePostViewModel.UserId);

            if (user == null)
            {
                return;
            }

            var post = _dbContext.Posts.FirstOrDefault(x => x.Id == likePostViewModel.PostId);

            if (post == null)
            {
                return;
            }

            var like = new Like
            {
                UserId = likePostViewModel.UserId,
                PostId = likePostViewModel.PostId
            };

            _dbContext.Likes.Add(like);
            _dbContext.SaveChanges();

            var savedLikeModel = new SavedLikeViewModel
            {
                PostId        = post.Id,
                LikeCount     = post.Likes.Count,
                LikedByUserId = user.Id
            };

            Clients.All.increaseLikePostCount(savedLikeModel);
        }