using ModuleTools.Attributes; using ModuleTools.Enums; using ModuleTools.ViewModels; using System; namespace SecurityBusinessLogic.ViewModels { /// /// Список пользователей /// public class UserListViewModel : ListViewModel { } /// /// Элемент пользователей /// [ViewModelControlElementClass(HaveDependenceEntities = true, Width = 800, Height = 500)] [ViewModelControlElementDependenceEntity(Title = "Роли", Order = 1, ParentPropertyName = "UserId", ControlTypeObject = "SecurityWindowsDesktop.EntityControls.ControlUserRoleList, SecurityWindowsDesktop")] public class UserViewModel : ElementViewModel { [ViewModelControlListProperty("Пользователь")] [ViewModelControlElementProperty("Логин", ControlType.ControlString, MustHaveValue = true)] [MapConfiguration("UserName")] public string Login { get; set; } [MapConfiguration("PasswordHash", AllowCopyWithoutRigth = false)] public string Password { get; set; } [ViewModelControlElementProperty("Фото", ControlType.ControlImage, Width = 200, Height = 200)] [MapConfiguration("Avatar")] public byte[] Avatar { get; set; } [ViewModelControlListProperty("Посл. визит", ColumnWidth = 100, DefaultCellStyleFormat = "dd.MM.yyyy")] [MapConfiguration("DateLastVisit")] public DateTime? DateLastVisit { get; set; } [ViewModelControlElementProperty("Заблокирован", ControlType.ControlBool, MustHaveValue = true)] [MapConfiguration("IsBanned", AllowCopyWithoutRigth = false)] public bool IsBanned { get; set; } [ViewModelControlListProperty("Блокир.", ColumnWidth = 80)] public string Banned => IsBanned ? "Да" : "Нет"; [ViewModelControlElementProperty("Дата блокировки", ControlType.ControlDateTime, ReadOnly = true)] [MapConfiguration("DateBanned", AllowCopyWithoutRigth = false)] public DateTime? DateBanned { get; set; } [ViewModelControlListProperty("Дата Б.", ColumnWidth = 100)] public string DateBannedTitle => DateBanned.HasValue ? DateBanned.Value.ToShortDateString() : string.Empty; [ViewModelControlElementProperty("Попытки входа", ControlType.ControlInt, ReadOnly = true)] [MapConfiguration("CountAttempt", AllowCopyWithoutRigth = false)] public int CountAttempt { get; set; } public override string ToString() => Login; } }