diff --git a/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/EmployeeBindingModels.cs b/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/EmployeeBindingModels.cs index 7a69e2a..1db4e0a 100644 --- a/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/EmployeeBindingModels.cs +++ b/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/EmployeeBindingModels.cs @@ -5,10 +5,16 @@ using System.ComponentModel.DataAnnotations; namespace DepartmentBusinessLogic.BindingModels { - public class EmployeeGetBindingModel : GetBindingModel + /// + /// Получение сотрудника + /// + public class EmployeeGetBindingModel : GetBindingModel { } + /// + /// Сохранение сотрудника + /// public class EmployeeSetBindingModel : SetBindingModel { [Required(ErrorMessage = "required")] diff --git a/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/EmployeeEmployeePostBindingModels.cs b/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/EmployeeEmployeePostBindingModels.cs new file mode 100644 index 0000000..9492eb7 --- /dev/null +++ b/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/EmployeeEmployeePostBindingModels.cs @@ -0,0 +1,41 @@ +using ModuleTools.Attributes; +using ModuleTools.BindingModels; +using System; +using System.ComponentModel.DataAnnotations; + +namespace DepartmentBusinessLogic.BindingModels +{ + /// + /// Получение связи сотрудника с должностью + /// + public class EmployeeEmployeePostGetBindingModel : GetBindingModel + { + public Guid? EmployeeId { get; set; } + + public Guid? EmployeePostId { get; set; } + } + + /// + /// Сохранение связи сотрудника с должностью + /// + public class EmployeeEmployeePostSetBindingModel : SetBindingModel + { + [Required(ErrorMessage = "required")] + [MapConfiguration("EmployeeId")] + public Guid EmployeeId { get; set; } + + [Required(ErrorMessage = "required")] + [MapConfiguration("EmployeePostId")] + public Guid EmployeePostId { 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/EmployeePostBindingModels.cs b/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/EmployeePostBindingModels.cs index 2627fae..a2a4a15 100644 --- a/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/EmployeePostBindingModels.cs +++ b/DepartmentPortal/Department/DepartmentBusinessLogic/BindingModels/EmployeePostBindingModels.cs @@ -4,10 +4,16 @@ using System.ComponentModel.DataAnnotations; namespace DepartmentBusinessLogic.BindingModels { + /// + /// Получение должности сотрудника + /// public class EmployeePostGetBindingModel : GetBindingModel { } + /// + /// Сохранение должности сотрудника + /// public class EmployeePostSetBindingModel : SetBindingModel { [Required(ErrorMessage = "required")] diff --git a/DepartmentPortal/Department/DepartmentBusinessLogic/BusinessLogics/EmployeeEmployeePostBusinessLogic.cs b/DepartmentPortal/Department/DepartmentBusinessLogic/BusinessLogics/EmployeeEmployeePostBusinessLogic.cs new file mode 100644 index 0000000..8e95cb8 --- /dev/null +++ b/DepartmentPortal/Department/DepartmentBusinessLogic/BusinessLogics/EmployeeEmployeePostBusinessLogic.cs @@ -0,0 +1,16 @@ +using DepartmentBusinessLogic.BindingModels; +using DepartmentBusinessLogic.Interfaces; +using DepartmentBusinessLogic.ViewModels; +using ModuleTools.BusinessLogics; +using ModuleTools.Enums; + +namespace DepartmentBusinessLogic.BusinessLogics +{ + /// + /// Логика работы со связями сотрудников и должностей + /// + public class EmployeeEmployeePostBusinessLogic : GenericBusinessLogic + { + public EmployeeEmployeePostBusinessLogic(IEmployeeEmployeePostService service) : base(service, "Должности сотрудников", AccessOperation.Сотрудники) { } + } +} \ No newline at end of file diff --git a/DepartmentPortal/Department/DepartmentBusinessLogic/Interfaces/IEmployeeEmployeePostService.cs b/DepartmentPortal/Department/DepartmentBusinessLogic/Interfaces/IEmployeeEmployeePostService.cs new file mode 100644 index 0000000..4af5d78 --- /dev/null +++ b/DepartmentPortal/Department/DepartmentBusinessLogic/Interfaces/IEmployeeEmployeePostService.cs @@ -0,0 +1,10 @@ +using DepartmentBusinessLogic.BindingModels; +using ModuleTools.Interfaces; + +namespace DepartmentBusinessLogic.Interfaces +{ + /// + /// Хранение связей сотрудников и должностей + /// + public interface IEmployeeEmployeePostService : IGenerticEntityService { } +} \ No newline at end of file diff --git a/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/EmployeeEmployeePostViewModels.cs b/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/EmployeeEmployeePostViewModels.cs new file mode 100644 index 0000000..7ce2119 --- /dev/null +++ b/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/EmployeeEmployeePostViewModels.cs @@ -0,0 +1,56 @@ +using ModuleTools.Attributes; +using ModuleTools.Enums; +using ModuleTools.ViewModels; +using System; + +namespace DepartmentBusinessLogic.ViewModels +{ + /// + /// Список связей сотрудников и должностей + /// + public class EmployeeEmployeePostListViewModel : ListViewModel { } + + /// + /// Связь сотрудника и должности + /// + [ViewModelControlElementClass()] + public class EmployeeEmployeePostViewModel : ElementViewModel + { + [MapConfiguration("EmployeeId", AllowCopyWithoutRigth = false)] + // [ViewModelControlElementProperty("Сотрудник", ControlType.ControlGuid, MustHaveValue = true, ReadOnly = false, ControlTypeObject = "SecurityWindowsDesktop.EntityControls.ControlUserList, SecurityWindowsDesktop")] + public Guid EmployeeId { get; set; } + + [ViewModelControlListProperty("Сотрудник")] + [MapConfiguration("Employee.LastName", IsDifficle = true)] + public string EmployeeName { get; set; } + + [MapConfiguration("EmployeePostId")] + //[ViewModelControlElementProperty("Должность", ControlType.ControlGuid, MustHaveValue = true, ReadOnly = false, ControlTypeObject = "SecurityWindowsDesktop.EntityControls.ControlRoleList, SecurityWindowsDesktop")] + public Guid EmployeePostId { get; set; } + + [ViewModelControlListProperty("Должность")] + [MapConfiguration("EmployeePost.PostName", IsDifficle = true)] + public string EmployeePostName { get; set; } + + [ViewModelControlListProperty("Ставка", 80)] + [ViewModelControlElementProperty("Ставка", ControlType.ControlDecimal, MustHaveValue = true)] + [MapConfiguration("Rate")] + public decimal Rate { get; set; } + + [ViewModelControlElementProperty("Внутр. совм.", ControlType.ControlBool)] + [MapConfiguration("IsInternalCombination")] + public bool IsInternalCombination { get; set; } + + [ViewModelControlListProperty("Внутр. совм.", 80)] + public string InternalCombination => IsInternalCombination ? "Да" : "Нет"; + + [ViewModelControlElementProperty("Внеш. совм.", ControlType.ControlBool)] + [MapConfiguration("IsExternalCombination")] + public bool IsExternalCombination { get; set; } + + [ViewModelControlListProperty("Внеш. совм.", 80)] + public string ExternalCombination => IsExternalCombination ? "Да" : "Нет"; + + public override string ToString() => $"{EmployeeName}-{EmployeePostName}"; + } +} \ No newline at end of file diff --git a/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/EmployeeViewModels.cs b/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/EmployeeViewModels.cs index 865015d..4b1b3b4 100644 --- a/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/EmployeeViewModels.cs +++ b/DepartmentPortal/Department/DepartmentBusinessLogic/ViewModels/EmployeeViewModels.cs @@ -7,12 +7,12 @@ using System; namespace DepartmentBusinessLogic.ViewModels { /// - /// Список ролей + /// Список сотрудников /// public class EmployeeListViewModel : ListViewModel { } /// - /// Элемент ролей + /// Элемент сотрудник /// [ViewModelControlElementClass(HaveDependenceEntities = true, Width = 800, Height = 500)] //[ViewModelControlElementDependenceEntity(Title = "Сотрудники", Order = 1, ParentPropertyName = "EmployeePostId", @@ -38,28 +38,28 @@ namespace DepartmentBusinessLogic.ViewModels public string Patronymic { get; set; } [ViewModelControlListProperty("Отчество")] - [ViewModelControlElementProperty("Отчество", ControlType.ControlDateTime, MustHaveValue = true)] - [MapConfiguration("DateBirth")] + [ViewModelControlElementProperty("Отчество", ControlType.ControlDateTime, MustHaveValue = true )] + [MapConfiguration("DateBirth", AllowCopyWithoutRigth = false)] public DateTime DateBirth { get; set; } [ViewModelControlListProperty("Адрес")] [ViewModelControlElementProperty("Адрес", ControlType.ControlString, MustHaveValue = true)] - [MapConfiguration("Address")] + [MapConfiguration("Address", AllowCopyWithoutRigth = false)] public string Address { get; set; } [ViewModelControlListProperty("Эл. почта")] [ViewModelControlElementProperty("Эл. почта", ControlType.ControlString, MustHaveValue = true)] - [MapConfiguration("Email")] + [MapConfiguration("Email", AllowCopyWithoutRigth = false)] public string Email { get; set; } [ViewModelControlListProperty("Моб. номер")] [ViewModelControlElementProperty("Моб. номер", ControlType.ControlString, MustHaveValue = true)] - [MapConfiguration("MobileNumber")] + [MapConfiguration("MobileNumber", AllowCopyWithoutRigth = false)] public string MobileNumber { get; set; } [ViewModelControlListProperty("Дом. номер")] [ViewModelControlElementProperty("Дом. номер", ControlType.ControlString, MustHaveValue = true)] - [MapConfiguration("HomeNumber")] + [MapConfiguration("HomeNumber", AllowCopyWithoutRigth = false)] public string HomeNumber { get; set; } [ViewModelControlElementProperty("Описание", ControlType.ControlText, MustHaveValue = true)]