public ActionResult <BlogPostView> AddBlogPost([FromBody] InsertBlogView ibv) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } BlogPost blogPost = new BlogPost(); blogPost.Title = ibv.Title; blogPost.Description = ibv.Description; blogPost.Body = ibv.Body; foreach (string tag in ibv.TagList) { // If for some reason an non-existant an unknown tag is passed try { PostTags pt = new PostTags { BlogPostID = blogPost.BlogPostID, TagID = db.Tags.SingleOrDefault(t => t.TagName == tag).TagID }; if (pt != null) { blogPost.PostTags.Add(pt); } } catch { continue; } } blogPost.CreatedAt = DateTime.Now; blogPost.UpdatedAt = blogPost.CreatedAt; blogPost.Favorited = false; blogPost.FavoritesCount = 0; blogPost.Slug = SlugGenerator(blogPost.Title); db.BlogPosts.Add(blogPost); db.SaveChanges(); return(bpConverter.ToBlogPostView(blogPost)); }
public ActionResult <BlogPostView> UpdateBlogPost(string slug, [FromBody] InsertBlogView insertBlogView) { if (string.IsNullOrWhiteSpace(slug)) { BadRequest(); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } BlogPost blogPost = db.BlogPosts.Include(bp => bp.PostTags).FirstOrDefault(bp => bp.Slug == slug); if (blogPost != null) { if (!string.IsNullOrWhiteSpace(insertBlogView.Body)) { blogPost.Body = insertBlogView.Body; } if (!string.IsNullOrWhiteSpace(insertBlogView.Description)) { blogPost.Description = insertBlogView.Description; } if (!string.IsNullOrWhiteSpace(insertBlogView.Title) && !blogPost.Title.Equals(insertBlogView.Title)) { blogPost.Title = insertBlogView.Title; blogPost.Slug = SlugGenerator(insertBlogView.Title); } blogPost.UpdatedAt = DateTime.Now; db.Entry(blogPost).State = EntityState.Modified; db.SaveChanges(); return(bpConverter.ToBlogPostView(blogPost)); } return(null); }