104 lines
2.9 KiB
C#
104 lines
2.9 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
using FoodsharingSiegen.Contracts.Helper;
|
|
|
|
namespace FoodsharingSiegen.Contracts.Entity
|
|
{
|
|
|
|
/// <summary>
|
|
/// The user class (a. beging, 06.04.2022)
|
|
/// </summary>
|
|
public class User
|
|
{
|
|
#region Public Properties
|
|
|
|
/// <summary>
|
|
/// Gets or sets the value of the created (ab)
|
|
/// </summary>
|
|
public DateTime Created { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the value of the encrypted password (ab)
|
|
/// </summary>
|
|
public string EncryptedPassword { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the value of the force logout (ab)
|
|
/// </summary>
|
|
public bool ForceLogout { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the value of the groups (ab)
|
|
/// </summary>
|
|
public string Groups { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the value of the groups list (ab)
|
|
/// </summary>
|
|
[NotMapped]
|
|
public List<UserGroup> GroupsList
|
|
{
|
|
get
|
|
{
|
|
if (string.IsNullOrWhiteSpace(Groups)) return new List<UserGroup>();
|
|
var stringList = Groups.Split(",");
|
|
var enumList = stringList.Where(x => !string.IsNullOrWhiteSpace(x)).Select(Enum.Parse<UserGroup>).ToList();
|
|
return enumList;
|
|
}
|
|
set => Groups = string.Join(",", value);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets or sets the value of the id (ab)
|
|
/// </summary>
|
|
[Key] public Guid Id { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the value of the interactions (ab)
|
|
/// </summary>
|
|
public IList<Interaction> Interactions { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the value of the mail (ab)
|
|
/// </summary>
|
|
public string Mail { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the value of the name (ab)
|
|
/// </summary>
|
|
public string Name { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the value of the password (ab)
|
|
/// </summary>
|
|
[NotMapped]
|
|
public string Password
|
|
{
|
|
get => Cryptor.TryDecrypt(EncryptedPassword, out var password) ? password : string.Empty;
|
|
set => EncryptedPassword = Cryptor.Encrypt(value);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets or sets the value of the type (ab)
|
|
/// </summary>
|
|
public UserType Type { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the value of the verified (ab)
|
|
/// </summary>
|
|
public bool Verified { get; set; }
|
|
|
|
#endregion
|
|
|
|
#region Public Method Clone
|
|
|
|
/// <summary>
|
|
/// Clones this instance (a. beging, 11.04.2022)
|
|
/// </summary>
|
|
/// <returns>The user</returns>
|
|
public User Clone() => (User) MemberwiseClone();
|
|
|
|
#endregion
|
|
}
|
|
}
|