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);
}