示例#1
0
        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));
        }
示例#2
0
        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 }));
        }
示例#3
0
        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"));
        }
示例#4
0
        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"));
        }
示例#5
0
        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));
        }
示例#6
0
        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"));
        }
示例#7
0
        private Article GetArticleById(int id)
        {
            var db = new ArticlesDb();

            return(db.Articles.Find(id));
        }
示例#8
0
        private List <Article> GetAllArticles()
        {
            var db = new ArticlesDb();

            return(db.Articles.ToList());
        }