public JsonResult Edit(EditPageViewModel viewModel) { if (!ModelState.IsValid) return Json(new JsonResponse("Invalid Data", "Please provide correct details for page")); var getPage = _repoWebPage.DbContext.WebPages.FirstOrDefault(pg => pg.Id == viewModel.PageId); if (getPage == null) return Json(new JsonResponse("Invalid Page!", "Invalid page id.")); if (_repoWebPage.DbContext.WebPages.FirstOrDefault(pg => pg.Id != viewModel.PageId && pg.Title == viewModel.Title) != null) return Json(new JsonResponse("Page exists Already!", "A page with same title/name already exists")); var pageTitleChanged = getPage.Title != viewModel.Title; getPage.Title = viewModel.Title; getPage.Contents = viewModel.Contents; _repoWebPage.DbContext.SaveChanges(); return Json(new JsonResponse((object)null) { Message = "Page updated successfully!", Description = "Page details have been updated successfully!", Content = pageTitleChanged ? new { TreeView= RenderPartialViewToString("PagesTreeView", new PagesTreeView{CurrentPages = _repoWebPage.GetAllPages()}), Page = RenderPartialViewToString("Edit", viewModel) } : null }); }
public JsonResult Add(AddPageViewModel viewModel) { if (!ModelState.IsValid) return Json(new JsonResponse("Invalid Data", "Please provide correct details for page")); if (_repoWebPage.DbContext.WebPages.FirstOrDefault(pg => pg.Title == viewModel.Title) != null) return Json(new JsonResponse("Page exists Already!", "A page with same title/name already exists")); WebPage getPage = null; if (viewModel.ParentId != 0) { getPage = _repoWebPage.DbContext.WebPages.FirstOrDefault(pg => pg.Id == viewModel.ParentId && pg.Parent == null); if (getPage == null) return Json(new JsonResponse("Invalid parent page!", "The chosen parent page doesn't exist or is not root page.")); } var newPage = new WebPage { Title = viewModel.Title, Parent = getPage, Contents = viewModel.Contents, IsPublished = false }; _repoWebPage.DbContext.WebPages.Add(newPage); _repoWebPage.DbContext.SaveChanges(); var viewEditModel = new EditPageViewModel { PageId = newPage.Id, Title = newPage.Title, Contents = newPage.Contents, ParentId = newPage.ParentId, ParentName = (newPage.Parent != null ? newPage.Parent.Title : "") }; var modelTreeView = new PagesTreeView{CurrentPages = _repoWebPage.GetAllPages()}; return Json(new JsonResponse( new { TreeView = RenderPartialViewToString("PagesTreeView", modelTreeView), Page = RenderPartialViewToString("Edit", viewEditModel) }) { Message = "Page Added Successfully!", Description = "New Page has been added succesfully." }); }
public JsonResult Edit(int pageId) { var getPage = _repoWebPage.DbContext.WebPages.FirstOrDefault(pg => pg.Id == pageId); if (getPage == null) return Json(new JsonResponse("Invalid Page!", "Invalid page id."), JsonRequestBehavior.AllowGet); string parentName = default(string); if (getPage.ParentId != 0) { var getParentPage = _repoWebPage.DbContext.WebPages.FirstOrDefault(pg => pg.Id == getPage.ParentId); if (getParentPage != null) { parentName = getParentPage.Title; } } var viewModel = new EditPageViewModel { PageId = getPage.Id, Title = getPage.Title, Contents = getPage.Contents, ParentId= getPage.ParentId, ParentName = parentName }; var viewEdit = RenderPartialViewToString("Edit", viewModel); return Json(new JsonResponse((object)viewEdit), JsonRequestBehavior.AllowGet); }