using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// Attention à l'espace de nom, lors de la création d'une nouvelle classe celui-ci sera par défaut :
// namespace CD67.ModeleMVC.Entity.Extend
// Alors que pour étendre une classe il faut être dans le même namespace que l'original
namespace CD67.ModeleMVC.Entity
{
///
/// Classe d'extension de celle d'Entity, nécessaire pour y associer les Metadata
///
[MetadataType(typeof(Viking_Metadata))]
public partial class Viking
{
//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.)
//Exemples de propriété booléenne qui renverra toujours 1
public Nullable costaud
{
get { return 1; }
set { this.costaud = value; }
}
//Exemple d'un sous-type fictif pour les listes imbriquées
public int IdSousType { get; set; }
}
///
/// Classe contenant les DataAnnotations pour chaque champ
///
public class Viking_Metadata
{
[Required]
[Display(Name = "Id")]
public int Id { get; set; }
[Required]
[Display(Name = "Nom")]
[StringLength(255)]
public string Nom { get; set; }
[Required]
[Display(Name = "Type")]
public int TypeVikingId { get; set; }
[Display(Name = "Sous type", Description = "Valeur non enregistrée")]
public int IdSousType { get; set; }
//Utilise un affichage customisé MVC "YesNo", qui se trouve ici : "Views\Shared\DisplayTemplates" et "Views\Shared\EditorTemplates"
[Display(Name = "Casque Cornu")]
//[Range(0, 1)]
//[UIHint("YesNoInt")]
public bool? CasqueCornu;
[Required]
[Display(Name = "Nombre de victoires")]
public int NombreVictoires { get; set; }
[Display(Name = "Costaud", Description = "Toujours oui")]
[Range(0, 1)]
[UIHint("YesNoInt")]
public Nullable costaud;
[Display(Name = "Description")]
//[StringLength(255)]
[DataType(DataType.MultilineText)]
public string Description { get; set; }
[Display(Name = "Date de création")]
[DataType(DataType.Date)]
public DateTime? DateCreation { get; set; }
[Display(Name = "Date de dernière édition")]
[DataType(DataType.Date)]
public DateTime? DateEdition { get; set; }
////Propriétés ajoutées dans la classe partielle
//[Display(Name = "Costaud", Description = "Toujours oui")]
//[Range(0, 1)]
//[UIHint("YesNoInt")]
//public Nullable costaud;
}
}