PARAM.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel.DataAnnotations;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. // Attention à l'espace de nom, lors de la création d'une nouvelle classe celui-ci sera par défaut :
  8. // namespace CD67.ModeleMVC.Entity.Extend
  9. // Alors que pour étendre une classe il faut être dans le même namespace que l'original
  10. namespace CD67.ModeleMVC.Entity
  11. {
  12. /// <summary>
  13. /// Classe d'extension de celle d'Entity, nécessaire pour y associer les Metadata
  14. /// </summary>
  15. [MetadataType(typeof(PARAM_Metadata))]
  16. public partial class PARAM
  17. {
  18. //Peut contenir une extension utile à la classe (méthode static ou non, nouvelles propriétés, propriétés construites dynamiquement selon d'autres de la classe, etc.)
  19. //Exemples de 2 propriétés booléennes qui ont en base de données 0 ou 1
  20. public Nullable<int> alwaysYes
  21. {
  22. get { return 1; }
  23. set { this.alwaysYes = value; }
  24. }
  25. public Nullable<int> alwaysNo
  26. {
  27. get { return 0; }
  28. set { this.alwaysNo = value; }
  29. }
  30. }
  31. /// <summary>
  32. /// Classe contenant les DataAnnotations pour chaque champ
  33. /// </summary>
  34. public class PARAM_Metadata
  35. {
  36. [Required]
  37. [Display(Name = "Clé")]
  38. public string PRM_CLE;
  39. [Required]
  40. [Display(Name = "Libellé")]
  41. public string PRM_LIB1;
  42. [Required]
  43. [Display(Name = "Valeur")]
  44. [DataType(DataType.MultilineText)]
  45. public string PRM_LIB2;
  46. //Propriétés ajoutées dans la classe partielle et qui utilise un affichage customisé MVC "YesNo", qui se trouve ici : "Views\Shared\DisplayTemplates" et "Views\Shared\EditorTemplates"
  47. [Display(Name = "Toujours Oui")]
  48. [Range(0, 1)]
  49. [UIHint("YesNo")]
  50. public Nullable<int> alwaysYes;
  51. [Display(Name = "toujours Non")]
  52. [Range(0, 1)]
  53. [UIHint("YesNo")]
  54. public Nullable<int> alwaysNo;
  55. }
  56. }