using System; using System.Collections.Generic; using System.Data; using System.Data.Entity; using System.Linq; using System.Net; using System.Web; using System.Web.Mvc; using CD67.FicheCollege.Entity; using CD67.FicheCollege.Factory; namespace CD67.FicheCollege.MVC.Controllers { public class IdentitesController : Controller { private Entities db = new Entities(); // GET: Identite/Details/5 public ActionResult Details(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } IdentiteFactory identiteFactory = new IdentiteFactory(db); Entity.Identite identite = identiteFactory.getById(id); if (identite == null) { return HttpNotFound(); } return View(GetViewModel(identite, Models.ModeAcces.Lecture)); } // GET: Identite/Edit/5 public ActionResult Edit(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } IdentiteFactory identiteFactory = new IdentiteFactory(db); Entity.Identite identite = identiteFactory.getById(id); if (identite == null) { return HttpNotFound(); } return View(GetViewModel(identite, Models.ModeAcces.Modification)); } // POST: Identite/Edit/5 // Afin de déjouer les attaques par sur-validation, activez les propriétés spécifiques que vous voulez lier. Pour // plus de détails, voir http://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public ActionResult Edit(Entity.Identite Contenu) { if (ModelState.IsValid) { IdentiteFactory identiteFactory = new IdentiteFactory(db); identiteFactory.update(ref Contenu); return RedirectToAction("Details", new { Id = Contenu.College_Id }); } return View(GetViewModel(Contenu, Models.ModeAcces.Modification)); } private Models.CollegeViewModel GetViewModel(Entity.Identite entity, Models.ModeAcces Acces) { object contenu; if (Acces == Models.ModeAcces.Lecture) { List listeContacts = new List(); if (entity.Principal_SID != null) listeContacts.Add(new Models.ContactViewModel("Principal", entity.Principal_SID, entity.Principal_Login, entity.Principal_Nom, entity.Principal_Prenom, entity.Principal_Email, entity.Principal_Tel, entity.Principal_Structure)); if (entity.Adjoint_SID != null) listeContacts.Add(new Models.ContactViewModel("Principal adjoint", entity.Adjoint_SID, entity.Adjoint_Login, entity.Adjoint_Nom, entity.Adjoint_Prenom, entity.Adjoint_Email, entity.Adjoint_Tel, entity.Adjoint_Structure)); if (entity.Gestionnaire_SID != null) listeContacts.Add(new Models.ContactViewModel("Gestionnaire", entity.Gestionnaire_SID, entity.Gestionnaire_Login, entity.Gestionnaire_Nom, entity.Gestionnaire_Prenom, entity.Gestionnaire_Email, entity.Gestionnaire_Tel, entity.Gestionnaire_Structure)); if (entity.Gestionnaire2_SID != null) listeContacts.Add(new Models.ContactViewModel("Gestionnaire n°2", entity.Gestionnaire2_SID, entity.Gestionnaire2_Login, entity.Gestionnaire2_Nom, entity.Gestionnaire2_Prenom, entity.Gestionnaire2_Email, entity.Gestionnaire2_Tel, entity.Gestionnaire2_Structure)); contenu = listeContacts; } else contenu = entity; return new Models.CollegeViewModel() { College_Id = entity.College.Id, College_Libelle = entity.College.Libelle, Contenu = contenu, Acces = Acces, Listes = null }; } protected override void Dispose(bool disposing) { if (disposing) { db.Dispose(); } base.Dispose(disposing); } } }