public virtual ActionResult Update(dynamic currentPage, FormCollection collection)
{
using (IDocumentSession session = this.documentStore.OpenSession())
{
if (!TryUpdateModel(currentPage, "CurrentModel", collection))
{
var viewModel = new EditViewModel
{
RootModel = session.Advanced.GetStartPage(),
CurrentModel = currentPage,
ParentModel = session.Advanced.GetParentFor<IPage>((IPage) currentPage),
};
return View("edit", viewModel);
}
session.Store((IPage) currentPage,
currentPage.Metadata.IsPublished ? StoreAction.Publish : StoreAction.Save);
session.SaveChanges();
if (currentPage.Parent != null)
{
currentPage = session.Advanced.GetParentFor<IPage>((IPage) currentPage);
}
return RedirectToAction("index", new {currentPage});
}
}