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(); }