using System.ComponentModel.DataAnnotations; using TightWiki.Models.DataModels; namespace TightWiki.Models.ViewModels.Profile { public partial class AccountProfileAccountViewModel { [Display(Name = "主题")] public string? Theme { get; set; } = string.Empty; [Required(ErrorMessage = "UserId is required")] public Guid UserId { get; set; } [Display(Name = "邮箱")] public string EmailAddress { get; set; } = string.Empty; [Display(Name = "账号")] [Required(ErrorMessage = "Account Name is required")] public string AccountName { get; set; } = string.Empty; public string Navigation { get; set; } = string.Empty; [Display(Name = "名")] public string? FirstName { get; set; } [Display(Name = "姓")] public string? LastName { get; set; } = string.Empty; [Display(Name = "时区")] [Required(ErrorMessage = "TimeZone is required")] public string TimeZone { get; set; } = string.Empty; [Display(Name = "国家")] [Required(ErrorMessage = "Country is required")] public string Country { get; set; } = string.Empty; [Display(Name = "语言")] [Required(ErrorMessage = "Language is required")] public string Language { get; set; } = string.Empty; [Display(Name = "个人简介")] public string? Biography { get; set; } = string.Empty; [Display(Name = "Email Confirmed?")] public bool EmailConfirmed { get; set; } = true; public byte[]? Avatar { get; set; } public DateTime CreatedDate { get; set; } public DateTime ModifiedDate { get; set; } public int PaginationPageSize { get; set; } public int PaginationPageCount { get; set; } [Display(Name = "角色")] public string? Role { get; set; } = string.Empty; public static AccountProfileAccountViewModel FromDataModel(AccountProfile model) { return new AccountProfileAccountViewModel { Theme = model.Theme, UserId = model.UserId, EmailAddress = model.EmailAddress, AccountName = model.AccountName, Avatar = model.Avatar, Biography = model.Biography, Country = model.Country, Language = model.Language, CreatedDate = model.CreatedDate, EmailConfirmed = model.EmailConfirmed, FirstName = model.FirstName, LastName = model.LastName, ModifiedDate = model.ModifiedDate, Navigation = model.Navigation, PaginationPageCount = model.PaginationPageCount, Role = model.Role, PaginationPageSize = model.PaginationPageSize, TimeZone = model.TimeZone }; } } }