public async Task <IActionResult> PostEditAsync(Guid id, PageFormViewModel vm) { if (!ModelState.IsValid) { return(BackWithError("Error", "An error occurred while processing your request.")); } try { var page = await _pages.UpdateAsync( new UpdatePageCommand( id, vm.Title, vm.Slug, vm.Published ? State.Published : State.Draft, vm.Type)); return(RedirectToAction("Page", "Notes", new { bookSlug = page.Book.Slug, pageSlug = page.Slug })); } catch (Exception ex) { _logger.LogError(ex, "Error"); return(BackWithError("Error", "An error occurred while processing your request.")); } }
public ActionResult EditPage(PageFormViewModel pageModel) { if (!ModelState.IsValid) { return(View(pageModel)); } var page = _context.Pages.Find(pageModel.Id); string slug = ""; if (pageModel.Slug != "home") { if (String.IsNullOrWhiteSpace(pageModel.Slug)) { slug = pageModel.Title.Replace(" ", "-").ToLower(); } else { slug = pageModel.Slug.Replace(" ", "-").ToLower(); } } if (_context.Pages.Where(p => p.Id != pageModel.Id).Any(p => p.Title == pageModel.Title) || _context.Pages.Where(p => p.Id != pageModel.Id).Any(p => p.Slug == pageModel.Slug)) { ModelState.AddModelError("", "Title or Slug already exist."); return(View(pageModel)); } page.Title = pageModel.Title; page.Slug = slug; page.Body = pageModel.Body; page.HasSidebar = pageModel.HasSidebar; _context.SaveChanges(); TempData["SuccessMessage"] = "You have edited this page!"; return(RedirectToAction("EditPage")); }
public ActionResult AddPage(PageFormViewModel pageModel) { if (!ModelState.IsValid) { return(View(pageModel)); } string slug = ""; if (String.IsNullOrWhiteSpace(pageModel.Slug)) { slug = pageModel.Title.Replace(" ", "-").ToLower(); } else { slug = pageModel.Slug.Replace(" ", "-").ToLower(); } if (_context.Pages.Any(p => p.Slug == pageModel.Slug) || _context.Pages.Any(p => p.Title == pageModel.Title)) { ModelState.AddModelError("", "Title or Slug already exists."); return(View(pageModel)); } var page = new Page { Title = pageModel.Title, Slug = slug, Body = pageModel.Body, Sorting = 100, HasSidebar = pageModel.HasSidebar }; _context.Pages.Add(page); _context.SaveChanges(); TempData["SuccessMessage"] = "You have added page!"; return(RedirectToAction("AddPage")); }