diff --git a/ConfectionaryBusinessLogic/ClientLogic.cs b/ConfectionaryBusinessLogic/ClientLogic.cs index 1a9b6c8..be32b1f 100644 --- a/ConfectionaryBusinessLogic/ClientLogic.cs +++ b/ConfectionaryBusinessLogic/ClientLogic.cs @@ -1,10 +1,12 @@ -using ConfectioneryBusinessLogic.BusinessLogics; +using System.Text.RegularExpressions; +using ConfectioneryBusinessLogic.BusinessLogics; using ConfectioneryContracts.BindingModels; using ConfectioneryContracts.BusinessLogicsContracts; using ConfectioneryContracts.SearchModels; using ConfectioneryContracts.StoragesContract; using ConfectioneryContracts.ViewModels; using Microsoft.Extensions.Logging; +// ReSharper disable All namespace ConfectioneryBusinessLogic { @@ -102,6 +104,16 @@ namespace ConfectioneryBusinessLogic { throw new ArgumentNullException("Нет логина клиента", nameof(model.Email)); } + if (!Regex.IsMatch(model.Email, @"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$")) + { + throw new ArgumentException("Некорретно введенный email", nameof(model.Email)); + } + // Исходный: ^((\w+\d+\W+)|(\w+\W+\d+)|(\d+\w+\W+)|(\d+\W+\w+)|(\W+\w+\d+)|(\W+\d+\w +))+$ + // Просматриваем наперед последовательность (де-факто оператор &&) цифр, небуквенных символов и букв (не цифр и не пробельных символов) + if (!Regex.IsMatch(model.Password, @"^(?=.*\d)(?=.*\W)(?=.*[^\d\s]).+$")) + { + throw new ArgumentException("Некорректно введенный пароль. Пароль должен содержать хотя бы одну букву, цифру и не буквенный символ", nameof(model.Password)); + } _logger.LogInformation("Client. Id: {Id}, FIO: {fio}, email: {email}", model.Id, model.ClientFIO, model.Email ); var element = _clientStorage.GetElement(new ClientSearchModel {