diff --git a/AsbCloudInfrastructure/AsbCloudInfrastructure.csproj b/AsbCloudInfrastructure/AsbCloudInfrastructure.csproj index 3d8d3d99..5a40baf6 100644 --- a/AsbCloudInfrastructure/AsbCloudInfrastructure.csproj +++ b/AsbCloudInfrastructure/AsbCloudInfrastructure.csproj @@ -18,6 +18,7 @@ + diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 7eef6f57..cd44db08 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -5,10 +5,13 @@ using AsbCloudInfrastructure.Services; using AsbCloudInfrastructure.Services.Analysis; using AsbCloudInfrastructure.Services.Cache; using AsbCloudInfrastructure.Services.WellOperationService; +using AsbCloudInfrastructure.Validators; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using System; +using FluentValidation; +using FluentValidation.AspNetCore; namespace AsbCloudInfrastructure { @@ -28,6 +31,8 @@ namespace AsbCloudInfrastructure services.AddDbContext(options => options.UseNpgsql(configuration.GetConnectionString("DefaultConnection"))); + services.AddFluentValidation(); + services.AddScoped(provider => provider.GetService()); services.AddScoped(); @@ -73,6 +78,9 @@ namespace AsbCloudInfrastructure // TelemetryData services services.AddTransient, TelemetryDataSaubService>(); services.AddTransient, TelemetryDataSpinService>(); + + // Validation rules + services.AddTransient, AuthDtoValidator>(); return services; } diff --git a/AsbCloudInfrastructure/Validators/AuthDtoValidator.cs b/AsbCloudInfrastructure/Validators/AuthDtoValidator.cs new file mode 100644 index 00000000..e5ee7116 --- /dev/null +++ b/AsbCloudInfrastructure/Validators/AuthDtoValidator.cs @@ -0,0 +1,18 @@ +using AsbCloudApp.Data; +using FluentValidation; + +namespace AsbCloudInfrastructure.Validators +{ + public class AuthDtoValidator : AbstractValidator + { + public AuthDtoValidator() + { + RuleFor(x => x.Login).NotNull().WithMessage("Логин не должен быть пустым"); + RuleFor(x => x.Login).NotEmpty().WithMessage("Логин не должен быть пустым"); + RuleFor(x => x.Login).Length(0, 50).WithMessage("Допустимая длина логина от 1 до 50 символов"); + RuleFor(x => x.Password).NotNull().WithMessage("Пароль не должен быть пустым"); + RuleFor(x => x.Password).NotEmpty().WithMessage("Пароль не должен быть пустым"); + RuleFor(x => x.Password).Length(0, 50).WithMessage("Допустимая длина пароля от 1 до 50 символов"); + } + } +} \ No newline at end of file