diff --git a/DepartmentPortal/Common/DatabaseCore/Models/Security/Access.cs b/DepartmentPortal/Common/DatabaseCore/Models/Security/Access.cs index 256087c..ee9eaf4 100644 --- a/DepartmentPortal/Common/DatabaseCore/Models/Security/Access.cs +++ b/DepartmentPortal/Common/DatabaseCore/Models/Security/Access.cs @@ -1,5 +1,4 @@ using CoreModels.ModelsSecurity; -using ModuleTools.Attributes; using ModuleTools.Enums; using ModuleTools.Interfaces; using System; @@ -13,17 +12,14 @@ namespace DatabaseCore.Models.Security { [DataMember] [Required] - [MapConfiguration("RoleId")] public Guid RoleId { get; set; } [DataMember] [Required] - [MapConfiguration("AccessOperation")] public AccessOperation AccessOperation { get; set; } [DataMember] [Required] - [MapConfiguration("AccessType")] public AccessType AccessType { get; set; } //------------------------------------------------------------------------- diff --git a/DepartmentPortal/Common/DatabaseCore/Models/Security/EnviromentSetting.cs b/DepartmentPortal/Common/DatabaseCore/Models/Security/EnviromentSetting.cs index 3079c67..a994a2c 100644 --- a/DepartmentPortal/Common/DatabaseCore/Models/Security/EnviromentSetting.cs +++ b/DepartmentPortal/Common/DatabaseCore/Models/Security/EnviromentSetting.cs @@ -1,26 +1,22 @@ using CoreModels.ModelsSecurity; -using ModuleTools.Attributes; using ModuleTools.Interfaces; using System.ComponentModel.DataAnnotations; using System.Runtime.Serialization; namespace DatabaseCore.Models.Security { - [DataContract] + [DataContract] public class EnviromentSetting : BaseEntity, IEntitySecurityExtenstion, IEnviromentSettingModel { [DataMember] [Required] - [MapConfiguration("Key")] public string Key { get; set; } [DataMember] [Required] - [MapConfiguration("Value")] public string Value { get; set; } [DataMember] - [MapConfiguration("Description")] public string Description { get; set; } //------------------------------------------------------------------------- diff --git a/DepartmentPortal/Common/DatabaseCore/Models/Security/Role.cs b/DepartmentPortal/Common/DatabaseCore/Models/Security/Role.cs index 4f08e25..5442d7a 100644 --- a/DepartmentPortal/Common/DatabaseCore/Models/Security/Role.cs +++ b/DepartmentPortal/Common/DatabaseCore/Models/Security/Role.cs @@ -1,5 +1,4 @@ using CoreModels.ModelsSecurity; -using ModuleTools.Attributes; using ModuleTools.Interfaces; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -8,16 +7,14 @@ using System.Runtime.Serialization; namespace DatabaseCore.Models.Security { - [DataContract] + [DataContract] public class Role : BaseEntity, IEntitySecurityExtenstion, IRoleModel { [DataMember] [Required] - [MapConfiguration("RoleName")] public string RoleName { get; set; } [DataMember] - [MapConfiguration("RolePriority")] public int RolePriority { get; set; } //------------------------------------------------------------------------- diff --git a/DepartmentPortal/Common/DatabaseCore/Models/Security/User.cs b/DepartmentPortal/Common/DatabaseCore/Models/Security/User.cs index 8e26bb3..4087547 100644 --- a/DepartmentPortal/Common/DatabaseCore/Models/Security/User.cs +++ b/DepartmentPortal/Common/DatabaseCore/Models/Security/User.cs @@ -15,32 +15,25 @@ namespace DatabaseCore.Models.Security { [DataMember] [Required] - [MapConfiguration("UserName")] public string UserName { get; set; } [DataMember] [Required] - [MapConfiguration("PasswordHash")] public string PasswordHash { get; set; } [DataMember] - [MapConfiguration("Avatar")] public byte[] Avatar { get; set; } [DataMember] - [MapConfiguration("DateLastVisit")] public DateTime? DateLastVisit { get; set; } [DataMember] - [MapConfiguration("IsBanned")] public bool IsBanned { get; set; } [DataMember] - [MapConfiguration("DateBanned")] public DateTime? DateBanned { get; set; } [DataMember] - [MapConfiguration("CountAttempt")] public int CountAttempt { get; set; } //------------------------------------------------------------------------- diff --git a/DepartmentPortal/Common/DatabaseCore/Models/Security/UserRole.cs b/DepartmentPortal/Common/DatabaseCore/Models/Security/UserRole.cs index 5e41af3..a07b2e1 100644 --- a/DepartmentPortal/Common/DatabaseCore/Models/Security/UserRole.cs +++ b/DepartmentPortal/Common/DatabaseCore/Models/Security/UserRole.cs @@ -1,20 +1,17 @@ using CoreModels.ModelsSecurity; -using ModuleTools.Attributes; using ModuleTools.Interfaces; using System; using System.Runtime.Serialization; namespace DatabaseCore.Models.Security { - [DataContract] + [DataContract] public class UserRole : BaseEntity, IEntitySecurityExtenstion, IUserRoleModel { [DataMember] - [MapConfiguration("RoleId")] public Guid RoleId { get; set; } [DataMember] - [MapConfiguration("UserId")] public Guid UserId { get; set; } //------------------------------------------------------------------------- diff --git a/DepartmentPortal/Common/ModuleTools/BusinessLogics/Mapper.cs b/DepartmentPortal/Common/ModuleTools/BusinessLogics/Mapper.cs index 8b9ffd3..6406cc5 100644 --- a/DepartmentPortal/Common/ModuleTools/BusinessLogics/Mapper.cs +++ b/DepartmentPortal/Common/ModuleTools/BusinessLogics/Mapper.cs @@ -56,10 +56,10 @@ namespace ModuleTools.BusinessLogics var properties = typeTo.GetProperties(); foreach (var property in properties) { + object value = obj; var customAttribute = property.GetCustomAttribute(); if (customAttribute != null) { - object value = obj; if (customAttribute.IsDifficle) { var props = customAttribute.PropertyNameFromModel.Split('.'); @@ -136,10 +136,6 @@ namespace ModuleTools.BusinessLogics value = bindingProperty.GetValue(obj); } } - if (value is null) - { - continue; - } if ((haveRigth && !customAttribute.AllowCopyWithoutRigth) || customAttribute.AllowCopyWithoutRigth) { if (property.PropertyType.Name.StartsWith("Nullable")) @@ -153,6 +149,14 @@ namespace ModuleTools.BusinessLogics property.SetValue(newObject, value); } } + else + { + var bindingProperty = value.GetType().GetProperty(property.Name); + if (bindingProperty != null) + { + property.SetValue(newObject, bindingProperty.GetValue(value)); + } + } } return newObject; diff --git a/DepartmentPortal/Security/SecurityBusinessLogic/BindingModels/AccessBindingModels.cs b/DepartmentPortal/Security/SecurityBusinessLogic/BindingModels/AccessBindingModels.cs index 35e587b..0d29b2c 100644 --- a/DepartmentPortal/Security/SecurityBusinessLogic/BindingModels/AccessBindingModels.cs +++ b/DepartmentPortal/Security/SecurityBusinessLogic/BindingModels/AccessBindingModels.cs @@ -1,5 +1,4 @@ using CoreModels.ModelsSecurity; -using ModuleTools.Attributes; using ModuleTools.BindingModels; using ModuleTools.Enums; using System; @@ -23,14 +22,11 @@ namespace SecurityBusinessLogic.BindingModels /// public class AccessSetBindingModel : SetBindingModel, IAccessModel { - [MapConfiguration("RoleId")] public Guid RoleId { get; set; } [Required(ErrorMessage = "required")] - [MapConfiguration("AccessOperation")] public AccessOperation AccessOperation { get; set; } - [MapConfiguration("AccessType")] public AccessType AccessType { get; set; } } } \ No newline at end of file diff --git a/DepartmentPortal/Security/SecurityBusinessLogic/BindingModels/EnviromentSettingBindingModels.cs b/DepartmentPortal/Security/SecurityBusinessLogic/BindingModels/EnviromentSettingBindingModels.cs index 9429d38..a887973 100644 --- a/DepartmentPortal/Security/SecurityBusinessLogic/BindingModels/EnviromentSettingBindingModels.cs +++ b/DepartmentPortal/Security/SecurityBusinessLogic/BindingModels/EnviromentSettingBindingModels.cs @@ -1,14 +1,13 @@ using CoreModels.ModelsSecurity; -using ModuleTools.Attributes; using ModuleTools.BindingModels; using System.ComponentModel.DataAnnotations; namespace SecurityBusinessLogic.BindingModels { - /// - /// Получение общих настроек системы - /// - public class EnviromentSettingGetBindingModel : GetBindingModel + /// + /// Получение общих настроек системы + /// + public class EnviromentSettingGetBindingModel : GetBindingModel { public string Key { get; set; } } @@ -19,15 +18,12 @@ namespace SecurityBusinessLogic.BindingModels public class EnviromentSettingSetBindingModel : SetBindingModel, IEnviromentSettingModel { [Required(ErrorMessage = "required")] - [MapConfiguration("Key")] public string Key { get; set; } [Required(ErrorMessage = "required")] - [MapConfiguration("Value")] public string Value { get; set; } [Required(ErrorMessage = "required")] - [MapConfiguration("Description")] public string Description { get; set; } } } \ No newline at end of file diff --git a/DepartmentPortal/Security/SecurityBusinessLogic/BindingModels/RoleBindingModels.cs b/DepartmentPortal/Security/SecurityBusinessLogic/BindingModels/RoleBindingModels.cs index 20f1e6e..05e69bb 100644 --- a/DepartmentPortal/Security/SecurityBusinessLogic/BindingModels/RoleBindingModels.cs +++ b/DepartmentPortal/Security/SecurityBusinessLogic/BindingModels/RoleBindingModels.cs @@ -1,5 +1,4 @@ using CoreModels.ModelsSecurity; -using ModuleTools.Attributes; using ModuleTools.BindingModels; using System.ComponentModel.DataAnnotations; @@ -16,11 +15,9 @@ namespace SecurityBusinessLogic.BindingModels public class RoleSetBindingModel : SetBindingModel, IRoleModel { [Required(ErrorMessage = "required")] - [MapConfiguration("RoleName")] public string RoleName { get; set; } [Required(ErrorMessage = "required")] - [MapConfiguration("RolePriority")] public int RolePriority { get; set; } } } \ No newline at end of file diff --git a/DepartmentPortal/Security/SecurityBusinessLogic/BindingModels/UserBindingModels.cs b/DepartmentPortal/Security/SecurityBusinessLogic/BindingModels/UserBindingModels.cs index 75d216e..bd6b39b 100644 --- a/DepartmentPortal/Security/SecurityBusinessLogic/BindingModels/UserBindingModels.cs +++ b/DepartmentPortal/Security/SecurityBusinessLogic/BindingModels/UserBindingModels.cs @@ -1,15 +1,14 @@ using CoreModels.ModelsSecurity; -using ModuleTools.Attributes; using ModuleTools.BindingModels; using System; using System.ComponentModel.DataAnnotations; namespace SecurityBusinessLogic.BindingModels { - /// - /// Получение пользователя - /// - public class UserGetBindingModel : GetBindingModel + /// + /// Получение пользователя + /// + public class UserGetBindingModel : GetBindingModel { public string UserNameForSearch { get; set; } @@ -22,26 +21,19 @@ namespace SecurityBusinessLogic.BindingModels public class UserSetBindingModel : SetBindingModel, IUserModel { [Required(ErrorMessage = "required")] - [MapConfiguration("UserName")] public string UserName { get; set; } [Required(ErrorMessage = "required")] - [MapConfiguration("Password")] public string PasswordHash { get; set; } - [MapConfiguration("Avatar")] public byte[] Avatar { get; set; } - [MapConfiguration("DateLastVisit")] public DateTime? DateLastVisit { get; set; } - [MapConfiguration("IsBanned")] public bool IsBanned { get; set; } - [MapConfiguration("DateBanned")] public DateTime? DateBanned { get; set; } - [MapConfiguration("CountAttempt")] public int CountAttempt { get; set; } } } \ No newline at end of file diff --git a/DepartmentPortal/Security/SecurityBusinessLogic/BindingModels/UserRoleBindingModels.cs b/DepartmentPortal/Security/SecurityBusinessLogic/BindingModels/UserRoleBindingModels.cs index 76a311e..1bc989e 100644 --- a/DepartmentPortal/Security/SecurityBusinessLogic/BindingModels/UserRoleBindingModels.cs +++ b/DepartmentPortal/Security/SecurityBusinessLogic/BindingModels/UserRoleBindingModels.cs @@ -1,15 +1,14 @@ using CoreModels.ModelsSecurity; -using ModuleTools.Attributes; using ModuleTools.BindingModels; using System; using System.ComponentModel.DataAnnotations; namespace SecurityBusinessLogic.BindingModels { - /// - /// Получение связи пользователя с ролью - /// - public class UserRoleGetBindingModel : GetBindingModel + /// + /// Получение связи пользователя с ролью + /// + public class UserRoleGetBindingModel : GetBindingModel { public Guid? UserId { get; set; } @@ -22,11 +21,9 @@ namespace SecurityBusinessLogic.BindingModels public class UserRoleSetBindingModel : SetBindingModel, IUserRoleModel { [Required(ErrorMessage = "required")] - [MapConfiguration("UserId")] public Guid UserId { get; set; } [Required(ErrorMessage = "required")] - [MapConfiguration("RoleId")] public Guid RoleId { get; set; } } } \ No newline at end of file diff --git a/DepartmentPortal/Security/SecurityBusinessLogic/ViewModels/RoleViewModels.cs b/DepartmentPortal/Security/SecurityBusinessLogic/ViewModels/RoleViewModels.cs index e1f60a8..9cabe1c 100644 --- a/DepartmentPortal/Security/SecurityBusinessLogic/ViewModels/RoleViewModels.cs +++ b/DepartmentPortal/Security/SecurityBusinessLogic/ViewModels/RoleViewModels.cs @@ -5,10 +5,10 @@ using ModuleTools.ViewModels; namespace SecurityBusinessLogic.ViewModels { - /// - /// Список ролей - /// - public class RoleListViewModel : ListViewModel { } + /// + /// Список ролей + /// + public class RoleListViewModel : ListViewModel { } /// /// Элемент ролей @@ -22,12 +22,10 @@ namespace SecurityBusinessLogic.ViewModels { [ViewModelControlListProperty("Название роли")] [ViewModelControlElementProperty("Название роли", ControlType.ControlString, MustHaveValue = true)] - [MapConfiguration("RoleName")] public string RoleName { get; set; } [ViewModelControlListProperty("Приоритет", ColumnWidth = 100)] [ViewModelControlElementProperty("Приоритет", ControlType.ControlInt, MustHaveValue = true)] - [MapConfiguration("RolePriority")] public int RolePriority { get; set; } } } \ No newline at end of file diff --git a/DepartmentPortal/Security/SecurityBusinessLogic/ViewModels/UserViewModels.cs b/DepartmentPortal/Security/SecurityBusinessLogic/ViewModels/UserViewModels.cs index 525e433..b698695 100644 --- a/DepartmentPortal/Security/SecurityBusinessLogic/ViewModels/UserViewModels.cs +++ b/DepartmentPortal/Security/SecurityBusinessLogic/ViewModels/UserViewModels.cs @@ -21,18 +21,15 @@ namespace SecurityBusinessLogic.ViewModels { [ViewModelControlListProperty("Пользователь")] [ViewModelControlElementProperty("Логин", ControlType.ControlString, MustHaveValue = true)] - [MapConfiguration("UserName")] public string UserName { get; set; } [MapConfiguration("PasswordHash", AllowCopyWithoutRigth = false)] public string PasswordHash { 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)]