using ModuleTools.Attributes; using ModuleTools.Enums; using ModuleTools.ViewModels; using System; namespace SecurityBusinessLogic.ViewModels { /// /// Список достпуов /// public class AccessListViewModel : ListViewModel { } /// /// Элемент доступа /// [ViewModelControlElementClass()] public class AccessViewModel : ElementViewModel { [MapConfiguration("RoleId", AllowCopyWithoutRigth = false)] [ViewModelControlElementProperty("Роль", ControlType.ControlGuid, MustHaveValue = true, ReadOnly = true, ControlTypeObject = "SecurityWindowsDesktop.EntityControls.ControlRoleList, SecurityWindowsDesktop")] public Guid RoleId { get; set; } [ViewModelControlListProperty("Роль", ColumnWidth = 100)] [MapConfiguration("Role.RoleName", IsDifficle = true, AllowCopyWithoutRigth = false)] public string RoleName { get; set; } [MapConfiguration("AccessOperation", AllowCopyWithoutRigth = false)] [ViewModelControlElementProperty("Операция", ControlType.ControlEnum, MustHaveValue = true)] public AccessOperation AccessOperation { get; set; } [ViewModelControlListProperty("Операция")] public string AccessOperationTitle => AccessOperation.ToString("G"); [MapConfiguration("AccessType", AllowCopyWithoutRigth = false)] [ViewModelControlElementProperty("Тип", ControlType.ControlEnum, MustHaveValue = true)] public AccessType AccessType { get; set; } [ViewModelControlListProperty("Тип", ColumnWidth = 150)] public string AccessTypeTitle => AccessType switch { AccessType.Delete => "Полные права", AccessType.Change => "Просмотр, Редактирование", AccessType.View => "Просмотр", _ => "Неопределено", }; public override string ToString() => $"{RoleName}-{AccessOperationTitle}({AccessTypeTitle})"; } }