public ActionResult Edit(BlogPostVM editedBlogPost) { if (ModelState.IsValid) { _blogPostRepo.EditBlogPost(editedBlogPost.BlogPost); var blogPostID = editedBlogPost.BlogPost.BlogPostId; _blogCategoryRepo.DeleteCategoryFromBlogPost(blogPostID); foreach (var category in editedBlogPost.CategoryArray) { _blogCategoryRepo.AddCategoryToBlog(blogPostID, int.Parse(category)); } string[] postTags = editedBlogPost.Tag.TagName.ToLower().Split(' '); editedBlogPost.Tags = _tagRepo.SelectAllTags(postTags); _blogTagRepo.DeleteTagFromBlog(blogPostID); foreach (var tag in editedBlogPost.Tags) { _blogTagRepo.AddTagToBlog(blogPostID, tag.TagId); } return(RedirectToAction("Index", "Home")); } return(View(editedBlogPost)); }
public ActionResult CreateOrEditBlogPost(Int32?id, String title, String[] authors, String content) { if (String.IsNullOrEmpty(title)) { ModelState.AddModelError(nameof(title), "Title must have a value."); } if (String.IsNullOrEmpty(content)) { ModelState.AddModelError(nameof(content), "Content must have a value."); } if (authors == null || authors.Length == 0) { ModelState.AddModelError(nameof(authors), "At least one author must be specified."); } if (!ModelState.IsValid) { return(View("BlogPostDetails", new BlogPostDetailsViewModel(null))); } if (!id.HasValue) { repository.AddBlogPost(title, authors, content); } else { repository.EditBlogPost(id.Value, title, authors, content); } return(RedirectToAction("Index")); }
public void ProcessEditedBlogPost(BlogPost editedBlogPost) { editedBlogPost.EditDate = DateTime.Now; _blogPostRepo.EditBlogPost(editedBlogPost); int blogPostID = editedBlogPost.BlogPostId; // remove all existing Categories from blog post _blogCategoryRepo.DeleteCategoryFromBlogPost(blogPostID); // add selected categories to this blog post foreach (var category in editedBlogPost.AssignedCategories) { _blogCategoryRepo.AddCategoryToBlog(blogPostID, category.CategoryId); } List <string> justTagNames = new List <string>(); foreach (var tag in editedBlogPost.AssignedTags) { justTagNames.Add(tag.TagName); } // add newly created tag names to tag repo, assigns them valid tagIDs, returns list of valid Tag objects editedBlogPost.AssignedTags = _tagRepo.AddAllTags(justTagNames); // remove all assigned tags to this blogPost _blogTagRepo.DeleteTagFromBlog(blogPostID); // assign newly created Tags to this blog post foreach (var tag in editedBlogPost.AssignedTags) { _blogTagRepo.AddTagToBlog(blogPostID, tag.TagId); } }