diff --git a/DepartmentPortal/Common/CoreModels/ModelsDepartment/IEmployeeModel.cs b/DepartmentPortal/Common/CoreModels/ModelsDepartment/IEmployeeModel.cs
new file mode 100644
index 0000000..f473e6e
--- /dev/null
+++ b/DepartmentPortal/Common/CoreModels/ModelsDepartment/IEmployeeModel.cs
@@ -0,0 +1,40 @@
+using CoreModels.Tools;
+using ModuleTools.Attributes;
+using System;
+
+namespace CoreModels.ModelsDepartment
+{
+ [EntityDescription("Employee", "Сотрудника кафедры")]
+ [EntityDependency("User", "UserId", "К какому пользователю относится сотрудник")]
+ public interface IEmployeeModel : IId
+ {
+ Guid UserId { get; }
+
+ string FirstName { get; }
+
+ string LastName { get; }
+
+ string Patronymic { 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; }
+
+ string GroupElectricalSafety { get; }
+ }
+}
\ No newline at end of file
diff --git a/DepartmentPortal/Common/CoreModels/ModelsDepartment/IEmployeePostModel.cs b/DepartmentPortal/Common/CoreModels/ModelsDepartment/IEmployeePostModel.cs
new file mode 100644
index 0000000..3fab840
--- /dev/null
+++ b/DepartmentPortal/Common/CoreModels/ModelsDepartment/IEmployeePostModel.cs
@@ -0,0 +1,23 @@
+using CoreModels.Tools;
+using ModuleTools.Attributes;
+using System;
+
+namespace CoreModels.ModelsDepartment
+{
+ [EntityDescription("EmployeeEmployeePost", "Связь сотрудника и должность кафедры")]
+ [EntityDependency("Post", "PostId", "К какой должности относится сотрудник")]
+ [EntityDependency("Employee", "EmployeeId", "К какой должности относится сотрудник")]
+ public interface IEmployeePostModel : IId
+ {
+ [CheckRigthForMap]
+ Guid EmployeeId { get; }
+
+ Guid PostId { get; }
+
+ decimal Rate { get; }
+
+ bool IsInternalCombination { get; }
+
+ bool IsExternalCombination { get; }
+ }
+}
\ No newline at end of file
diff --git a/DepartmentPortal/Common/CoreModels/ModelsDepartment/IPostModel.cs b/DepartmentPortal/Common/CoreModels/ModelsDepartment/IPostModel.cs
new file mode 100644
index 0000000..9b1c9a8
--- /dev/null
+++ b/DepartmentPortal/Common/CoreModels/ModelsDepartment/IPostModel.cs
@@ -0,0 +1,15 @@
+using CoreModels.Tools;
+using ModuleTools.Attributes;
+
+namespace CoreModels.ModelsDepartment
+{
+ [EntityDescription("Post", "Должность на кафедры")]
+ public interface IPostModel : IId
+ {
+ string PostName { get; }
+
+ int? Hours { get; }
+
+ int Order { get; }
+ }
+}
\ No newline at end of file
diff --git a/DepartmentPortal/Common/DatabaseCore/Models/Department/Employee.cs b/DepartmentPortal/Common/DatabaseCore/Models/Department/Employee.cs
index 2c5ae2f..c44d01e 100644
--- a/DepartmentPortal/Common/DatabaseCore/Models/Department/Employee.cs
+++ b/DepartmentPortal/Common/DatabaseCore/Models/Department/Employee.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;
@@ -9,60 +9,43 @@ using System.Runtime.Serialization;
namespace DatabaseCore.Models.Department
{
- ///
- /// Класс, описывающий сотрудника кафедры
- ///
[DataContract]
- [EntityDescription("Employee", "Сотрудника кафедры")]
- [EntityDependency("User", "UserId", "К какому пользователю относится сотрудник")]
- public class Employee : BaseEntity, IEntitySecurityExtenstion
+ public class Employee : BaseEntity, IEntitySecurityExtenstion, IEmployeeModel
{
[DataMember]
- [MapConfiguration("UserId")]
public Guid UserId { get; set; }
[DataMember]
- [MapConfiguration("FirstName")]
public string FirstName { get; set; }
[DataMember]
- [MapConfiguration("LastName")]
public string LastName { get; set; }
[DataMember]
- [MapConfiguration("Patronymic")]
public string Patronymic { get; set; }
[DataMember]
- [MapConfiguration("DateBirth")]
public DateTime DateBirth { get; set; }
[DataMember]
- [MapConfiguration("Address")]
public string Address { get; set; }
[DataMember]
- [MapConfiguration("Email")]
public string Email { get; set; }
[DataMember]
- [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("GroupElectricalSafety")]
public string GroupElectricalSafety { get; set; }
//-------------------------------------------------------------------------
diff --git a/DepartmentPortal/Common/DatabaseCore/Models/Department/EmployeePost.cs b/DepartmentPortal/Common/DatabaseCore/Models/Department/EmployeePost.cs
index 216961d..8409a7e 100644
--- a/DepartmentPortal/Common/DatabaseCore/Models/Department/EmployeePost.cs
+++ b/DepartmentPortal/Common/DatabaseCore/Models/Department/EmployeePost.cs
@@ -1,37 +1,26 @@
-using ModuleTools.Attributes;
+using CoreModels.ModelsDepartment;
using ModuleTools.Interfaces;
using System;
using System.Runtime.Serialization;
namespace DatabaseCore.Models.Department
{
- ///
- /// Класс, описывающий связь сотрудника и должность кафедры
- ///
- [DataContract]
- [EntityDescription("EmployeeEmployeePost", "Связь сотрудника и должность кафедры")]
- [EntityDependency("Post", "PostId", "К какой должности относится сотрудник")]
- [EntityDependency("Employee", "EmployeeId", "К какой должности относится сотрудник")]
- public class EmployeePost : BaseEntity, IEntitySecurityExtenstion
+ [DataContract]
+ public class EmployeePost : BaseEntity, IEntitySecurityExtenstion, IEmployeePostModel
{
[DataMember]
- [MapConfiguration("EmployeeId")]
public Guid EmployeeId { get; set; }
[DataMember]
- [MapConfiguration("PostId")]
public Guid PostId { get; set; }
[DataMember]
- [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/Common/DatabaseCore/Models/Department/Post.cs b/DepartmentPortal/Common/DatabaseCore/Models/Department/Post.cs
index 2ea3b32..66faceb 100644
--- a/DepartmentPortal/Common/DatabaseCore/Models/Department/Post.cs
+++ b/DepartmentPortal/Common/DatabaseCore/Models/Department/Post.cs
@@ -1,4 +1,4 @@
-using ModuleTools.Attributes;
+using CoreModels.ModelsDepartment;
using ModuleTools.Interfaces;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
@@ -6,23 +6,16 @@ using System.Runtime.Serialization;
namespace DatabaseCore.Models.Department
{
- ///
- /// Класс, описывающий должность на кафедры
- ///
- [DataContract]
- [EntityDescription("Post", "Должность на кафедры")]
- public class Post : BaseEntity, IEntitySecurityExtenstion
+ [DataContract]
+ public class Post : BaseEntity, IEntitySecurityExtenstion, IPostModel
{
[DataMember]
- [MapConfiguration("PostName")]
public string PostName { get; set; }
[DataMember]
- [MapConfiguration("Hours")]
public int? Hours { get; set; }
[DataMember]
- [MapConfiguration("Order")]
public int Order { get; set; }
//-------------------------------------------------------------------------
diff --git a/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/EmployeeBindingModels.cs b/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/EmployeeBindingModels.cs
index 101afb8..692a9aa 100644
--- a/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/EmployeeBindingModels.cs
+++ b/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/EmployeeBindingModels.cs
@@ -1,4 +1,4 @@
-using ModuleTools.Attributes;
+using CoreModels.ModelsDepartment;
using ModuleTools.BindingModels;
using System;
using System.ComponentModel.DataAnnotations;
@@ -16,50 +16,38 @@ namespace DepartmentBusinessLogic.BindingModels
///
/// Сохранение сотрудника
///
- public class EmployeeSetBindingModel : SetBindingModel
+ public class EmployeeSetBindingModel : SetBindingModel, IEmployeeModel
{
[Required(ErrorMessage = "required")]
- [MapConfiguration("UserId")]
public Guid UserId { 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; }
[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; }
[Required(ErrorMessage = "required")]
- [MapConfiguration("GroupElectricalSafety")]
public string GroupElectricalSafety { get; set; }
}
}
\ No newline at end of file
diff --git a/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/EmployeePostBindingModels.cs b/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/EmployeePostBindingModels.cs
index d2aec24..554f520 100644
--- a/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/EmployeePostBindingModels.cs
+++ b/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/EmployeePostBindingModels.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 EmployeePostGetBindingModel : GetBindingModel
+ ///
+ /// Получение связи сотрудника с должностью
+ ///
+ public class EmployeePostGetBindingModel : GetBindingModel
{
public Guid? EmployeeId { get; set; }
@@ -18,24 +18,19 @@ namespace DepartmentBusinessLogic.BindingModels
///
/// Сохранение связи сотрудника с должностью
///
- public class EmployeePostSetBindingModel : SetBindingModel
+ public class EmployeePostSetBindingModel : SetBindingModel, IEmployeePostModel
{
[Required(ErrorMessage = "required")]
- [MapConfiguration("EmployeeId")]
public Guid EmployeeId { 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/BindingModels/PostBindingModels.cs b/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/PostBindingModels.cs
index 7288944..a84c018 100644
--- a/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/PostBindingModels.cs
+++ b/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/PostBindingModels.cs
@@ -1,4 +1,4 @@
-using ModuleTools.Attributes;
+using CoreModels.ModelsDepartment;
using ModuleTools.BindingModels;
using System.ComponentModel.DataAnnotations;
@@ -14,18 +14,15 @@ namespace DepartmentBusinessLogic.BindingModels
///
/// Сохранение должности сотрудника
///
- public class PostSetBindingModel : SetBindingModel
+ public class PostSetBindingModel : SetBindingModel, IPostModel
{
[Required(ErrorMessage = "required")]
- [MapConfiguration("PostName")]
public string PostName { get; set; }
[Required(ErrorMessage = "required")]
- [MapConfiguration("Hours")]
public int? Hours { get; set; }
[Required(ErrorMessage = "required")]
- [MapConfiguration("Order")]
public int Order { get; set; }
}
}
\ No newline at end of file
diff --git a/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/EmployeePostViewModels.cs b/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/EmployeePostViewModels.cs
index e0cafd9..6697105 100644
--- a/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/EmployeePostViewModels.cs
+++ b/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/EmployeePostViewModels.cs
@@ -1,4 +1,5 @@
-using ModuleTools.Attributes;
+using CoreModels.ModelsDepartment;
+using ModuleTools.Attributes;
using ModuleTools.Enums;
using ModuleTools.ViewModels;
using System;
@@ -14,10 +15,9 @@ namespace DepartmentBusinessLogic.ViewModels
/// Связь сотрудника и должности
///
[ViewModelControlElementClass()]
- public class EmployeePostViewModel : ElementViewModel
+ public class EmployeePostViewModel : ElementViewModel, IEmployeePostModel
{
[ViewModelControlElementProperty("Сотрудник", ControlType.ControlGuid, MustHaveValue = true, ReadOnly = false, ControlTypeObject = "DepartmentWindowsDesktop.EntityControls.ControlEmployeeList, DepartmentWindowsDesktop")]
- [MapConfiguration("EmployeeId", AllowCopyWithoutRigth = false)]
public Guid EmployeeId { get; set; }
[ViewModelControlListProperty("Сотрудник")]
@@ -25,7 +25,6 @@ namespace DepartmentBusinessLogic.ViewModels
public string EmployeeName { 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/EmployeeViewModels.cs b/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/EmployeeViewModels.cs
index ea98cb8..7dfcf04 100644
--- a/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/EmployeeViewModels.cs
+++ b/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/EmployeeViewModels.cs
@@ -1,14 +1,15 @@
-using ModuleTools.Attributes;
+using CoreModels.ModelsDepartment;
+using ModuleTools.Attributes;
using ModuleTools.Enums;
using ModuleTools.ViewModels;
using System;
namespace DepartmentBusinessLogic.ViewModels
{
- ///
- /// Список сотрудников
- ///
- public class EmployeeListViewModel : ListViewModel { }
+ ///
+ /// Список сотрудников
+ ///
+ public class EmployeeListViewModel : ListViewModel { }
///
/// Элемент сотрудник
@@ -18,63 +19,51 @@ namespace DepartmentBusinessLogic.ViewModels
ControlTypeObject = "DepartmentWindowsDesktop.EntityControls.ControlEmployeePostList, DepartmentWindowsDesktop")]
[ViewModelControlElementDependenceEntity(Title = "Аудитории", Order = 1, ParentPropertyName = "EmployeeId",
ControlTypeObject = "DepartmentWindowsDesktop.EntityControls.ControlClassroomList, DepartmentWindowsDesktop")]
- public class EmployeeViewModel : ElementViewModel
+ public class EmployeeViewModel : ElementViewModel, IEmployeeModel
{
[ViewModelControlElementProperty("Пользователь", ControlType.ControlGuid, MustHaveValue = true, ReadOnly = false, ControlTypeObject = "SecurityWindowsDesktop.EntityControls.ControlUserList, SecurityWindowsDesktop")]
- [MapConfiguration("UserId")]
public Guid UserId { get; set; }
[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; }
[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; }
[ViewModelControlListProperty("Гр. эл.без.", ColumnWidth = 90)]
[ViewModelControlElementProperty("Группа эл.безоп", ControlType.ControlString, MustHaveValue = true)]
- [MapConfiguration("GroupElectricalSafety")]
public string GroupElectricalSafety { get; set; }
}
}
\ No newline at end of file
diff --git a/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/PostViewModels.cs b/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/PostViewModels.cs
index b55d6e3..5cb9cae 100644
--- a/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/PostViewModels.cs
+++ b/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/PostViewModels.cs
@@ -1,4 +1,5 @@
-using ModuleTools.Attributes;
+using CoreModels.ModelsDepartment;
+using ModuleTools.Attributes;
using ModuleTools.Enums;
using ModuleTools.ViewModels;
@@ -17,15 +18,13 @@ namespace DepartmentBusinessLogic.ViewModels
ControlTypeObject = "DepartmentWindowsDesktop.EntityControls.ControlEmployeePostList, DepartmentWindowsDesktop")]
[ViewModelControlElementDependenceEntity(Title = "Преподаватели", Order = 1, ParentPropertyName = "PostId",
ControlTypeObject = "DepartmentWindowsDesktop.EntityControls.ControlLecturerPostList, DepartmentWindowsDesktop")]
- public class PostViewModel : ElementViewModel
+ public class PostViewModel : ElementViewModel, IPostModel
{
[ViewModelControlListProperty("Название должности")]
[ViewModelControlElementProperty("Название должности", ControlType.ControlString, MustHaveValue = true)]
- [MapConfiguration("PostName")]
public string PostName { get; set; }
[ViewModelControlElementProperty("Часы", ControlType.ControlInt, MustHaveValue = false)]
- [MapConfiguration("Hours")]
public int? Hours { get; set; }
[ViewModelControlListProperty("Часы", ColumnWidth = 100)]
@@ -33,7 +32,6 @@ namespace DepartmentBusinessLogic.ViewModels
[ViewModelControlListProperty("Порядок", ColumnWidth = 100)]
[ViewModelControlElementProperty("Порядок", ControlType.ControlInt, MustHaveValue = true)]
- [MapConfiguration("Order")]
public int Order { get; set; }
}
}
\ No newline at end of file