using CD67.FicheCollege.Entity.WsAgents;
using CD67.FicheCollege.Entity.WsTiers;
using System;
using System.ComponentModel.DataAnnotations;
using System.Linq;

namespace CD67.FicheCollege.Entity
{
    /// <summary>
    /// Classe d'extension de celle d'Entity, nécessaire pour y associer les Metadata
    /// </summary>
    [MetadataType(typeof(Utilisateur_Metadata))]
    public partial class Utilisateur
    {
        public WsAgents.Agent utilisateur;
        // Charge les données d'identité des agents depuis le web-service
        public void hydrate()
        {
            Entity.WsAgents.WsAgents wsAgents = new Entity.WsAgents.WsAgents();
            wsAgents.UseDefaultCredentials = true;
            if (!String.IsNullOrEmpty(Sid))
            {
                utilisateur = wsAgents.GetById(Sid);
            }
        }

        public Utilisateur flat()
        {
            return new Utilisateur()
            {
                Sid = Sid,
                GroupeId = GroupeId
            };
        }
    }

    /// <summary>
    /// Classe contenant les DataAnnotations pour chaque champ
    /// </summary>
    public class Utilisateur_Metadata
    {
        [Required]
        public int Id { get; set; }

        [Required]
        [Display(Name = "SSID")]
        public string Sid { get; set; }

        [Required]
        public string GroupeId { get; set; }
    }
}