Files
WatchIt/WatchIt.WebAPI/WatchIt.WebAPI.Validators/Accounts/RegisterRequestValidator.cs

21 lines
1.1 KiB
C#
Raw Normal View History

2024-03-28 19:17:46 +01:00
using FluentValidation;
2024-04-27 22:36:16 +02:00
using WatchIt.Common.Model.Accounts;
2024-03-28 19:17:46 +01:00
using WatchIt.Database;
2024-04-27 22:36:16 +02:00
namespace WatchIt.WebAPI.Validators.Accounts;
public class RegisterRequestValidator : AbstractValidator<RegisterRequest>
2024-03-28 19:17:46 +01:00
{
2024-04-27 22:36:16 +02:00
public RegisterRequestValidator(DatabaseContext database)
2024-03-28 19:17:46 +01:00
{
2024-04-27 22:36:16 +02:00
RuleFor(x => x.Username).MinimumLength(5)
.MaximumLength(50)
.CannotBeIn(database.Accounts, x => x.Username).WithMessage("Username was already used");
RuleFor(x => x.Email).EmailAddress()
.CannotBeIn(database.Accounts, x => x.Email).WithMessage("Email was already used");
RuleFor(x => x.Password).MinimumLength(8)
.Must(x => x.Any(char.IsUpper)).WithMessage("Password must contain at least one uppercase letter.")
.Must(x => x.Any(char.IsLower)).WithMessage("Password must contain at least one lowercase letter.")
.Must(x => x.Any(char.IsDigit)).WithMessage("Password must contain at least one digit.");
2024-03-28 19:17:46 +01:00
}
2024-04-27 22:36:16 +02:00
}