diff --git a/DepartmentPortal/Common/CoreModels/ModelsDepartment/ILecturerAcademicDegreeModel.cs b/DepartmentPortal/Common/CoreModels/ModelsDepartment/ILecturerAcademicDegreeModel.cs new file mode 100644 index 0000000..bf9a827 --- /dev/null +++ b/DepartmentPortal/Common/CoreModels/ModelsDepartment/ILecturerAcademicDegreeModel.cs @@ -0,0 +1,15 @@ +using CoreModels.Tools; +using ModuleTools.Attributes; + +namespace CoreModels.ModelsDepartment +{ + [EntityDescription("LecturerAcademicDegree", "Ученой степени преподавателя кафедры")] + public interface ILecturerAcademicDegreeModel : IId + { + string LecturerAcademicDegreeName { get; } + + string Description { get; } + + int Order { get; } + } +} \ No newline at end of file diff --git a/DepartmentPortal/Common/CoreModels/ModelsDepartment/ILecturerAcademicRankModel.cs b/DepartmentPortal/Common/CoreModels/ModelsDepartment/ILecturerAcademicRankModel.cs new file mode 100644 index 0000000..5e5e905 --- /dev/null +++ b/DepartmentPortal/Common/CoreModels/ModelsDepartment/ILecturerAcademicRankModel.cs @@ -0,0 +1,13 @@ +using CoreModels.Tools; +using ModuleTools.Attributes; + +namespace CoreModels.ModelsDepartment +{ + [EntityDescription("LecturerAcademicRank", "Ученое звание преподавателя кафедры")] + public interface ILecturerAcademicRankModel : IId + { + string LecturerAcademicRankName { get; } + + int Order { get; } + } +} \ No newline at end of file diff --git a/DepartmentPortal/Common/CoreModels/ModelsDepartment/ILecturerModel.cs b/DepartmentPortal/Common/CoreModels/ModelsDepartment/ILecturerModel.cs new file mode 100644 index 0000000..b17084b --- /dev/null +++ b/DepartmentPortal/Common/CoreModels/ModelsDepartment/ILecturerModel.cs @@ -0,0 +1,50 @@ +using CoreModels.Tools; +using ModuleTools.Attributes; +using System; + +namespace CoreModels.ModelsDepartment +{ + [EntityDescription("Lecturer", "Преподаваетль кафедры")] + [EntityDependency("User", "UserId", "К какому пользователю относится преподаватель")] + [EntityDependency("LecturerAcademicRank", "LecturerAcademicRankId", "Какое звание имеет преподаватель")] + [EntityDependency("LecturerAcademicDegree", "LecturerAcademicDegreeId", "Какую степень имеет преподаватель")] + public interface ILecturerModel : IId + { + Guid UserId { get; } + + Guid? LecturerAcademicRankId { get; } + + Guid? LecturerAcademicDegreeId { get; } + + string LastName { get; } + + string FirstName { get; } + + string Patronymic { get; } + + string Abbreviation { get; } + + [CheckRigthForMap] + DateTime DateBirth { get; } + + [CheckRigthForMap] + string Address { get; } + + [CheckRigthForMap] + string Email { get; } + + [CheckRigthForMap] + string MobileNumber { get; } + + [CheckRigthForMap] + string HomeNumber { get; } + + string Description { get; } + + byte[] Photo { get; } + + bool OnlyForPrivate { get; } + + string GroupElectricalSafety { get; } + } +} \ No newline at end of file diff --git a/DepartmentPortal/Common/CoreModels/ModelsDepartment/ILecturerPostModel.cs b/DepartmentPortal/Common/CoreModels/ModelsDepartment/ILecturerPostModel.cs new file mode 100644 index 0000000..5ed2036 --- /dev/null +++ b/DepartmentPortal/Common/CoreModels/ModelsDepartment/ILecturerPostModel.cs @@ -0,0 +1,23 @@ +using CoreModels.Tools; +using ModuleTools.Attributes; +using System; + +namespace CoreModels.ModelsDepartment +{ + [EntityDescription("LecturerPost", "Связь преподавателя и должность кафедры")] + [EntityDependency("Post", "PostId", "К какой должности относится преподаватель")] + [EntityDependency("Lecturer", "LecturerId", "К какой должности относится преподаватель")] + public interface ILecturerPostModel : IId + { + [CheckRigthForMap] + Guid LecturerId { get; } + + Guid PostId { get; } + + decimal Rate { get; } + + bool IsInternalCombination { get; } + + bool IsExternalCombination { get; } + } +} \ No newline at end of file diff --git a/DepartmentPortal/Common/DatabaseCore/Models/Department/Lecturer.cs b/DepartmentPortal/Common/DatabaseCore/Models/Department/Lecturer.cs index ddbb54b..06be478 100644 --- a/DepartmentPortal/Common/DatabaseCore/Models/Department/Lecturer.cs +++ b/DepartmentPortal/Common/DatabaseCore/Models/Department/Lecturer.cs @@ -1,5 +1,5 @@ -using DatabaseCore.Models.Security; -using ModuleTools.Attributes; +using CoreModels.ModelsDepartment; +using DatabaseCore.Models.Security; using ModuleTools.Extensions; using ModuleTools.Interfaces; using System; @@ -10,85 +10,62 @@ using System.Runtime.Serialization; namespace DatabaseCore.Models.Department { - /// - /// Класс, описывающий преподавателя - /// - [DataContract] - [EntityDescription("Lecturer", "Преподаваетль кафедры")] - [EntityDependency("User", "UserId", "К какому пользователю относится преподаватель")] - [EntityDependency("LecturerAcademicRank", "LecturerAcademicRankId", "Какое звание имеет преподаватель")] - [EntityDependency("LecturerAcademicDegree", "LecturerAcademicDegreeId", "Какую степень имеет преподаватель")] - public class Lecturer : BaseEntity, IEntitySecurityExtenstion + [DataContract] + public class Lecturer : BaseEntity, IEntitySecurityExtenstion, ILecturerModel { [DataMember] [Required] - [MapConfiguration("UserId")] public Guid UserId { get; set; } [DataMember] - [MapConfiguration("LecturerAcademicRankId")] public Guid? LecturerAcademicRankId { get; set; } [DataMember] - [MapConfiguration("LecturerAcademicDegreeId")] public Guid? LecturerAcademicDegreeId { get; set; } [DataMember] [Required] - [MapConfiguration("LastName")] public string LastName { get; set; } [DataMember] [Required] - [MapConfiguration("FirstName")] public string FirstName { get; set; } [DataMember] - [MapConfiguration("Patronymic")] public string Patronymic { get; set; } [DataMember] - [MapConfiguration("Abbreviation")] public string Abbreviation { get; set; } [DataMember] [Required] - [MapConfiguration("DateBirth")] public DateTime DateBirth { get; set; } [DataMember] [Required] - [MapConfiguration("Address")] public string Address { get; set; } [DataMember] [Required] - [MapConfiguration("Email")] public string Email { get; set; } [DataMember] [Required] - [MapConfiguration("MobileNumber")] public string MobileNumber { get; set; } [DataMember] - [MapConfiguration("HomeNumber")] public string HomeNumber { get; set; } [DataMember] - [MapConfiguration("Description")] public string Description { get; set; } [DataMember] - [MapConfiguration("Photo")] public byte[] Photo { get; set; } [DataMember] - [MapConfiguration("OnlyForPrivate")] public bool OnlyForPrivate { get; set; } [DataMember] - [MapConfiguration("GroupElectricalSafety")] public string GroupElectricalSafety { get; set; } //------------------------------------------------------------------------- diff --git a/DepartmentPortal/Common/DatabaseCore/Models/Department/LecturerAcademicDegree.cs b/DepartmentPortal/Common/DatabaseCore/Models/Department/LecturerAcademicDegree.cs index e6d98da..efc0a01 100644 --- a/DepartmentPortal/Common/DatabaseCore/Models/Department/LecturerAcademicDegree.cs +++ b/DepartmentPortal/Common/DatabaseCore/Models/Department/LecturerAcademicDegree.cs @@ -1,4 +1,4 @@ -using ModuleTools.Attributes; +using CoreModels.ModelsDepartment; using ModuleTools.Interfaces; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -7,24 +7,17 @@ using System.Runtime.Serialization; namespace DatabaseCore.Models.Department { - /// - /// Класс, описывающий ученой степени преподавателя кафедры - /// - [DataContract] - [EntityDescription("LecturerAcademicDegree", "Ученой степени преподавателя кафедры")] - public class LecturerAcademicDegree : BaseEntity, IEntitySecurityExtenstion + [DataContract] + public class LecturerAcademicDegree : BaseEntity, IEntitySecurityExtenstion, ILecturerAcademicDegreeModel { [DataMember] [Required] - [MapConfiguration("LecturerAcademicDegreeName")] public string LecturerAcademicDegreeName { get; set; } [DataMember] - [MapConfiguration("Description")] public string Description { get; set; } [DataMember] - [MapConfiguration("Order")] public int Order { get; set; } //------------------------------------------------------------------------- diff --git a/DepartmentPortal/Common/DatabaseCore/Models/Department/LecturerAcademicRank.cs b/DepartmentPortal/Common/DatabaseCore/Models/Department/LecturerAcademicRank.cs index ac86b3b..0764e63 100644 --- a/DepartmentPortal/Common/DatabaseCore/Models/Department/LecturerAcademicRank.cs +++ b/DepartmentPortal/Common/DatabaseCore/Models/Department/LecturerAcademicRank.cs @@ -1,4 +1,4 @@ -using ModuleTools.Attributes; +using CoreModels.ModelsDepartment; using ModuleTools.Interfaces; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -7,20 +7,14 @@ using System.Runtime.Serialization; namespace DatabaseCore.Models.Department { - /// - /// Класс, описывающий ученое звание преподавателя кафедры - /// - [DataContract] - [EntityDescription("LecturerAcademicRank", "Ученое звание преподавателя кафедры")] - public class LecturerAcademicRank : BaseEntity, IEntitySecurityExtenstion + [DataContract] + public class LecturerAcademicRank : BaseEntity, IEntitySecurityExtenstion, ILecturerAcademicRankModel { [DataMember] [Required] - [MapConfiguration("LecturerAcademicRankName")] public string LecturerAcademicRankName { get; set; } [DataMember] - [MapConfiguration("Order")] public int Order { get; set; } //------------------------------------------------------------------------- diff --git a/DepartmentPortal/Common/DatabaseCore/Models/Department/LecturerPost.cs b/DepartmentPortal/Common/DatabaseCore/Models/Department/LecturerPost.cs index 493eb5a..364b97a 100644 --- a/DepartmentPortal/Common/DatabaseCore/Models/Department/LecturerPost.cs +++ b/DepartmentPortal/Common/DatabaseCore/Models/Department/LecturerPost.cs @@ -1,4 +1,4 @@ -using ModuleTools.Attributes; +using CoreModels.ModelsDepartment; using ModuleTools.Interfaces; using System; using System.ComponentModel.DataAnnotations; @@ -6,36 +6,25 @@ using System.Runtime.Serialization; namespace DatabaseCore.Models.Department { - /// - /// Класс, описывающий связь преподавателя и должность кафедры - /// - [DataContract] - [EntityDescription("LecturerPost", "Связь преподавателя и должность кафедры")] - [EntityDependency("Post", "PostId", "К какой должности относится преподаватель")] - [EntityDependency("Lecturer", "LecturerId", "К какой должности относится преподаватель")] - public class LecturerPost : BaseEntity, IEntitySecurityExtenstion + [DataContract] + public class LecturerPost : BaseEntity, IEntitySecurityExtenstion, ILecturerPostModel { [DataMember] [Required] - [MapConfiguration("LecturerId")] public Guid LecturerId { get; set; } [DataMember] [Required] - [MapConfiguration("PostId")] public Guid PostId { get; set; } [DataMember] [Required] - [MapConfiguration("Rate")] public decimal Rate { get; set; } [DataMember] - [MapConfiguration("IsInternalCombination")] public bool IsInternalCombination { get; set; } [DataMember] - [MapConfiguration("IsExternalCombination")] public bool IsExternalCombination { get; set; } //------------------------------------------------------------------------- diff --git a/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/LecturerAcademicDegreeBindingModels.cs b/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/LecturerAcademicDegreeBindingModels.cs index 4ebc810..347f94b 100644 --- a/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/LecturerAcademicDegreeBindingModels.cs +++ b/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/LecturerAcademicDegreeBindingModels.cs @@ -1,4 +1,4 @@ -using ModuleTools.Attributes; +using CoreModels.ModelsDepartment; using ModuleTools.BindingModels; using System.ComponentModel.DataAnnotations; @@ -14,17 +14,14 @@ namespace DepartmentBusinessLogic.BindingModels /// /// Сохранение ученой степени преподавателя /// - public class LecturerAcademicDegreeSetBindingModel : SetBindingModel + public class LecturerAcademicDegreeSetBindingModel : SetBindingModel, ILecturerAcademicDegreeModel { [Required(ErrorMessage = "required")] - [MapConfiguration("LecturerAcademicDegreeName")] public string LecturerAcademicDegreeName { get; set; } - [MapConfiguration("Description")] public string Description { get; set; } [Required(ErrorMessage = "required")] - [MapConfiguration("Order")] public int Order { get; set; } } } \ No newline at end of file diff --git a/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/LecturerAcademicRankBindingModels.cs b/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/LecturerAcademicRankBindingModels.cs index 3c2e12b..7180882 100644 --- a/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/LecturerAcademicRankBindingModels.cs +++ b/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/LecturerAcademicRankBindingModels.cs @@ -1,4 +1,5 @@ -using ModuleTools.Attributes; +using CoreModels.ModelsDepartment; +using ModuleTools.Attributes; using ModuleTools.BindingModels; using System.ComponentModel.DataAnnotations; @@ -14,14 +15,12 @@ namespace DepartmentBusinessLogic.BindingModels /// /// Сохранение ученого звания преподавателя /// - public class LecturerAcademicRankSetBindingModel : SetBindingModel + public class LecturerAcademicRankSetBindingModel : SetBindingModel, ILecturerAcademicRankModel { [Required(ErrorMessage = "required")] - [MapConfiguration("LecturerAcademicRankName")] public string LecturerAcademicRankName { get; set; } [Required(ErrorMessage = "required")] - [MapConfiguration("Order")] public int Order { get; set; } } } \ No newline at end of file diff --git a/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/LecturerBindingModels.cs b/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/LecturerBindingModels.cs index d4177e7..0928952 100644 --- a/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/LecturerBindingModels.cs +++ b/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/LecturerBindingModels.cs @@ -1,14 +1,14 @@ -using ModuleTools.Attributes; +using CoreModels.ModelsDepartment; using ModuleTools.BindingModels; using System; using System.ComponentModel.DataAnnotations; namespace DepartmentBusinessLogic.BindingModels { - /// - /// Получение преподавателя - /// - public class LecturerGetBindingModel : GetBindingModel + /// + /// Получение преподавателя + /// + public class LecturerGetBindingModel : GetBindingModel { public Guid? UserId { get; set; } @@ -20,62 +20,46 @@ namespace DepartmentBusinessLogic.BindingModels /// /// Сохранение преподавателя /// - public class LecturerSetBindingModel : SetBindingModel + public class LecturerSetBindingModel : SetBindingModel, ILecturerModel { [Required(ErrorMessage = "required")] - [MapConfiguration("UserId")] public Guid UserId { get; set; } - [MapConfiguration("LecturerAcademicRankId")] public Guid? LecturerAcademicRankId { get; set; } - [MapConfiguration("LecturerAcademicDegreeId")] public Guid? LecturerAcademicDegreeId { get; set; } [Required(ErrorMessage = "required")] - [MapConfiguration("LastName")] public string LastName { get; set; } [Required(ErrorMessage = "required")] - [MapConfiguration("FirstName")] public string FirstName { get; set; } - [MapConfiguration("Patronymic")] public string Patronymic { get; set; } - [MapConfiguration("Abbreviation")] public string Abbreviation { get; set; } [Required(ErrorMessage = "required")] - [MapConfiguration("DateBirth")] public DateTime DateBirth { get; set; } [Required(ErrorMessage = "required")] - [MapConfiguration("Address")] public string Address { get; set; } [Required(ErrorMessage = "required")] - [MapConfiguration("Email")] public string Email { get; set; } [Required(ErrorMessage = "required")] - [MapConfiguration("MobileNumber")] public string MobileNumber { get; set; } - [MapConfiguration("HomeNumber")] public string HomeNumber { get; set; } - [MapConfiguration("Description")] public string Description { get; set; } - [MapConfiguration("Photo")] public byte[] Photo { get; set; } - [MapConfiguration("OnlyForPrivate")] public bool OnlyForPrivate { get; set; } [Required(ErrorMessage = "required")] - [MapConfiguration("GroupElectricalSafety")] public string GroupElectricalSafety { get; set; } } } \ No newline at end of file diff --git a/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/LecturerPostBindingModels.cs b/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/LecturerPostBindingModels.cs index 74e9ff3..e13ee75 100644 --- a/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/LecturerPostBindingModels.cs +++ b/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/LecturerPostBindingModels.cs @@ -1,14 +1,14 @@ -using ModuleTools.Attributes; +using CoreModels.ModelsDepartment; using ModuleTools.BindingModels; using System; using System.ComponentModel.DataAnnotations; namespace DepartmentBusinessLogic.BindingModels { - /// - /// Получение связи преподавателя с должностью - /// - public class LecturerPostGetBindingModel : GetBindingModel + /// + /// Получение связи преподавателя с должностью + /// + public class LecturerPostGetBindingModel : GetBindingModel { public Guid? LecturerId { get; set; } @@ -18,24 +18,19 @@ namespace DepartmentBusinessLogic.BindingModels /// /// Сохранение связи преподавателя с должностью /// - public class LecturerPostSetBindingModel : SetBindingModel + public class LecturerPostSetBindingModel : SetBindingModel, ILecturerPostModel { [Required(ErrorMessage = "required")] - [MapConfiguration("LecturerId")] public Guid LecturerId { get; set; } [Required(ErrorMessage = "required")] - [MapConfiguration("PostId")] public Guid PostId { get; set; } [Required(ErrorMessage = "required")] - [MapConfiguration("Rate")] public decimal Rate { get; set; } - [MapConfiguration("IsInternalCombination")] public bool IsInternalCombination { get; set; } - [MapConfiguration("IsExternalCombination")] public bool IsExternalCombination { get; set; } } } \ No newline at end of file diff --git a/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/LecturerAcademicDegreeViewModels.cs b/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/LecturerAcademicDegreeViewModels.cs index 4609e1f..477ad4d 100644 --- a/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/LecturerAcademicDegreeViewModels.cs +++ b/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/LecturerAcademicDegreeViewModels.cs @@ -1,13 +1,14 @@ -using ModuleTools.Attributes; +using CoreModels.ModelsDepartment; +using ModuleTools.Attributes; using ModuleTools.Enums; using ModuleTools.ViewModels; namespace DepartmentBusinessLogic.ViewModels { - /// - /// Список должностей преподавателей - /// - public class LecturerAcademicDegreeListViewModel : ListViewModel { } + /// + /// Список должностей преподавателей + /// + public class LecturerAcademicDegreeListViewModel : ListViewModel { } /// /// Элемент должности преподавателей @@ -15,21 +16,18 @@ namespace DepartmentBusinessLogic.ViewModels [ViewModelControlElementClass(HaveDependenceEntities = true, Width = 800, Height = 500)] [ViewModelControlElementDependenceEntity(Title = "Преподаватели", Order = 1, ParentPropertyName = "LecturerAcademicDegreeId", ControlTypeObject = "DepartmentWindowsDesktop.EntityControls.ControlLecturerList, DepartmentWindowsDesktop")] - public class LecturerAcademicDegreeViewModel : ElementViewModel + public class LecturerAcademicDegreeViewModel : ElementViewModel, ILecturerAcademicDegreeModel { [ViewModelControlListProperty("Ученая степень")] [ViewModelControlElementProperty("Ученая степень", ControlType.ControlString, MustHaveValue = true)] - [MapConfiguration("LecturerAcademicDegreeName")] public string LecturerAcademicDegreeName { get; set; } [ViewModelControlListProperty("Описание")] [ViewModelControlElementProperty("Описание", ControlType.ControlString)] - [MapConfiguration("Description")] public string Description { get; set; } [ViewModelControlListProperty("Порядок", ColumnWidth = 100)] [ViewModelControlElementProperty("Порядок", ControlType.ControlInt, MustHaveValue = true)] - [MapConfiguration("Order")] public int Order { get; set; } } } \ No newline at end of file diff --git a/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/LecturerAcademicRankViewModels.cs b/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/LecturerAcademicRankViewModels.cs index 37d90ff..0725ca3 100644 --- a/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/LecturerAcademicRankViewModels.cs +++ b/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/LecturerAcademicRankViewModels.cs @@ -1,13 +1,14 @@ -using ModuleTools.Attributes; +using CoreModels.ModelsDepartment; +using ModuleTools.Attributes; using ModuleTools.Enums; using ModuleTools.ViewModels; namespace DepartmentBusinessLogic.ViewModels { - /// - /// Список должностей преподавателей - /// - public class LecturerAcademicRankListViewModel : ListViewModel { } + /// + /// Список должностей преподавателей + /// + public class LecturerAcademicRankListViewModel : ListViewModel { } /// /// Элемент должности преподавателей @@ -15,16 +16,14 @@ namespace DepartmentBusinessLogic.ViewModels [ViewModelControlElementClass(HaveDependenceEntities = true, Width = 800, Height = 500)] [ViewModelControlElementDependenceEntity(Title = "Преподаватели", Order = 1, ParentPropertyName = "LecturerAcademicRankId", ControlTypeObject = "DepartmentWindowsDesktop.EntityControls.ControlLecturerList, DepartmentWindowsDesktop")] - public class LecturerAcademicRankViewModel : ElementViewModel + public class LecturerAcademicRankViewModel : ElementViewModel, ILecturerAcademicRankModel { [ViewModelControlListProperty("Ученая степень")] [ViewModelControlElementProperty("Ученая степень", ControlType.ControlString, MustHaveValue = true)] - [MapConfiguration("LecturerAcademicRankName")] public string LecturerAcademicRankName { get; set; } [ViewModelControlListProperty("Порядок", ColumnWidth = 100)] [ViewModelControlElementProperty("Порядок", ControlType.ControlInt, MustHaveValue = true)] - [MapConfiguration("Order")] public int Order { get; set; } } } \ No newline at end of file diff --git a/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/LecturerPostViewModels.cs b/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/LecturerPostViewModels.cs index e88e963..33e01dd 100644 --- a/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/LecturerPostViewModels.cs +++ b/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/LecturerPostViewModels.cs @@ -1,23 +1,23 @@ -using ModuleTools.Attributes; +using CoreModels.ModelsDepartment; +using ModuleTools.Attributes; using ModuleTools.Enums; using ModuleTools.ViewModels; using System; namespace DepartmentBusinessLogic.ViewModels { - /// - /// Список связей преподавателей и должностей - /// - public class LecturerPostListViewModel : ListViewModel { } + /// + /// Список связей преподавателей и должностей + /// + public class LecturerPostListViewModel : ListViewModel { } /// /// Связь преподавателя и должности /// [ViewModelControlElementClass()] - public class LecturerPostViewModel : ElementViewModel + public class LecturerPostViewModel : ElementViewModel, ILecturerPostModel { [ViewModelControlElementProperty("Сотрудник", ControlType.ControlGuid, MustHaveValue = true, ReadOnly = false, ControlTypeObject = "DepartmentWindowsDesktop.EntityControls.ControlLecturerList, DepartmentWindowsDesktop")] - [MapConfiguration("LecturerId", AllowCopyWithoutRigth = false)] public Guid LecturerId { get; set; } [ViewModelControlListProperty("Преподаватель")] @@ -25,7 +25,6 @@ namespace DepartmentBusinessLogic.ViewModels public string LecturerName { get; set; } [ViewModelControlElementProperty("Должность", ControlType.ControlGuid, MustHaveValue = true, ReadOnly = false, ControlTypeObject = "DepartmentWindowsDesktop.EntityControls.ControlPostList, DepartmentWindowsDesktop")] - [MapConfiguration("PostId")] public Guid PostId { get; set; } [ViewModelControlListProperty("Должность")] @@ -34,18 +33,15 @@ namespace DepartmentBusinessLogic.ViewModels [ViewModelControlListProperty("Ставка", ColumnWidth = 80, DefaultCellStyleFormat = "N1")] [ViewModelControlElementProperty("Ставка", ControlType.ControlDecimal, DecimalPlaces = 1, MustHaveValue = true)] - [MapConfiguration("Rate")] public decimal Rate { get; set; } [ViewModelControlElementProperty("Внутр. совм.", ControlType.ControlBool, MustHaveValue = true)] - [MapConfiguration("IsInternalCombination")] public bool IsInternalCombination { get; set; } [ViewModelControlListProperty("Внутр. совм.", ColumnWidth = 80)] public string InternalCombination => IsInternalCombination ? "Да" : "Нет"; [ViewModelControlElementProperty("Внеш. совм.", ControlType.ControlBool, MustHaveValue = true)] - [MapConfiguration("IsExternalCombination")] public bool IsExternalCombination { get; set; } [ViewModelControlListProperty("Внеш. совм.", ColumnWidth = 80)] diff --git a/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/LecturerViewModels.cs b/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/LecturerViewModels.cs index 3e76831..cd70336 100644 --- a/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/LecturerViewModels.cs +++ b/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/LecturerViewModels.cs @@ -1,4 +1,5 @@ -using ModuleTools.Attributes; +using CoreModels.ModelsDepartment; +using ModuleTools.Attributes; using ModuleTools.Enums; using ModuleTools.ViewModels; using System; @@ -20,14 +21,12 @@ namespace DepartmentBusinessLogic.ViewModels ControlTypeObject = "DepartmentWindowsDesktop.EntityControls.ControlEducationDirectionList, DepartmentWindowsDesktop")] [ViewModelControlElementDependenceEntity(Title = "Кураторство групп", Order = 3, ParentPropertyName = "LecturerId", ControlTypeObject = "DepartmentWindowsDesktop.EntityControls.ControlStudentGroupList, DepartmentWindowsDesktop")] - public class LecturerViewModel : ElementViewModel + public class LecturerViewModel : ElementViewModel, ILecturerModel { [ViewModelControlElementProperty("Пользователь", ControlType.ControlGuid, MustHaveValue = true, ReadOnly = false, ControlTypeObject = "SecurityWindowsDesktop.EntityControls.ControlUserList, SecurityWindowsDesktop")] - [MapConfiguration("UserId")] public Guid UserId { get; set; } [ViewModelControlElementProperty("Уч. степень", ControlType.ControlGuid, MustHaveValue = false, ReadOnly = false, ControlTypeObject = "DepartmentWindowsDesktop.EntityControls.ControlLecturerAcademicDegreeList, DepartmentWindowsDesktop")] - [MapConfiguration("LecturerAcademicDegreeId")] public Guid? LecturerAcademicDegreeId { get; set; } [ViewModelControlListProperty("Уч. степень")] @@ -35,7 +34,6 @@ namespace DepartmentBusinessLogic.ViewModels public string LecturerAcademicDegree { get; set; } [ViewModelControlElementProperty("Уч. звание", ControlType.ControlGuid, MustHaveValue = false, ReadOnly = false, ControlTypeObject = "DepartmentWindowsDesktop.EntityControls.ControlLecturerAcademicRankList, DepartmentWindowsDesktop")] - [MapConfiguration("LecturerAcademicRankId")] public Guid? LecturerAcademicRankId { get; set; } [ViewModelControlListProperty("Уч. звание")] @@ -44,63 +42,50 @@ namespace DepartmentBusinessLogic.ViewModels [ViewModelControlListProperty("Фамилия")] [ViewModelControlElementProperty("Фамилия", ControlType.ControlString, MustHaveValue = true)] - [MapConfiguration("LastName")] public string LastName { get; set; } [ViewModelControlListProperty("Имя")] [ViewModelControlElementProperty("Имя", ControlType.ControlString, MustHaveValue = true)] - [MapConfiguration("FirstName")] public string FirstName { get; set; } [ViewModelControlListProperty("Отчество")] [ViewModelControlElementProperty("Отчество", ControlType.ControlString, MustHaveValue = true)] - [MapConfiguration("Patronymic")] public string Patronymic { get; set; } [ViewModelControlElementProperty("Аббревиатура", ControlType.ControlString)] - [MapConfiguration("Abbreviation")] public string Abbreviation { get; set; } [ViewModelControlListProperty("Дата рожд.", ColumnWidth = 100, DefaultCellStyleFormat = "dd.MM.yyyy")] [ViewModelControlElementProperty("Дата рожд.", ControlType.ControlDateTime, MustHaveValue = true)] - [MapConfiguration("DateBirth", AllowCopyWithoutRigth = false)] public DateTime DateBirth { get; set; } [ViewModelControlListProperty("Адрес", ColumnWidth = 90)] [ViewModelControlElementProperty("Адрес", ControlType.ControlString, MustHaveValue = true)] - [MapConfiguration("Address", AllowCopyWithoutRigth = false)] public string Address { get; set; } [ViewModelControlListProperty("Эл. почта", ColumnWidth = 90)] [ViewModelControlElementProperty("Эл. почта", ControlType.ControlString, MustHaveValue = true)] - [MapConfiguration("Email", AllowCopyWithoutRigth = false)] public string Email { get; set; } [ViewModelControlListProperty("Моб. номер", ColumnWidth = 100)] [ViewModelControlElementProperty("Моб. номер", ControlType.ControlString, MustHaveValue = true)] - [MapConfiguration("MobileNumber", AllowCopyWithoutRigth = false)] public string MobileNumber { get; set; } [ViewModelControlListProperty("Дом. номер", ColumnWidth = 100)] [ViewModelControlElementProperty("Дом. номер", ControlType.ControlString)] - [MapConfiguration("HomeNumber", AllowCopyWithoutRigth = false)] public string HomeNumber { get; set; } [ViewModelControlElementProperty("Описание", ControlType.ControlText)] - [MapConfiguration("Description")] public string Description { get; set; } [ViewModelControlElementProperty("Фото", ControlType.ControlImage, Width = 200, Height = 200)] - [MapConfiguration("Photo")] public byte[] Photo { get; set; } [ViewModelControlElementProperty("Для внутр. пользования", ControlType.ControlBool, MustHaveValue = true)] - [MapConfiguration("OnlyForPrivate")] public bool OnlyForPrivate { get; set; } [ViewModelControlListProperty("Гр. эл.без.", ColumnWidth = 90)] [ViewModelControlElementProperty("Группа эл.безоп", ControlType.ControlString, MustHaveValue = true)] - [MapConfiguration("GroupElectricalSafety")] public string GroupElectricalSafety { get; set; } } } \ No newline at end of file