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