VIKINGSController.cs 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. using System.Net;
  2. using System.Web.Mvc;
  3. using CD67.ModeleMVC.Entity;
  4. using CD67.ModeleMVC.Factory;
  5. using System.Collections.Generic;
  6. using System;
  7. using System.Linq;
  8. using CD67.ModeleMVC.MVC.Internal;
  9. namespace CD67.ModeleMVC.MVC.Controllers
  10. {
  11. public class VIKINGSController : Controller
  12. {
  13. private Entities db = new Entities();
  14. // GET: VIKINGS
  15. public ActionResult Index()
  16. {
  17. EXEMPLE_VIKINGSFactory vikingsFactory = new EXEMPLE_VIKINGSFactory(db);
  18. return View(vikingsFactory.getAll());
  19. }
  20. public ActionResult Test()
  21. {
  22. return View();
  23. }
  24. // GET: VIKINGS/Details/5
  25. public ActionResult Details(int? id)
  26. {
  27. if (id == null)
  28. {
  29. return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
  30. }
  31. EXEMPLE_VIKINGSFactory vikingsFactory = new EXEMPLE_VIKINGSFactory(db);
  32. EXEMPLE_VIKINGS viking = vikingsFactory.getById(id.Value);
  33. if (viking == null)
  34. {
  35. return HttpNotFound();
  36. }
  37. ViewBag.id = id;
  38. return View(viking);
  39. }
  40. // GET: VIKINGS/Create
  41. public ActionResult Create()
  42. {
  43. EXEMPLE_VIKINGS viking = new EXEMPLE_VIKINGS();
  44. FillSelect(viking);
  45. return View(viking);
  46. }
  47. // POST: VIKINGS/Create
  48. // Afin de déjouer les attaques par sur-validation, activez les propriétés spécifiques que vous voulez lier. Pour
  49. // plus de détails, voir http://go.microsoft.com/fwlink/?LinkId=317598.
  50. [HttpPost]
  51. [ValidateAntiForgeryToken]
  52. public ActionResult Create([Bind(Include = "ID,NOM,ID_TYPE,ID_SOUS_TYPE,DESCRIPTION,DATE_INUTILE")] EXEMPLE_VIKINGS viking)
  53. {
  54. if (ModelState.IsValid)
  55. {
  56. EXEMPLE_VIKINGSFactory vikingsFactory = new EXEMPLE_VIKINGSFactory(db);
  57. vikingsFactory.add(ref viking);
  58. // Ajout d'un message flash
  59. this.Success("Viking créé avec succès.");
  60. return RedirectToAction("Index");
  61. }
  62. FillSelect(viking);
  63. return View(viking);
  64. }
  65. // GET: VIKINGS/Edit/5
  66. public ActionResult Edit(int? id)
  67. {
  68. if (id == null)
  69. {
  70. return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
  71. }
  72. EXEMPLE_VIKINGSFactory vikingsFactory = new EXEMPLE_VIKINGSFactory(db);
  73. EXEMPLE_VIKINGS viking = vikingsFactory.getById(id.Value);
  74. if (viking == null)
  75. {
  76. return HttpNotFound();
  77. }
  78. FillSelect(viking);
  79. return View(viking);
  80. }
  81. // POST: VIKINGS/Edit/5
  82. // Afin de déjouer les attaques par sur-validation, activez les propriétés spécifiques que vous voulez lier. Pour
  83. // plus de détails, voir http://go.microsoft.com/fwlink/?LinkId=317598.
  84. [HttpPost]
  85. [ValidateAntiForgeryToken]
  86. public ActionResult Edit([Bind(Include = "ID,NOM,ID_TYPE,ID_SOUS_TYPE,DESCRIPTION,DATE_INUTILE")] EXEMPLE_VIKINGS viking)
  87. {
  88. if (ModelState.IsValid)
  89. {
  90. EXEMPLE_VIKINGSFactory vikingsFactory = new EXEMPLE_VIKINGSFactory(db);
  91. vikingsFactory.update(ref viking);
  92. // Ajout d'un message flash
  93. this.Success("Viking édité avec succès.");
  94. return RedirectToAction("Index");
  95. }
  96. FillSelect(viking);
  97. return View(viking);
  98. }
  99. // GET: VIKINGS/Delete/5
  100. public ActionResult Delete(int? id)
  101. {
  102. if (id == null)
  103. {
  104. return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
  105. }
  106. EXEMPLE_VIKINGSFactory vikingsFactory = new EXEMPLE_VIKINGSFactory(db);
  107. EXEMPLE_VIKINGS viking = vikingsFactory.getById(id.Value);
  108. if (viking == null)
  109. {
  110. return HttpNotFound();
  111. }
  112. return View(viking);
  113. }
  114. // POST: VIKINGS/Delete/5
  115. [HttpPost, ActionName("Delete")]
  116. [ValidateAntiForgeryToken]
  117. public ActionResult DeleteConfirmed(int id)
  118. {
  119. EXEMPLE_VIKINGSFactory vikingsFactory = new EXEMPLE_VIKINGSFactory(db);
  120. EXEMPLE_VIKINGS viking = vikingsFactory.getById(id);
  121. vikingsFactory.delete(ref viking);
  122. // Ajout d'un message flash
  123. this.Success("Viking supprimé avec succès.");
  124. return RedirectToAction("Index");
  125. }
  126. protected override void Dispose(bool disposing)
  127. {
  128. if (disposing)
  129. {
  130. db.Dispose();
  131. }
  132. base.Dispose(disposing);
  133. }
  134. private void FillSelect(EXEMPLE_VIKINGS viking)
  135. {
  136. EXEMPLE_TYPE_VIKINGFactory typeVikingFactory = new EXEMPLE_TYPE_VIKINGFactory(db);
  137. ViewBag.ID_TYPE = new SelectList(typeVikingFactory.getAll(), "ID", "TYPE", viking.ID_TYPE);
  138. //Chargement d'une liste vide à la création
  139. SOUS_TYPE_VIKINGFactory sousTypeFactory = new SOUS_TYPE_VIKINGFactory();
  140. ViewBag.ID_SOUS_TYPE = new SelectList(sousTypeFactory.getManyBy(viking.ID_TYPE).OrderBy(i => i.Value), "Key", "Value", viking.ID_SOUS_TYPE);
  141. }
  142. //Mise à jour Ajax de la liste imbriquée
  143. public JsonResult listeSousType(int Id, int? defaultSelected)
  144. {
  145. SOUS_TYPE_VIKINGFactory sousTypeFactory = new SOUS_TYPE_VIKINGFactory();
  146. List<SelectListItem> listType = new List<SelectListItem>();
  147. Dictionary<int, string> infoType = sousTypeFactory.getManyBy(Id); //le dictionnaire doit devenir une liste de types
  148. List<Tuple<int, string>> listeType = new List<Tuple<int, string>>();
  149. foreach (var type in infoType)
  150. listeType.Add(new Tuple<int, string>(int.Parse(type.Key.ToString()), type.Value));
  151. foreach (Tuple<int, string> liste in listeType)
  152. listType.Add(new SelectListItem { Text = liste.Item2, Value = liste.Item1.ToString() });
  153. return Json(new SelectList(listType, "Value", "Text", defaultSelected), JsonRequestBehavior.AllowGet);
  154. }
  155. }
  156. }