diff --git a/Hotel/HotelBusinessLogic/BusinessLogics/HeadwaiterLogic.cs b/Hotel/HotelBusinessLogic/BusinessLogics/HeadwaiterLogic.cs index 0733463..38403cf 100644 --- a/Hotel/HotelBusinessLogic/BusinessLogics/HeadwaiterLogic.cs +++ b/Hotel/HotelBusinessLogic/BusinessLogics/HeadwaiterLogic.cs @@ -8,6 +8,7 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; +using System.Text.RegularExpressions; using System.Threading.Tasks; namespace HotelBusinessLogic.BusinessLogics @@ -140,6 +141,11 @@ namespace HotelBusinessLogic.BusinessLogics throw new ArgumentNullException("Нет номера телефона метродотеля", nameof(model.HeadwaiterNumber)); } + if (model.HeadwaiterEmail.Length > _loginMaxLength || !Regex.IsMatch(model.HeadwaiterEmail, @"([a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+)")) + { + throw new Exception($"В качестве логина должна быть указана почта и иметь длинну не более {_loginMaxLength} символов"); + } + if (string.IsNullOrEmpty(model.HeadwaiterEmail)) { throw new ArgumentNullException("Нет почты метродотеля", nameof(model.HeadwaiterEmail)); @@ -150,21 +156,17 @@ namespace HotelBusinessLogic.BusinessLogics throw new ArgumentNullException("Нет пароля метродотеля", nameof(model.HeadwaiterPassword)); } - if (model.HeadwaiterPassword.Length < _passwordMinLength) + if (model.HeadwaiterPassword.Length > _passwordMaxLength || model.HeadwaiterPassword.Length < _passwordMinLength + || !Regex.IsMatch(model.HeadwaiterPassword, @"^((\w+\d+\W+)|(\w+\W+\d+)|(\d+\w+\W+)|(\d+\W+\w+)|(\W+\w+\d+)|(\W+\d+\w+))[\w\d\W]*$")) { - throw new ArgumentNullException("Пароль слишком короткий", nameof(model.HeadwaiterPassword)); - } - - if (model.HeadwaiterPassword.Length > _passwordMaxLength) - { - throw new ArgumentNullException("Пароль слишком длинный", nameof(model.HeadwaiterPassword)); + throw new Exception($"Пароль длиной от {_passwordMinLength} до {_passwordMaxLength} должен состоять из цифр, букв и небуквенных символов"); } _logger.LogInformation("Headwaiter. HeadwaiterFIO: {HeadwaiterFIO}. HeadwaiterLogin: {HeadwaiterLogin}. Id: {Id}", model.HeadwaiterFIO, model.HeadwaiterLogin, model.Id); var element = _headwaiterStorage.GetElement(new HeadwaiterSearchModel { - HeadwaiterLogin = model.HeadwaiterLogin + HeadwaiterEmail = model.HeadwaiterEmail }); if (element != null && element.Id != model.Id)