예제 #1
0
        public UpdateDreamRequestValidator(IUserScopedDatabaseReadContext dbContext, IImageIdValidator imageValidator)
        {
            RuleFor(x => x.DreamId).NotNull();
            RuleFor(x => x.DreamId).MustAsync(DreamExists);
            RuleFor(x => x.DisplayName).NotEmpty().When(x => x.DisplayName != null).WithMessage("Nazwa nie może być pusta.");
            RuleFor(d => d.Age).GreaterThan(0).LessThan(121).WithMessage("Wiek pomiędzy 1 a 120 lat");

            RuleFor(x => x.DreamUrl).NotEmpty().When(x => x.DreamUrl != null).WithMessage("Link do marzenia nie może być pusty.");
            RuleFor(x => x.Tags).NotEmpty().When(x => x.Tags != null).WithMessage("Tagi nie mogą być puste.");
            RuleFor(x => x.CategoryId).MustAsync(DreamCategoryExists).When(x => x.CategoryId != null).WithMessage(r => $"Kategoria o Id=[{r.CategoryId}] nie istnieje");
            RuleFor(x => x.DreamImageId).MustAsync(imageValidator.ImageIdIsAvailable).When(a => a.DreamImageId.HasValue).WithMessage("Obraz jest już przypisany do innego elementu.");

            _dbContext = dbContext;
        }
예제 #2
0
 public AddDreamRequestValidator(IImageIdValidator imageValidator)
 {
     RuleFor(d => d.DisplayName).NotEmpty().WithMessage("Nazwa jest wymagana");
     RuleFor(d => d.Age).GreaterThan(0).LessThan(121).WithMessage("Wiek pomiędzy 1 a 120 lat");
     RuleFor(x => x.DreamImageId).MustAsync(imageValidator.ImageIdIsAvailable).When(a => a.DreamImageId.HasValue).WithMessage("Obraz jest już przypisany do innego elementu.");
 }
        public UpdateUserDataRequestValidator(IUserScopedDatabaseReadContext userScopedDatabaseReadContext, IDatabaseContext databaseContext, IImageIdValidator imageValidator)
        {
            RuleFor(r => r.UserId)
            .MustAsync((userId, cancellationToken) => userScopedDatabaseReadContext.Users.AnyAsync(u => u.UserId == userId, cancellationToken))
            .WithMessage(r => $"Użytkownik UserId=[{r.UserId}] nie istnieje");
            RuleFor(u => u.Email).NotEmpty().EmailAddress(EmailValidationMode.AspNetCoreCompatible).When(u => u.Email != null).WithMessage("Niepoprawny adres email.");
            RuleFor(u => u.FirstName).MaximumLength(250).NotEmpty().When(u => u.FirstName != null).WithMessage("Imię nie może być dłuższe niż 250 znaków");
            RuleFor(u => u.LastName).MaximumLength(250).NotEmpty().When(u => u.LastName != null).WithMessage("Nazwisko nie może być dłuższe niż 250 znaków");
            RuleFor(u => u.Brand).NotEmpty().When(u => u.Brand != null).WithMessage("Oddział nie może być pusty");
            RuleFor(u => u.PhoneNumber).NotEmpty().When(u => u.PhoneNumber != null).WithMessage("Numer telefonu nie może być pusty");

            RuleFor(u => u.ProfileImageId)
            .MustAsync((id, cancellationToken) => databaseContext.Images.AnyAsync(i => i.ImageId == id, cancellationToken))
            .When(u => u.ProfileImageId.HasValue)
            .WithMessage(a => $"Plik o Id=[{a.ProfileImageId}] nie istnieje");

            RuleFor(u => u.ProfileImageId)
            .MustAsync((id, cancellationToken) => databaseContext.Users.AllAsync(u => u.ProfileImageId != id, cancellationToken))
            .When(u => u.ProfileImageId.HasValue)
            .WithMessage(a => $"Plik o Id=[{a.ProfileImageId}] jest już przypisany do innego konta");

            RuleFor(u => u.ProfileImageId).MustAsync(imageValidator.ImageIdIsAvailable).When(a => a.ProfileImageId.HasValue).WithMessage("Obraz jest już przypisany do innego elementu.");
        }