EXEMPLE_VIKINGS.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. }
  31. /// <summary>
  32. /// Classe contenant les DataAnnotations pour chaque champ
  33. /// </summary>
  34. public class EXEMPLE_VIKINGS_Metadata
  35. {
  36. [Required]
  37. [Display(Name = "Clé")]
  38. public int ID { get; set; }
  39. [Required]
  40. [Display(Name = "Nom")]
  41. [StringLength(255)]
  42. public string NOM { get; set; }
  43. [Required]
  44. [Display(Name = "Type")]
  45. public int ID_TYPE { get; set; }
  46. [Display(Name = "Description")]
  47. [StringLength(255)]
  48. [DataType(DataType.MultilineText)]
  49. public string DESCRIPTION { get; set; }
  50. //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"
  51. [Display(Name = "A faim?", Description = "Toujours oui")]
  52. [Range(0, 1)]
  53. [UIHint("YesNoInt")]
  54. public Nullable<int> alwaysYes;
  55. [Display(Name = "Intellectuel?", Description = "Toujours non")]
  56. [Range(0, 1)]
  57. [UIHint("YesNoInt")]
  58. public Nullable<int> alwaysNo;
  59. }
  60. }