проверка емейла и пароля при регистрации организатора

This commit is contained in:
AnnZhimol 2023-05-17 21:30:57 +04:00
parent 784e899c33
commit 78c04095fa

View File

@ -4,6 +4,7 @@ using HotelContracts.SearchModels;
using HotelContracts.StoragesContracts; using HotelContracts.StoragesContracts;
using HotelContracts.ViewModels; using HotelContracts.ViewModels;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using System.Text.RegularExpressions;
namespace HotelBusinessLogic.BusinessLogics namespace HotelBusinessLogic.BusinessLogics
{ {
@ -135,6 +136,11 @@ namespace HotelBusinessLogic.BusinessLogics
throw new ArgumentNullException("Нет номера телефона организатора", nameof(model.OrganiserNumber)); throw new ArgumentNullException("Нет номера телефона организатора", nameof(model.OrganiserNumber));
} }
if (model.OrganiserEmail.Length > _loginMaxLength || !Regex.IsMatch(model.OrganiserEmail, @"([a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+)"))
{
throw new Exception($"В качестве логина должна быть указана почта и иметь длинну не более {_loginMaxLength} символов");
}
if (string.IsNullOrEmpty(model.OrganiserEmail)) if (string.IsNullOrEmpty(model.OrganiserEmail))
{ {
throw new ArgumentNullException("Нет почты организатора", nameof(model.OrganiserEmail)); throw new ArgumentNullException("Нет почты организатора", nameof(model.OrganiserEmail));
@ -145,21 +151,17 @@ namespace HotelBusinessLogic.BusinessLogics
throw new ArgumentNullException("Нет пароля организатора", nameof(model.OrganiserPassword)); throw new ArgumentNullException("Нет пароля организатора", nameof(model.OrganiserPassword));
} }
if (model.OrganiserPassword.Length < _passwordMinLength) if (model.OrganiserPassword.Length > _passwordMaxLength || model.OrganiserPassword.Length < _passwordMinLength
|| !Regex.IsMatch(model.OrganiserPassword, @"^((\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.OrganiserPassword)); throw new Exception($"Пароль длиной от {_passwordMinLength} до {_passwordMaxLength} должен состоять из цифр, букв и небуквенных символов");
}
if (model.OrganiserPassword.Length > _passwordMaxLength)
{
throw new ArgumentNullException("Пароль слишком длинный", nameof(model.OrganiserPassword));
} }
_logger.LogInformation("Organiser. OrganiserFIO: {OrganiserFIO}. OrganiserLogin: {OrganiserLogin}. Id: {Id}", model.OrganiserFIO, model.OrganiserLogin, model.Id); _logger.LogInformation("Organiser. OrganiserFIO: {OrganiserFIO}. OrganiserLogin: {OrganiserLogin}. Id: {Id}", model.OrganiserFIO, model.OrganiserLogin, model.Id);
var element = _organiserStorage.GetElement(new OrganiserSearchModel var element = _organiserStorage.GetElement(new OrganiserSearchModel
{ {
OrganiserLogin = model.OrganiserLogin OrganiserEmail = model.OrganiserEmail
}); });
if (element != null && element.Id != model.Id) if (element != null && element.Id != model.Id)