добавление пользователя сотруднику и преподавателю

This commit is contained in:
kotcheshir73 2021-04-08 14:27:21 +04:00
parent 23a136e0b4
commit 754edb3e2a
2 changed files with 114 additions and 2 deletions

View File

@ -1,10 +1,17 @@
using DepartmentBusinessLogic.BindingModels; using DepartmentBusinessLogic.BindingModels;
using DepartmentBusinessLogic.BusinessLogics; using DepartmentBusinessLogic.BusinessLogics;
using DepartmentBusinessLogic.ViewModels; using DepartmentBusinessLogic.ViewModels;
using DesktopTools.BaseControls;
using DesktopTools.Controls; using DesktopTools.Controls;
using DesktopTools.Helpers;
using DesktopTools.Interfaces; using DesktopTools.Interfaces;
using DesktopTools.Models; using DesktopTools.Models;
using ModuleTools.BusinessLogics;
using ModuleTools.Extensions;
using SecurityBusinessLogic.BindingModels;
using SecurityBusinessLogic.BusinessLogics;
using System; using System;
using System.Collections.Generic;
namespace DepartmentWindowsDesktop.EntityControls namespace DepartmentWindowsDesktop.EntityControls
{ {
@ -25,6 +32,55 @@ namespace DepartmentWindowsDesktop.EntityControls
public IControl GetInstanceGenericControl() => new ControlEmployeeElement() { ControlId = Guid.NewGuid() }; public IControl GetInstanceGenericControl() => new ControlEmployeeElement() { ControlId = Guid.NewGuid() };
public ControlViewEntityElementConfiguration GetConfigControl() => new(); public ControlViewEntityElementConfiguration GetConfigControl() => new()
{
ControlOnMoveElem = new Dictionary<string, (string Title, EventHandler Event)>
{
{ "ToolStripMenuItemAddUser", ("Добавить пользователя", (object sender, EventArgs e) => { AddUser(); }) }
}
};
private void AddUser()
{
var model = new EmployeeSetBindingModel();
if (FillModel(model))
{
var logic = DependencyManager.Instance.Resolve<UserBusinessLogic>();
var userName = $"{model.LastName}{(model.FirstName.IsNotEmpty() ? $" {model.FirstName[0]}." : string.Empty)}{(model.Patronymic.IsNotEmpty() ? $"{model.Patronymic[0]}." : string.Empty)}";
var result = logic.GetList(new UserGetBindingModel { UserNameForSearch = userName });
if (result != null)
{
if (result.List.Count > 1)
{
DialogHelper.MessageException("Существует несколько пользователей с такой сигнатурой", "Ошибка");
return;
}
if (result.List.Count == 1)
{
model.UserId = result.List[0].Id;
}
else
{
var newuser = logic.Create(new UserSetBindingModel
{
Login = userName,
Password = model.DateBirth.ToShortDateString(),
Avatar = model.Photo
});
if (newuser == null)
{
DialogHelper.MessageException(logic.Errors, "Ошибка при создании пользователя");
return;
}
model.UserId = newuser.Id;
}
var controls = tabPageMain.Controls.Find($"ControlUserId", true);
if (controls != null)
{
(controls[0] as AbstractBaseControl).SetValue(model);
}
}
}
}
} }
} }

View File

@ -1,10 +1,17 @@
using DepartmentBusinessLogic.BindingModels; using DepartmentBusinessLogic.BindingModels;
using DepartmentBusinessLogic.BusinessLogics; using DepartmentBusinessLogic.BusinessLogics;
using DepartmentBusinessLogic.ViewModels; using DepartmentBusinessLogic.ViewModels;
using DesktopTools.BaseControls;
using DesktopTools.Controls; using DesktopTools.Controls;
using DesktopTools.Helpers;
using DesktopTools.Interfaces; using DesktopTools.Interfaces;
using DesktopTools.Models; using DesktopTools.Models;
using ModuleTools.BusinessLogics;
using ModuleTools.Extensions;
using SecurityBusinessLogic.BindingModels;
using SecurityBusinessLogic.BusinessLogics;
using System; using System;
using System.Collections.Generic;
namespace DepartmentWindowsDesktop.EntityControls namespace DepartmentWindowsDesktop.EntityControls
{ {
@ -22,6 +29,55 @@ namespace DepartmentWindowsDesktop.EntityControls
public IControl GetInstanceGenericControl() => new ControlLecturerElement() { ControlId = Guid.NewGuid() }; public IControl GetInstanceGenericControl() => new ControlLecturerElement() { ControlId = Guid.NewGuid() };
public ControlViewEntityElementConfiguration GetConfigControl() => new(); public ControlViewEntityElementConfiguration GetConfigControl() => new()
{
ControlOnMoveElem = new Dictionary<string, (string Title, EventHandler Event)>
{
{ "ToolStripMenuItemAddUser", ("Добавить пользователя", (object sender, EventArgs e) => { AddUser(); }) }
}
};
private void AddUser()
{
var model = new LecturerSetBindingModel();
if (FillModel(model))
{
var logic = DependencyManager.Instance.Resolve<UserBusinessLogic>();
var userName = $"{model.LastName}{(model.FirstName.IsNotEmpty() ? $" {model.FirstName[0]}." : string.Empty)}{(model.Patronymic.IsNotEmpty() ? $"{model.Patronymic[0]}." : string.Empty)}";
var result = logic.GetList(new UserGetBindingModel { UserNameForSearch = userName });
if (result != null)
{
if (result.List.Count > 1)
{
DialogHelper.MessageException("Существует несколько пользователей с такой сигнатурой", "Ошибка");
return;
}
if (result.List.Count == 1)
{
model.UserId = result.List[0].Id;
}
else
{
var newuser = logic.Create(new UserSetBindingModel
{
Login = userName,
Password = model.DateBirth.ToShortDateString(),
Avatar = model.Photo
});
if (newuser == null)
{
DialogHelper.MessageException(logic.Errors, "Ошибка при создании пользователя");
return;
}
model.UserId = newuser.Id;
}
var controls = tabPageMain.Controls.Find($"ControlUserId", true);
if (controls != null)
{
(controls[0] as AbstractBaseControl).SetValue(model);
}
}
}
}
} }
} }