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
}
}