/
rumina-v
/
auth_validation
Обзор
Документация
Войти
/
rumina-v
/
auth_validation
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Validators/RequestValidators.cs
48 строк
2 KB
Viktoria Rumina
Add solution files
04 июн 2026, 12:13
04 июн 2026, 12:13
90cb0b2
Код
Авторство
О чём код?
using FluentValidation; public class RegisterRequestValidator : AbstractValidator<RegisterRequest> { public RegisterRequestValidator() { RuleFor(request => request.Email).NotEmpty().EmailAddress(); RuleFor(request => request.Password) .NotEmpty() .MinimumLength(8) .Matches("[A-Z]").WithMessage("Password must contain an uppercase letter.") .Matches("[a-z]").WithMessage("Password must contain a lowercase letter.") .Matches("[0-9]").WithMessage("Password must contain a digit."); RuleFor(request => request.DisplayName).NotEmpty().MaximumLength(60); } } public class LoginRequestValidator : AbstractValidator<LoginRequest> { public LoginRequestValidator() { RuleFor(request => request.Email).NotEmpty().EmailAddress(); RuleFor(request => request.Password).NotEmpty(); } } public class CreateNoteRequestValidator : AbstractValidator<CreateNoteRequest> { public CreateNoteRequestValidator() { RuleFor(request => request.Title).NotEmpty().MaximumLength(100); RuleFor(request => request.Text).NotEmpty().Length(10, 1000); RuleFor(request => request.Category) .NotEmpty() .Must(category => new[] { "study", "work", "personal" }.Contains( category.Trim().ToLowerInvariant())) .WithMessage("Category must be study, work or personal."); } } public class UpdateProfileRequestValidator : AbstractValidator<UpdateProfileRequest> { public UpdateProfileRequestValidator() { RuleFor(request => request.DisplayName).NotEmpty().MaximumLength(60); RuleFor(request => request.Bio).MaximumLength(240); } }