using GreenTree.Strohrmann.ERP.Web.Models.Shared; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Threading.Tasks; namespace GreenTree.Strohrmann.ERP.Web.Models.Rights.User { public class UserModel { #region Properties /// /// User Id /// [Display(Name = "ID")] public int? Id { get; set; } /// /// User accountname /// [Display(Name = "Kontoname")] public string Accountname { get; set; } /// /// User password (for creation) /// [Display(Name = "Passwort")] public string Password { get; set; } /// /// User forename /// [Display(Name = "Vorname")] public string Forename { get; set; } /// /// User lastname /// [Display(Name = "Nachname")] public string Lastname { get; set; } /// /// User mail address /// [Display(Name = "Mail-Adresse")] public string MailAddress { get; set; } /// /// User birthdate /// [Display(Name = "Geburtsdatum")] [DisplayFormat(ApplyFormatInEditMode = false, DataFormatString = "{0:dd.MM.yyyy}")] public DateTime Birthdate { get; set; } /// /// User activation status /// [Display(Name = "Aktiviert")] public bool Activated { get; set; } /// /// User policies /// [Display(Name = "Rechte")] public string[] Policies { get; set; } #endregion #region Ctor /// /// Initializes a new instance of the UserModel class /// public UserModel() { } /// /// Initializes a new instance of the UserModel class /// /// Base user entity. public UserModel(Core.Domain.Rights.User user) { if (user == null) return; Id = user.Id; Accountname = user.Accountname; Forename = user.Forename; Lastname = user.Lastname; MailAddress = user.MailAddress; Birthdate = user.Birthdate.HasValue ? user.Birthdate.Value : DateTime.MinValue; Activated = user.Activated.Value; Policies = user.Policies .Select(up => up.PolicyName) .ToArray(); } #endregion } }