EXEMPLE_VIKINGS.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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(EXEMPLE_VIKINGS_Metadata))]
  16. public partial class EXEMPLE_VIKINGS
  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. //Exemple d'un sous-type fictif pour les listes imbriquées
  31. public int ID_SOUS_TYPE { get; set; }
  32. }
  33. /// <summary>
  34. /// Classe contenant les DataAnnotations pour chaque champ
  35. /// </summary>
  36. public class EXEMPLE_VIKINGS_Metadata
  37. {
  38. [Required]
  39. [Display(Name = "Clé")]
  40. public int ID { get; set; }
  41. [Required]
  42. [Display(Name = "Nom")]
  43. [StringLength(255)]
  44. public string NOM { get; set; }
  45. [Required]
  46. [Display(Name = "Type")]
  47. public int ID_TYPE { get; set; }
  48. [Display(Name = "Sous type", Description = "Valeur non enregistrée")]
  49. public int ID_SOUS_TYPE { get; set; }
  50. [Display(Name = "Description")]
  51. [StringLength(255)]
  52. [DataType(DataType.MultilineText)]
  53. public string DESCRIPTION { get; set; }
  54. [Display(Name = "Date inutile")]
  55. [DataType(DataType.Date)]
  56. public Nullable<System.DateTime> DATE_INUTILE { get; set; }
  57. //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"
  58. [Display(Name = "A faim?", Description = "Toujours oui")]
  59. [Range(0, 1)]
  60. [UIHint("YesNoInt")]
  61. public Nullable<int> alwaysYes;
  62. [Display(Name = "Intellectuel?", Description = "Toujours non")]
  63. [Range(0, 1)]
  64. [UIHint("YesNoInt")]
  65. public Nullable<int> alwaysNo;
  66. }
  67. }