public async Task <ActionResult> AddLike(int id) { var db = new ArticlesDb(); var likeDb = new LikesDb(); var article = db.Articles.Find(id); var userId = HttpContext.User.Identity.GetUserId(); var like = likeDb.Likes.Where(x => x.UserId == userId && x.ArticleId == article.Id).FirstOrDefault(); //user already liked this so remove like if (like != null) { if (article != null) { likeDb.Likes.Remove(like); await likeDb.SaveChangesAsync(); article.Likes = await GetArticleLikes(id); await db.SaveChangesAsync(); } } else { if (article != null) { like = new Like(); like.ArticleId = article.Id; like.UserId = userId; likeDb.Likes.Add(like); await likeDb.SaveChangesAsync(); article.Likes = await GetArticleLikes(id); await db.SaveChangesAsync(); } } return(PartialView("~/Views/Articles/Partials/LikesCount.cshtml", article)); }
public async Task <ActionResult> AddComment(Comment comment) { var articlesDb = new ArticlesDb(); var article = await articlesDb.Articles.FindAsync(comment.ArticleId); var commentsDb = new CommentsDb(); comment.PublishedDate = DateTime.Now; comment.UserName = HttpContext.User.Identity.Name; commentsDb.Comments.Add(comment); await articlesDb.SaveChangesAsync(); await commentsDb.SaveChangesAsync(); return(RedirectToAction("ArticleDetail", new { articleId = article.Id })); }