VIKINGSController.cs 5.8 KB

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