using ModuleTools.Attributes; using ModuleTools.Enums; using ModuleTools.ViewModels; using System; namespace SecurityBusinessLogic.ViewModels { /// /// Список пользователей /// public class UserListViewModel : ListViewModel { } /// /// Элемент пользователей /// public class UserViewModel : ElementViewModel { [ViewModelOnListProperty("Пользователь")] [ViewModelOnElementProperty("Логин", ControlType.ControlString, MustHaveValue = true)] [MapConfiguration("UserName")] public string Login { get; set; } [MapConfiguration("PasswordHash", AllowCopyWithoutRigth = false)] public string Password { get; set; } [MapConfiguration("Avatar")] [ViewModelOnElementProperty("Фото", ControlType.ControlImage, 200, 200)] public byte[] Avatar { get; set; } [ViewModelOnListProperty("Посл. визит", 100)] [MapConfiguration("DateLastVisit")] public DateTime? DateLastVisit { get; set; } [MapConfiguration("IsBanned", AllowCopyWithoutRigth = false)] [ViewModelOnElementProperty("Заблокирован", ControlType.ControlBool, MustHaveValue = true)] public bool IsBanned { get; set; } [ViewModelOnListProperty("Блокир.", 80)] public string Banned => IsBanned ? "Да" : "Нет"; [MapConfiguration("DateBanned", AllowCopyWithoutRigth = false)] [ViewModelOnElementProperty("Дата блокировки", ControlType.ControlDateTime, ReadOnly = true)] public DateTime? DateBanned { get; set; } [ViewModelOnListProperty("Дата Б.", 100)] public string DateBannedTitle => DateBanned.HasValue ? DateBanned.Value.ToShortDateString() : string.Empty; [MapConfiguration("CountAttempt", AllowCopyWithoutRigth = false)] [ViewModelOnElementProperty("Попытки входа", ControlType.ControlInt , ReadOnly = true)] public int CountAttempt { get; set; } public override string ToString() => Login; } }