using System;
using System.Collections.Generic;
using System.DirectoryServices.Linq.Attributes;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GreenTree.Nachtragsmanagement.Core.Authentication
{
    /// <summary>
    /// Die Klasse zur Abbildung eines Users in einem ActiveDirectory
    /// </summary>
    [DirectoryType("user")]
    public class ActiveDirectoryUser
    {
        #region Properties        

        /// <summary>
        /// Gibt den vollen Namen zurück oder legt ihn fest
        /// </summary>
        [DirectoryProperty("name", true)]
        public string Name { get; set; }

        /// <summary>
        /// Gibt den Vornamen zurück oder legt ihn fest
        /// </summary>
        [DirectoryProperty("givenName", true)]
        public string ForeName { get; set; }

        /// <summary>
        /// Gibt den Nachnamen zurück oder legt ihn fest
        /// </summary>
        [DirectoryProperty("sn", true)]
        public string LastName { get; set; }

        /// <summary>
        /// Gibt den Kontonamen zurück oder legt ihn fest
        /// </summary>
        [DirectoryProperty("samAccountName", true)]
        public string AccountName { get; set; }

        /// <summary>
        /// Gibt den Vorgesetzten (User-String) zurück oder legt ihn fest
        /// </summary>
        [DirectoryProperty("manager", true)]
        public string ManagerString { get; set; }

        /// <summary>
        /// Gibt die Mail-Adresse zurück oder legt sie fest
        /// </summary>
        [DirectoryProperty("mail")]
        public string Mail { get; set; }

        #endregion
    }
}