Реализация логики сотрудника
This commit is contained in:
parent
134d136cd2
commit
1662294c85
@ -79,12 +79,70 @@ namespace CarServiceBusinessLogic.BusinessLogics
|
|||||||
{
|
{
|
||||||
if (model == null)
|
if (model == null)
|
||||||
{
|
{
|
||||||
throw new ArgumentNullException(nameof(model));
|
throw new ArgumentException(nameof(model));
|
||||||
}
|
}
|
||||||
if (!withParams)
|
if (!withParams)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Введён ли логин?
|
||||||
|
if (string.IsNullOrEmpty(model.Login))
|
||||||
|
{
|
||||||
|
_logger.LogWarning("Login is empty");
|
||||||
|
throw new ArgumentException("Не введён логин");
|
||||||
|
}
|
||||||
|
//Логин не должен быть больше 30 символов
|
||||||
|
if (model.Login.Length > 30)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("Login {Login} length > 30", model.Login);
|
||||||
|
throw new ArgumentException("Длина логина не должна превышать 30 символов");
|
||||||
|
}
|
||||||
|
//Проверяем логин на уникальность
|
||||||
|
var existingWorker = _workerStorage.GetElement(new()
|
||||||
|
{
|
||||||
|
Login = model.Login
|
||||||
|
});
|
||||||
|
if (existingWorker != null)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("Worker with login {Login} already exists", model.Login);
|
||||||
|
throw new ArgumentException("Сотрудник с таким логином уже существует");
|
||||||
|
}
|
||||||
|
//Введён ли пароль?
|
||||||
|
if (string.IsNullOrEmpty(model.Password))
|
||||||
|
{
|
||||||
|
_logger.LogWarning("Password is empty");
|
||||||
|
throw new ArgumentException("Не введён пароль");
|
||||||
|
}
|
||||||
|
//Пароль не должен быть менее 7 и более 30 символов
|
||||||
|
if (model.Password.Length < 7 || model.Password.Length > 30)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("Password {Password} length > 30 or < 7", model.Password);
|
||||||
|
throw new ArgumentException("Длина пароля должна быть в промежутке между 7 и 30 символами");
|
||||||
|
}
|
||||||
|
//Введено ли имя?
|
||||||
|
if (string.IsNullOrEmpty(model.Name))
|
||||||
|
{
|
||||||
|
_logger.LogWarning("Name is empty");
|
||||||
|
throw new ArgumentException("Не введёно имя");
|
||||||
|
}
|
||||||
|
//Имя должно быть не более 30 символов
|
||||||
|
if (model.Name.Length > 30)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("Name {Name} length > 30", model.Name);
|
||||||
|
throw new ArgumentException("Длина имени не должна превышать 30 символов");
|
||||||
|
}
|
||||||
|
//Введена ли фамилия?
|
||||||
|
if (string.IsNullOrEmpty(model.Surname))
|
||||||
|
{
|
||||||
|
_logger.LogWarning("Surname is empty");
|
||||||
|
throw new ArgumentException("Не введёна фамилия");
|
||||||
|
}
|
||||||
|
//Фамилия должна быть не более 30 символов
|
||||||
|
if (model.Surname.Length > 30)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("Surname {Surname} length > 30", model.Surname);
|
||||||
|
throw new ArgumentException("Длина фамилии не должна превышать 30 символов");
|
||||||
|
}
|
||||||
_logger.LogInformation("Worker. Id: {Id}", model.Id);
|
_logger.LogInformation("Worker. Id: {Id}", model.Id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,5 +3,13 @@
|
|||||||
public class WorkerSearchModel
|
public class WorkerSearchModel
|
||||||
{
|
{
|
||||||
public int? Id { get; set; }
|
public int? Id { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// Поиск клиента по логину для проверки логина на уникальность и для входа
|
||||||
|
/// </summary>
|
||||||
|
public string? Login { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// Поиск клиента по паролю для входа
|
||||||
|
/// </summary>
|
||||||
|
public string? Password { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,11 +21,22 @@ namespace CarServiceDatabase.Implements
|
|||||||
public WorkerViewModel? GetElement(WorkerSearchModel model)
|
public WorkerViewModel? GetElement(WorkerSearchModel model)
|
||||||
{
|
{
|
||||||
using var context = new CarServiceDbContext();
|
using var context = new CarServiceDbContext();
|
||||||
|
if (model.Id.HasValue)//Сначала ищем по Id
|
||||||
|
{
|
||||||
return context.Workers.FirstOrDefault(x => x.Id == model.Id)?.GetViewModel;
|
return context.Workers.FirstOrDefault(x => x.Id == model.Id)?.GetViewModel;
|
||||||
}
|
}
|
||||||
|
else if (!string.IsNullOrEmpty(model.Login) && string.IsNullOrEmpty(model.Password))//Затем по логину (для проверки уникальности)
|
||||||
|
{
|
||||||
|
return context.Workers.FirstOrDefault(x => x.Login == model.Login)?.GetViewModel;
|
||||||
|
}
|
||||||
|
else if (!string.IsNullOrEmpty(model.Login) && !string.IsNullOrEmpty(model.Password))//Затем по логину и паролю (для входа)
|
||||||
|
{
|
||||||
|
return context.Workers.FirstOrDefault(x => x.Login == model.Login && x.Password == model.Password)?.GetViewModel;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
public WorkerViewModel? Insert(WorkerBindingModel model)
|
public WorkerViewModel? Insert(WorkerBindingModel model)
|
||||||
{
|
{
|
||||||
//TODO проверка на униКАЛьность
|
|
||||||
using var context = new CarServiceDbContext();
|
using var context = new CarServiceDbContext();
|
||||||
var newWorker = Worker.Create(model);
|
var newWorker = Worker.Create(model);
|
||||||
if (newWorker != null)
|
if (newWorker != null)
|
||||||
@ -38,11 +49,27 @@ namespace CarServiceDatabase.Implements
|
|||||||
}
|
}
|
||||||
public WorkerViewModel? Update(WorkerBindingModel model)
|
public WorkerViewModel? Update(WorkerBindingModel model)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
using var context = new CarServiceDbContext();
|
||||||
|
var worker = context.Workers.FirstOrDefault(x => x.Id == model.Id);
|
||||||
|
if (worker == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
worker.Update(model);
|
||||||
|
context.SaveChanges();
|
||||||
|
return worker.GetViewModel;
|
||||||
}
|
}
|
||||||
public WorkerViewModel? Delete(WorkerBindingModel model)
|
public WorkerViewModel? Delete(WorkerBindingModel model)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
using var context = new CarServiceDbContext();
|
||||||
|
var worker = context.Workers.FirstOrDefault(x => x.Id == model.Id);
|
||||||
|
if (worker == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
context.Workers.Remove(worker);
|
||||||
|
context.SaveChanges();
|
||||||
|
return worker.GetViewModel;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,17 +42,6 @@ namespace CarServiceDatabase.Models
|
|||||||
Surname = model.Surname
|
Surname = model.Surname
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
public static Worker Create(WorkerViewModel model)
|
|
||||||
{
|
|
||||||
return new()
|
|
||||||
{
|
|
||||||
Id = model.Id,
|
|
||||||
Login = model.Login,
|
|
||||||
Password = model.Password,
|
|
||||||
Name = model.Name,
|
|
||||||
Surname = model.Surname
|
|
||||||
};
|
|
||||||
}
|
|
||||||
public void Update(WorkerBindingModel? model)
|
public void Update(WorkerBindingModel? model)
|
||||||
{
|
{
|
||||||
if (model == null)
|
if (model == null)
|
||||||
|
@ -14,6 +14,8 @@ namespace CarServiceView
|
|||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
private void buttonRegister_Click(object sender, EventArgs e)
|
private void buttonRegister_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
try
|
||||||
{
|
{
|
||||||
_workerLogic.Create(new()
|
_workerLogic.Create(new()
|
||||||
{
|
{
|
||||||
@ -23,5 +25,10 @@ namespace CarServiceView
|
|||||||
Surname = textBoxSurname.Text
|
Surname = textBoxSurname.Text
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user