public CreateMovieCommandValidator(IQueryProcessor processor) { _processor = processor ?? throw new ArgumentNullException(nameof(processor)); RuleFor(movie => movie.Title) .NotEmpty() .WithMessage("Title must be set.") .NotNull() .WithMessage("Title must be set.") .MaximumLength(DomainMovie.MaximumTitleLength) .WithMessage($"Title exceeded {DomainMovie.MaximumTitleLength} characters.") .MustAsync(MovieMustNotAlreadyExist) .WithMessage("Movie does already exist."); RuleFor(movie => movie.Description) .NotEmpty() .WithMessage("Description must be set.") .NotNull() .WithMessage("Description must be set.") .MaximumLength(DomainMovie.MaximumDescriptionLength) .WithMessage($"Description exceeded {DomainMovie.MaximumDescriptionLength} characters."); RuleFor(movie => movie.Genre) .NotEmpty() .WithMessage("Genre must be set.") .NotNull() .WithMessage("Genre must be set.") .Must(genre => genre != null && DomainGenre.Get(genre).IsValid) .WithMessage(movie => $"Genre {movie.Genre} is not a valid value."); RuleFor(movie => movie.YearReleased) .Must(year => year <= DateTime.UtcNow.Year) .WithMessage("Year of release may not be in the future."); }
public UpdateMovieCommandValidator() { RuleFor(movie => movie.Title) .NotEmpty() .WithMessage("Title must be set.") .NotNull() .WithMessage("Title must be set.") .MaximumLength(MaximumTitleLength) .WithMessage($"Title exceeded {MaximumTitleLength} characters."); RuleFor(movie => movie.Description) .NotEmpty() .WithMessage("Description must be set.") .NotNull() .WithMessage("Description must be set."); RuleFor(movie => movie.Genre) .NotEmpty() .WithMessage("Genre must be set.") .NotNull() .WithMessage("Genre must be set.") .Must(genre => genre != null && DomainGenre.Get(genre).IsValid) .WithMessage(movie => $"Genre {movie.Genre} is not a valid value."); RuleFor(movie => movie.YearReleased) .Must(year => year <= DateTime.UtcNow.Year) .WithMessage("Year of release may not be in the future."); }
public static DomainMovie ConvertToDomain(this CreateMovieCommand movie) { return(DomainMovie.Create( movie.Title, movie.Description, DomainGenre.Get(movie.Genre), movie.YearReleased)); }
public DomainMovieCreateTest() { _validTitle = RandomGenerator.RandomString(DomainModel.DomainMovie.MaximumTitleLength); _invalidTitle = RandomGenerator.RandomString(DomainModel.DomainMovie.MaximumTitleLength + 10); _validDescription = RandomGenerator.RandomString(DomainModel.DomainMovie.MaximumDescriptionLength); _invalidDescription = RandomGenerator.RandomString(DomainModel.DomainMovie.MaximumDescriptionLength + 10); _genre = DomainGenre.Romance; _validYearReleased = RandomGenerator.RandomPositiveNumber(2000); _invalidYearReleased = DateTime.Now.Year + 2; }
public Task <object> HandleAsync(GenresQuery query, CancellationToken cancellationToken) { _logger.LogDebug($"{GetType().Name} entered."); var genres = DomainGenre.GetAll() .OrderBy(genre => genre.Key) .Select(genre => genre.Key) .ToList(); _logger.LogInformation($"{genres.Count()} genres were retrieved from the system."); _logger.LogDebug($"{GetType().Name} leaving."); return(Task.FromResult(genres as object)); }