/// <summary> /// News the specified new page model. /// </summary> /// <param name="newModel">The new model.</param> /// <param name="currentPage">The current page.</param> /// <returns></returns> public ActionResult New(NewModel newModel, dynamic currentPage) { if (ModelState.IsValid) { var parent = currentPage as IPage; // create a new page from the selected page model var page = Activator.CreateInstance(Type.GetType(newModel.SelectedPageModel)) as IPage; using (IDocumentSession session = this.documentStore.OpenSession()) { var viewModel = new NewPageViewModel { RootModel = page, ParentModel = parent, NewPageModel = page, SlugsInUse = parent != null ? JsonConvert.SerializeObject( session.Advanced.GetChildrenFor(parent).Select(x => x.Metadata.Slug)) : null }; ViewBag.Class = "edit"; return View("new", viewModel); } } return PartialView("add", newModel); }
/// <summary> /// News the specified new page model. /// </summary> /// <param name="newModel">The new model.</param> /// <returns></returns> public ActionResult New(NewModel newModel) { if (ModelState.IsValid) { var parent = _currentPage as IPage; // create a new page from the selected page model var page = Activator.CreateInstance(Type.GetType(newModel.SelectedPageModel)) as dynamic; page.Metadata.Url = parent != null ? VirtualPathUtility.AppendTrailingSlash(parent.Metadata.Url) : String.Empty; page.Metadata.Published = DateTime.Now; var viewModel = new NewPageViewModel { RootModel = _structureInfo != null ? _structureInfo.StartPage : null, ParentModel = parent, NewPageModel = page, SlugsInUse = parent != null ? Newtonsoft.Json.JsonConvert.SerializeObject(_session.Load<IPage>(parent.Children).Select(x => x.Metadata.Slug)) : null }; ViewBag.Class = "edit"; return View("new", viewModel); } return PartialView("add", newModel); }