using XFEExtension.NetCore.ServerInteractive.Interfaces;
namespace HaloPixelToolBox.Core.Models.User;
///
/// 用户面部信息
///
public class MyUserFaceInfo : IUserFaceInfo
{
///
/// 用户 ID
///
public string Id { get; set; } = string.Empty;
///
/// 昵称
///
public string NickName { get; set; } = string.Empty;
///
/// 权限等级
///
public int PermissionLevel { get; set; }
///
/// 转换为字符串
///
/// 用户信息字符串
public override string ToString() => $"{NickName}({(UserRole)PermissionLevel})";
///
/// 从用户信息创建用户面部信息
///
/// 用户信息
/// 用户面部信息
public static MyUserFaceInfo FromUser(IUserInfo user) => new()
{
Id = user.Id,
NickName = user.NickName,
PermissionLevel = user.PermissionLevel
};
///
/// 相等运算符重载
///
public static bool operator ==(MyUserFaceInfo? left, MyUserFaceInfo? right)
{
if (right is not null && right.Equals(left))
return true;
if (left is null || right is null)
return false;
return left.Id == right.Id;
}
///
/// 不相等运算符重载
///
public static bool operator !=(MyUserFaceInfo? left, MyUserFaceInfo? right) => !(left == right);
///
public override bool Equals(object? obj) => obj?.GetHashCode() == GetHashCode();
///
// ReSharper disable once NonReadonlyMemberInGetHashCode
public override int GetHashCode() => Id.GetHashCode();
}