示例#1
0
        public ActionResult Create([Bind(Include = "id_projet,numero,titre,description")] page page)
        {
            PageViewModel model = new PageViewModel();

            if (ModelState.IsValid)
            {
                if (page.titre == null)
                {
                    page.titre = "Veuillez saisir un titre";
                }
                if (page.description == null)
                {
                    page.description = "Veuillez saisir une description";
                }

                db.pages.Add(page);
                db.SaveChanges();
                
                model = createDefaultPageViewModel(page);
                model.validation = true;
                model.validationMessage = "Page créee avec succès";

                //return View("Details", model);
                //TODO DEGEU
                return Redirect("/pages/Details/" + model.page.id_page);
            }

            //TODO : GERER LE CAS ...
            page homePage = db.pages.Where(p => p.id_projet == page.id_projet && p.id_page == 0).Single();
            model = createDefaultPageViewModel(homePage);
            model.page = page;
            model.creation = true;

            return View("Details", model);
        }
示例#2
0
        private PageViewModel createDefaultPageViewModel(page currentPage)
        {
            PageViewModel model = new PageViewModel();
            model.titre = currentPage.titre;
            model.description = currentPage.description;
            model.id_projet = currentPage.id_projet;

            IEnumerable<page> pages = db.projets.Find(currentPage.id_projet).pages.OrderBy(p => p.numero);
            IList<PageLinkViewModel> pagesLinks = new List<PageLinkViewModel>();

            foreach (page p in pages)
            {
                PageLinkViewModel link = new PageLinkViewModel();
                link.titre = p.titre;
                link.page_url = "/pages/Details/" + p.id_page;

                if (currentPage.id_page == p.id_page)
                {
                    link.isCurrent = true;
                }
                else
                {
                    link.isCurrent = false;
                }
                pagesLinks.Add(link);
            }

            model.pages = pagesLinks;
            model.sections = currentPage.sections.OrderBy(s => s.ordre);

            model.page = new page();
            model.page.id_page = currentPage.id_page;
            model.page.id_projet = currentPage.id_projet;
            model.page.numero = pages.Max(p => p.numero) + 1;

            return model;
        }