public ActionResult CreatePage(AdminPagesVm model) { //Validaate the model state if (!ModelState.IsValid) { return(View(model)); } using (MyDb db = new MyDb()) { //Declare the Slug string slug; //Initialize the PageDTO PageDTO dTO = new PageDTO(); //Display the DTO Title dTO.Title = model.Title; //Check and Set the Slug if (string.IsNullOrWhiteSpace(model.Slug)) { slug = model.Title.Replace(" ", "-").ToLower(); } else { slug = model.Slug.Replace(" ", " ").ToLower(); } //Make sure the Title and Slug are Unique from each other if (db.Pages.Any(x => x.Title == model.Title) || db.Pages.Any(x => x.Slug == slug)) { ModelState.AddModelError(" ", "The Title or Slug entered already exist. "); return(View(model)); } //DTO the rest of the pages dTO.Slug = slug; dTO.Body = model.Body; dTO.HasSidebar = model.HasSidebar; dTO.Sorting = 100; //Save the pageDTO db.Pages.Add(dTO); db.SaveChanges(); } //Save the temporary message TempData["SM"] = "You have successfully added a new page!"; //Redirect the page return(RedirectToAction("CreatePage")); }
public ActionResult EditPage(AdminPagesVm model) { //Check model State if (!ModelState.IsValid) { return(View(model)); } using (MyDb db = new MyDb()) { //Get the Page Id int id = model.Id; //Delcare Slug string slug = "home"; //Get the Page PageDTO dTO = db.Pages.Find(id); //Reference DTO to the Page Title dTO.Title = model.Title; //Check for the Slug on the page and set it if there is need if (model.Slug != "home") { if (string.IsNullOrWhiteSpace(model.Slug)) { slug = model.Title.Replace(" ", "-").ToLower(); } else { slug = model.Slug.Replace(" ", "-").ToLower(); } } //Make sure the Title and Slug are unique if (db.Pages.Where(x => x.Id != id).Any(x => x.Title == model.Title) || db.Pages.Where(x => x.Id != id).Any(x => x.Slug == slug)) { ModelState.AddModelError(" ", "The Slug or Title requested already exists!"); return(View(model)); } //DTO the rest of the Pages dTO.Slug = slug; dTO.Body = model.Body; dTO.HasSidebar = model.HasSidebar; //Save the DTO db.SaveChanges(); } //Set Temp data message TempData["SM"] = "You have successfully Edited the page!"; //Redirect the pages return(RedirectToAction("EditPage")); }
public ActionResult EditPage(int id) { //Declare the page view model AdminPagesVm model; using (MyDb db = new MyDb()) { //Get the Page PageDTO dTO = db.Pages.Find(id); //Confirm if the page exist if (dTO == null) { return(Content("The Page requested does not exist!")); } //Initialize the page view model model = new AdminPagesVm(dTO); } //Return the view with the model return(View(model)); }