Esempio n. 1
0
        /// <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 = _model as IPageModel;
                // 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    = _session.Query <IPageModel>().SingleOrDefault(model => model.Parent == null),
                    ParentModel  = parent,
                    NewPageModel = page,
                    SlugsInUse   = parent != null?Newtonsoft.Json.JsonConvert.SerializeObject(_session.Load <IPageModel>(parent.Children).Select(x => x.Metadata.Slug)) : null
                };

                ViewBag.Class = "edit";
                return(View("new", viewModel));
                //return PartialView("new", viewModel);
            }

            return(PartialView("add", newModel));
        }
Esempio n. 2
0
        /// <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));
        }
Esempio n. 3
0
        public virtual ActionResult Save(
            [ModelBinder(typeof(ContentModelBinder)), Bind(Prefix = "NewPageModel")] IPage pageModel,
            dynamic currentPage)
        {
            var parent = currentPage as Page;

            if (!ModelState.IsValid)
            {
                NewPageViewModel viewModel;
                using (IDocumentSession session = this.documentStore.OpenSession())
                {
                    viewModel = new NewPageViewModel
                    {
                        RootModel    = session.Advanced.GetStartPage(),
                        ParentModel  = parent,
                        NewPageModel = pageModel,
                        SlugsInUse   =
                            parent != null
                                ? JsonConvert.SerializeObject(
                                session.Advanced.GetChildrenFor((IPage)currentPage)
                                .Select(x => x.Metadata.Slug))
                                : null
                    };
                }

                return(View("new", viewModel));
            }

            using (IDocumentSession session = this.documentStore.OpenSession())
            {
                session.Store(pageModel, pageModel.Metadata.IsPublished ? StoreAction.Publish : StoreAction.Save);

                if (parent != null)
                {
                    pageModel.Parent = (Page)currentPage;

                    IPage[] children = session.Advanced.GetChildrenFor((IPage)currentPage).ToArray();

                    int max = children.Length > 0 ? children.Max(x => x.Metadata.SortOrder) : 0;

                    pageModel.Metadata.SortOrder = max + 1;
                }

                session.SaveChanges();
            }
            return(RedirectToAction("index", new { currentPage = parent ?? pageModel }));
        }
Esempio n. 4
0
        public virtual ActionResult Save()
        {
            if (ModelState.IsValid)
            {
                var parent = _model as PageModel;
                // create a new page from the new model
                var page = Activator.CreateInstance(Type.GetType(Request.Form["AssemblyQualifiedName"])) as dynamic;

                if (!TryUpdateModel(page, "NewPageModel"))
                {
                    var viewModel = new NewPageViewModel
                    {
                        RootModel    = _session.Query <IPageModel>().SingleOrDefault(model => model.Parent == null),
                        ParentModel  = parent,
                        NewPageModel = page,
                        SlugsInUse   = parent != null?Newtonsoft.Json.JsonConvert.SerializeObject(_session.Load <IPageModel>(parent.Children).Select(x => x.Metadata.Slug)) : null
                    };
                    return(View("new", viewModel));
                }

                // Update all values
                UpdateModel(page, "NewPageModel");
                // Store the new page
                _session.Store(page);
                // Set the parent if it's not the start page
                if (parent != null)
                {
                    page.Parent = _model;
                    parent.Children.Add(page.Id);

                    var children = _session.Load <IPageModel>(parent.Children);
                    var max      = children.Max(x => x.Metadata.SortOrder);
                    page.Metadata.SortOrder = max + 1;
                }
                // Set changed date
                page.Metadata.Changed   = DateTime.Now;
                page.Metadata.ChangedBy = HttpContext.User.Identity.Name;

                // Add page to repository and save changes
                _session.SaveChanges();

                return(RedirectToAction("index", new { model = parent ?? page }));
            }

            return(null);
        }
Esempio n. 5
0
        public NewsPage()
        {
            BindingContext = viewModel = new NewPageViewModel();
            InitializeComponent();

            lb_backFunc();
            void lb_backFunc()
            {
                try
                {
                    b_Back.GestureRecognizers.Add(new TapGestureRecognizer()
                    {
                        Command = new Command(() =>
                        {
                            Navigation.PopModalAsync();
                        })
                    });
                }
                catch (Exception ex) { Debug.WriteLine(ex); }
            }
        }
Esempio n. 6
0
 public MainWindow()
 {
     InitializeComponent();
     _multiPhaseViewModel  = new MultiPhaseViewModel();
     _manualCommsViewModel = new NewPageViewModel();
 }
Esempio n. 7
0
 public NewPage()
 {
     InitializeComponent();
     BindingContext = new NewPageViewModel();
 }