TopModel.cs 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. using CD67.FicheCollege.Entity;
  2. using CD67.FicheCollege.Factory;
  3. using CD67.FicheCollege.MVC.Internal;
  4. using System.Collections.Generic;
  5. using System.ComponentModel.DataAnnotations;
  6. using System.Web.Mvc;
  7. namespace CD67.FicheCollege.MVC.Models
  8. {
  9. public enum ModeAcces
  10. {
  11. [Display(Prompt = "Ajouter")]
  12. Creation,
  13. [Display(Prompt = "Lire")]
  14. Lecture,
  15. [Display(Prompt = "Modifier")]
  16. Modification,
  17. [Display(Prompt = "Supprimer")]
  18. Suppression
  19. }
  20. // Wrapper du modele qui permet d'emmener des informations supplementaires avec celui-ci.
  21. public abstract class TopModel
  22. {
  23. internal object _Obj;
  24. public abstract int Id { get; }
  25. public abstract string Annee_Lib { get; }
  26. // (Facultatif) Mode d'accès à la page
  27. // Defaut: Lecture
  28. public ModeAcces Acces { get; set; }
  29. // (Facultatif) Permet d'emporter d'éventuelles données complémentaires
  30. // comme les listes qui serviront entre autre à peupler les listes déroulantes.
  31. public Dictionary<string, object> Bag { get; set; } = new Dictionary<string, object>();
  32. // Utilisateur courant
  33. public UtilisateurConnecte User = CD67.FicheCollege.MVC.Internal.UtilisateurConnecteFactory.getUtilisateurConnecte();
  34. // ***************************
  35. // Constructeur de base
  36. public TopModel(object model,
  37. ModeAcces acces = ModeAcces.Lecture,
  38. Dictionary<string, object> bag = null)
  39. {
  40. _Obj = model;
  41. Acces = acces;
  42. if (bag != null)
  43. Bag = bag;
  44. }
  45. }
  46. public class AnneeViewModel : TopModel
  47. {
  48. public AnneeViewModel(object model, ModeAcces acces = ModeAcces.Lecture, Dictionary<string, object> bag = null) : base(model, acces, bag)
  49. {
  50. }
  51. public Annee Obj
  52. {
  53. get
  54. {
  55. return (_Obj as Annee);
  56. }
  57. }
  58. public override int Id
  59. {
  60. get
  61. {
  62. return Obj.Id;
  63. }
  64. }
  65. public override string Annee_Lib
  66. {
  67. get
  68. {
  69. return Obj.Libelle;
  70. }
  71. }
  72. }
  73. public class CollegeViewModel : TopModel
  74. {
  75. public SelectList Sel_TypesCollege;
  76. public SelectList Sel_CodesPostaux;
  77. public CollegeViewModel(object model, ModeAcces acces = ModeAcces.Lecture, Dictionary<string, object> bag = null) : base(model, acces, bag)
  78. {
  79. if (acces == ModeAcces.Creation | acces == ModeAcces.Modification)
  80. {
  81. Entities db = new Entities();
  82. TypeCollegeFactory fact = new TypeCollegeFactory(db);
  83. Sel_TypesCollege = new SelectList(fact.getAll(), "Id", "Libelle", Obj.TypeCollege_Id);
  84. Sel_CodesPostaux = new SelectList(Referentiel.GetCodesPostaux(Obj.Commune_Insee), Obj.Code_Postal);
  85. }
  86. }
  87. public College Obj {
  88. get {
  89. return (_Obj as College);
  90. }
  91. }
  92. public override int Id
  93. {
  94. get
  95. {
  96. return Obj.Id;
  97. }
  98. }
  99. public override string Annee_Lib
  100. {
  101. get {
  102. return Obj.Annee.Libelle;
  103. }
  104. }
  105. }
  106. public class IdentiteViewModel : TopModel
  107. {
  108. public List<ContactViewModel> Contacts;
  109. public IdentiteViewModel(object model, ModeAcces acces = ModeAcces.Lecture, Dictionary<string, object> bag = null) : base(model, acces, bag)
  110. {
  111. Contacts = new List<ContactViewModel>();
  112. if (Obj.Principal_SID != null)
  113. Contacts.Add(new ContactViewModel("Principal", Obj.Principal_SID, Obj.Principal_Login, Obj.Principal_Nom, Obj.Principal_Prenom, Obj.Principal_Email, Obj.Principal_Tel, Obj.Principal_Structure));
  114. if (Obj.Adjoint_SID != null)
  115. Contacts.Add(new ContactViewModel("Principal adjoint", Obj.Adjoint_SID, Obj.Adjoint_Login, Obj.Adjoint_Nom, Obj.Adjoint_Prenom, Obj.Adjoint_Email, Obj.Adjoint_Tel, Obj.Adjoint_Structure));
  116. if (Obj.Gestionnaire_SID != null)
  117. Contacts.Add(new ContactViewModel("Gestionnaire", Obj.Gestionnaire_SID, Obj.Gestionnaire_Login, Obj.Gestionnaire_Nom, Obj.Gestionnaire_Prenom, Obj.Gestionnaire_Email, Obj.Gestionnaire_Tel, Obj.Gestionnaire_Structure));
  118. if (Obj.Gestionnaire2_SID != null)
  119. Contacts.Add(new ContactViewModel("Gestionnaire n°2", Obj.Gestionnaire2_SID, Obj.Gestionnaire2_Login, Obj.Gestionnaire2_Nom, Obj.Gestionnaire2_Prenom, Obj.Gestionnaire2_Email, Obj.Gestionnaire2_Tel, Obj.Gestionnaire2_Structure));
  120. }
  121. public Identite Obj
  122. {
  123. get
  124. {
  125. return (_Obj as Identite);
  126. }
  127. }
  128. public override int Id
  129. {
  130. get
  131. {
  132. return Obj.College_Id;
  133. }
  134. }
  135. public override string Annee_Lib
  136. {
  137. get
  138. {
  139. return Obj.College.Annee.Libelle;
  140. }
  141. }
  142. }
  143. public class ActionClasViewModel : TopModel
  144. {
  145. public ActionClasViewModel(object model, ModeAcces acces = ModeAcces.Lecture, Dictionary<string, object> bag = null) : base(model, acces, bag)
  146. {
  147. }
  148. public ActionCLAS Obj
  149. {
  150. get
  151. {
  152. return (_Obj as ActionCLAS);
  153. }
  154. }
  155. public override int Id
  156. {
  157. get
  158. {
  159. return Obj.College_Id;
  160. }
  161. }
  162. public override string Annee_Lib
  163. {
  164. get
  165. {
  166. return Obj.College.Annee.Libelle;
  167. }
  168. }
  169. }
  170. }