public async Task <IActionResult> AddLike(int postId) { Post post = _postRepository.Get(p => p.Id == postId).FirstOrDefault(); if (post != null) { PostLikeAndView lav = _lavRepository.Get(p => p.Id == post.LikeAndViewId).FirstOrDefault(); User user = await _userManager.GetUserAsync(User); List <int> ulp = (user.LikedPostsId ?? new int[] {}).ToList(); if (ulp.Contains(postId)) { lav.Likes--; ulp.Remove(postId); } else { lav.Likes++; ulp.Add(postId); } _lavRepository.Update(lav); user.LikedPostsId = ulp.ToArray(); await _userManager.UpdateAsync(user); } return(RedirectToAction("Item", "Blog", new { id = postId, view = false })); }
public async Task <IActionResult> Item(int id, bool?view) { User user = await _userManager.GetUserAsync(User); BlogViewModel model = await _postRepository.GetById(id); if (model == null || !model.Permitted) { return(RedirectToAction("Index")); } _postLikesAndViewRepository.Update(new PostLikeAndView { Likes = model.Likes, Views = model.Views + ((view ?? true) ? 1 : 0), Id = await _postLikesAndViewRepository.GetIdByPostId(id) }); model.isLiked = false; if (user != null) { if (user.LikedPostsId != null) { if (user.LikedPostsId.ToList().Contains(id)) { model.isLiked = true; } } } return(View(model)); }