public IActionResult DeleteDraft(AdminEditBlogPostDraftModel model) { var draft = model.Draft; blogRepository.DeleteDraft(draft); TempData["message"] = "Your draft was deleted"; return(RedirectToAction("Home")); }
public IActionResult PreviewDraft(AdminEditBlogPostDraftModel model) { // save and redirect if (ModelState.IsValid) { blogRepository.SaveDraft(model.Draft); } return(RedirectToAction(nameof(PreviewDraft), new { draftId = model.Draft.BlogPostTemplateId })); }
public IActionResult AddCategoryToDraft(AdminEditBlogPostDraftModel model, string newCategory) { model.CategoriesSelected.Add(new CategoryCheckBox { Category = newCategory, Selected = true }); return(View(nameof(EditBlogPostDraft), model)); }
public IActionResult UpdateDraft(AdminEditBlogPostDraftModel model) { if (ModelState.IsValid) { blogRepository.SaveDraft(model.Draft); TempData["message"] = "Your draft was successfully updated"; } else { TempData["message"] = "Your requested action could not be completed"; } return(RedirectToAction(nameof(EditBlogPostDraft), new { blogPostDraftId = model.Draft.BlogPostTemplateId })); }
public IActionResult PublishDraftToPost(AdminEditBlogPostDraftModel model) { var draft = model.Draft; if (ModelState.IsValid) { blogRepository.PublishDraftToPost(draft); TempData["message"] = "Your draft was successfully published"; return(RedirectToAction("Home")); } else { TempData["message"] = "Your request could not be completed"; return(View(nameof(EditBlogPostDraft), model)); } }
public void EditBlogPostDraft_HasNonExistentTitle_SavesInRepo() { var mockRepo = Substitute.For <IBlogPostRepository>(); mockRepo.GetAllCategoriesUsed(false).Returns(new List <string>()); var controller = new AdminController(mockRepo); controller.TempData = Substitute.For <ITempDataDictionary>(); var draft = ValidDraftFactory(); var model = new AdminEditBlogPostDraftModel(mockRepo) { Draft = draft }; var result = controller.EditBlogPostDraft(model); mockRepo.Received().SaveDraft(draft); }
public void EditBlogPostDraft_NoTitle_DoesNotSaveInRepo() { var mockRepo = Substitute.For <IBlogPostRepository>(); mockRepo.GetAllCategoriesUsed(false).Returns(new List <string>()); var controller = new AdminController(mockRepo); var draft = new BlogPostDraft(); draft.PageTitle = ""; draft.FullContent = "something"; var model = new AdminEditBlogPostDraftModel(mockRepo) { Draft = draft }; var result = controller.EditBlogPostDraft(model); mockRepo.DidNotReceive().SaveDraft(draft); }
public void PublishDraftToPost_ValidState_CallsRepoPublish() { var mockRepo = Substitute.For <IBlogPostRepository>(); mockRepo.GetAllCategoriesUsed(false).Returns(new List <string>()); var draft = new BlogPostDraft { PageTitle = "Something", FullContent = "something..." }; var model = new AdminEditBlogPostDraftModel(mockRepo) { Draft = draft }; var controller = new AdminController(mockRepo); controller.TempData = Substitute.For <ITempDataDictionary>(); var result = controller.PublishDraftToPost(model); mockRepo.Received().PublishDraftToPost(draft); }
public ViewResult EditBlogPostDraft(int blogPostDraftId) { var repoDraft = blogRepository.GetDraftById(blogPostDraftId); AdminEditBlogPostDraftModel model; if (repoDraft == null) { model = new AdminEditBlogPostDraftModel(blogRepository) { Draft = new BlogPostDraft() }; } else { model = new AdminEditBlogPostDraftModel(blogRepository) { Draft = repoDraft }; } return(View(model)); }
public void GetDraft_FillsSelectedCats() { List <CategoryCheckBox> boxes = new List <CategoryCheckBox>(); boxes.Add(new CategoryCheckBox { Category = "Cat1", Selected = true }); boxes.Add(new CategoryCheckBox { Category = "Cat2", Selected = true }); boxes.Add(new CategoryCheckBox { Category = "Cat3", Selected = false }); boxes.Add(new CategoryCheckBox { Category = "Cat4", Selected = true }); var mockRepo = Substitute.For <IBlogPostRepository>(); mockRepo.GetAllCategoriesUsed(false) .Returns(new List <string> { "Cat1", "Cat2", "Cat3", "Cat4" }); var model = new AdminEditBlogPostDraftModel(mockRepo); model.Draft = new BlogPostDraft { PageTitle = "Title" }; model.Draft.CategoriesDbCollection = "Cat1,Cat3"; model.CategoriesSelected = boxes; Assert.Contains("Cat2", model.Draft.Categories); Assert.Contains("Cat4", model.Draft.Categories); Assert.Contains("Cat1", model.Draft.Categories); Assert.IsFalse(model.Draft.Categories.Contains("Cat3")); Assert.AreEqual(model.Draft.Categories.Count, 3); }
public IActionResult EditBlogPostDraft(AdminEditBlogPostDraftModel model) { var draft = model.Draft; if (string.IsNullOrEmpty(draft.PageTitle)) { ModelState.AddModelError("", "Your draft must have a page title"); return(View()); } if (blogRepository.SaveDraft(draft)) { TempData["message"] = "Your draft was successfully saved to the database"; return(RedirectToAction("Home")); } else { TempData["message"] = "A post with that title already exists. " + "Your changes could not be saved"; ModelState.AddModelError("", "A post with that title already exists"); return(View(model)); } }