public ActionResult EditArticle(int articleId) { var db = new ArticlesDb(); var article = db.Articles.Where(x => x.Id == articleId).FirstOrDefault(); ArticleDetailPageViewModel viewModel = new ArticleDetailPageViewModel { Article = article }; return(View(viewModel)); }
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 })); }
public ActionResult UpdateArticle(Article updatedArticle) { var db = new ArticlesDb(); var storedArticle = GetArticleById(updatedArticle.Id); if (storedArticle != null) { storedArticle.Content = updatedArticle.Content; storedArticle.Title = storedArticle.Title; db.SaveChanges(); TempData["success"] = "Article updated"; return(RedirectToAction("Index")); } Response.StatusCode = 404; return(Content("Article not found")); }
public ActionResult CreateArticle(Article article) { if (HttpContext.User.Identity.IsAuthenticated) { article.Author = HttpContext.User.Identity.Name; } else { article.Author = "Ricardo"; //this is when testing and not logged in } var db = new ArticlesDb(); article.PublishedDate = DateTime.Now; db.Articles.Add(article); db.SaveChanges(); TempData["success"] = "Article created successfully"; return(RedirectToAction("Index")); }
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 ActionResult DeleteArticle(int id) { var db = new ArticlesDb(); var article = db.Articles.Find(id); if (article != null) { db.Articles.Remove(article); } else { Response.StatusCode = 404; return(Content("Article not found.")); } TempData["success"] = "Article deleted successfully"; db.SaveChanges(); return(RedirectToAction("Index")); }
private Article GetArticleById(int id) { var db = new ArticlesDb(); return(db.Articles.Find(id)); }
private List <Article> GetAllArticles() { var db = new ArticlesDb(); return(db.Articles.ToList()); }