IdentitesController.cs 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Data.Entity;
  5. using System.Linq;
  6. using System.Net;
  7. using System.Web;
  8. using System.Web.Mvc;
  9. using CD67.FicheCollege.Entity;
  10. using CD67.FicheCollege.Factory;
  11. namespace CD67.FicheCollege.MVC.Controllers
  12. {
  13. public class IdentitesController : Controller
  14. {
  15. private Entities db = new Entities();
  16. // GET: Identite/Details/5
  17. public ActionResult Details(int? id)
  18. {
  19. if (id == null)
  20. {
  21. return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
  22. }
  23. IdentiteFactory identiteFactory = new IdentiteFactory(db);
  24. Entity.Identite identite = identiteFactory.getById(id);
  25. if (identite == null)
  26. {
  27. return HttpNotFound();
  28. }
  29. return View(GetViewModel(identite, Models.ModeAcces.Lecture));
  30. }
  31. // GET: Identite/Edit/5
  32. public ActionResult Edit(int? id)
  33. {
  34. if (id == null)
  35. {
  36. return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
  37. }
  38. IdentiteFactory identiteFactory = new IdentiteFactory(db);
  39. Entity.Identite identite = identiteFactory.getById(id);
  40. if (identite == null)
  41. {
  42. return HttpNotFound();
  43. }
  44. return View(GetViewModel(identite, Models.ModeAcces.Modification));
  45. }
  46. // POST: Identite/Edit/5
  47. // Afin de déjouer les attaques par sur-validation, activez les propriétés spécifiques que vous voulez lier. Pour
  48. // plus de détails, voir http://go.microsoft.com/fwlink/?LinkId=317598.
  49. [HttpPost]
  50. [ValidateAntiForgeryToken]
  51. public ActionResult Edit(Entity.Identite Contenu)
  52. {
  53. if (ModelState.IsValid)
  54. {
  55. IdentiteFactory identiteFactory = new IdentiteFactory(db);
  56. identiteFactory.update(ref Contenu);
  57. return RedirectToAction("Details", new { Id = Contenu.College_Id });
  58. }
  59. return View(GetViewModel(Contenu, Models.ModeAcces.Modification));
  60. }
  61. private Models.CollegeViewModel_old GetViewModel(Entity.Identite entity, Models.ModeAcces Acces)
  62. {
  63. object contenu;
  64. if (Acces == Models.ModeAcces.Lecture)
  65. {
  66. List<Models.ContactViewModel> listeContacts = new List<Models.ContactViewModel>();
  67. 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));
  68. 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));
  69. 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));
  70. 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));
  71. contenu = listeContacts;
  72. }
  73. else contenu = entity;
  74. return new Models.CollegeViewModel_old()
  75. {
  76. College_Id = entity.College.Id,
  77. College_Libelle = entity.College.Libelle,
  78. Contenu = contenu,
  79. Acces = Acces,
  80. Listes = null
  81. };
  82. }
  83. protected override void Dispose(bool disposing)
  84. {
  85. if (disposing)
  86. {
  87. db.Dispose();
  88. }
  89. base.Dispose(disposing);
  90. }
  91. }
  92. }