Example #1
0
        public CarPhotoCreateCommandValidator(IGenericReadRepository readRepository, ICarModelFiltersProvider modelFiltersProvider, ICarBodyTypeFiltersProvider bodyTypeFiltersProvider, IColorCodeFiltersProvider colorFiltersProvider) : base(readRepository)
        {
            _modelFiltersProvider    = modelFiltersProvider;
            _bodyTypeFiltersProvider = bodyTypeFiltersProvider;
            _colorFiltersProvider    = colorFiltersProvider;

            RuleFor(x => x.ModelId)
            .NotEmptyWithMessage()
            .MustExistsWithMessageAsync(ModelExists);

            RuleFor(x => x.BodyTypeId)
            .NotEmptyWithMessage()
            .MustExistsWithMessageAsync(BodyTypeExists);

            RuleFor(x => x.ColorId)
            .NotEmptyWithMessage()
            .MustExistsWithMessageAsync(ColorExists);

            RuleFor(x => x.Photo)
            .NotEmptyWithMessage()
            .DependentRules(() =>
            {
                RuleFor(x => x.Photo)
                .Cascade(CascadeMode.Continue)
                .MustAsync(FileSizeIsValid)
                .WithMessage($"File size should be up to {CarPhotoConstraints.FileMaxSize / 1000000.0f}MB")
                .MustAsync(FileTypeIsValid)
                .WithMessage($"File type is prohibited. Allowed types - {GetSupportedFileTypesString()}");
            });
        }
        public CarColorAssignmentCommandValidator(IGenericReadRepository readRepository, ICarModelFiltersProvider modelFiltersProvider, IColorCodeFiltersProvider colorFiltersProvider, IModelSupportsColorFiltersProvider modelColorFiltersProvider) : base(readRepository)
        {
            _modelFiltersProvider      = modelFiltersProvider;
            _colorFiltersProvider      = colorFiltersProvider;
            _modelColorFiltersProvider = modelColorFiltersProvider;

            RuleFor(x => x.ModelId)
            .NotEmptyWithMessage()
            .MustExistsWithMessageAsync(ModelExists);

            RuleFor(x => x.ColorId)
            .NotEmptyWithMessage()
            .MustExistsWithMessageAsync(ColorExists);
        }
        public CarComplectationCreateCommandValidator(IGenericReadRepository readRepository, ICarModelFiltersProvider modelFiltersProvider) : base(readRepository)
        {
            _modelFiltersProvider = modelFiltersProvider;

            RuleFor(x => x.Name)
            .NotEmptyWithMessage()
            .MaxLengthWithMessage(CarComplectationConstraints.NameMaxLength);

            RuleFor(x => x.Price)
            .IsPositiveOrZeroWithMessage();

            RuleFor(x => x.ModelId)
            .NotEmptyWithMessage()
            .MustExistsWithMessageAsync(ModelExists);
        }
        public CarBodyTypeAssignCommandValidator(IGenericReadRepository readRepository, ICarModelFiltersProvider modelFiltersProvider, ICarBodyTypeFiltersProvider bodyTypeFiltersProvider, IModelSupportsBodyTypeFiltersProvider modelBodyTypeFiltersProvider) : base(readRepository)
        {
            _modelFiltersProvider         = modelFiltersProvider;
            _bodyTypeFiltersProvider      = bodyTypeFiltersProvider;
            _modelBodyTypeFiltersProvider = modelBodyTypeFiltersProvider;

            RuleFor(x => x.ModelId)
            .NotEmptyWithMessage()
            .MustExistsWithMessageAsync(ModelExists);

            RuleFor(x => x.BodyTypeId)
            .NotEmptyWithMessage()
            .MustExistsWithMessageAsync(BodyTypeExists);

            RuleFor(x => x.Price)
            .IsPositiveOrZeroWithMessage();
        }
Example #5
0
        public CarStockUpdateCommandValidator(IGenericReadRepository readRepository, IModelSupportsBodyTypeFiltersProvider modelBodyTypeFiltersProvider, ICarModelFiltersProvider modelFiltersProvider, IModelSupportsColorFiltersProvider modelColorFiltersProvider, ICarComplectationFiltersProvider complectationFiltersProvider, IEngineSupportsGearboxFiltersProvider engineGearboxFiltersProvider, ICarStockFiltersProvider carStockFiltersProvider) : base(readRepository)
        {
            _modelBodyTypeFiltersProvider = modelBodyTypeFiltersProvider;
            _modelFiltersProvider         = modelFiltersProvider;
            _modelColorFiltersProvider    = modelColorFiltersProvider;
            _complectationFiltersProvider = complectationFiltersProvider;
            _engineGearboxFiltersProvider = engineGearboxFiltersProvider;
            _carStockFiltersProvider      = carStockFiltersProvider;

            RuleFor(x => x.Id)
            .NotEmptyWithMessage()
            .MustExistsWithMessageAsync(CarExists);

            RuleFor(x => x.ModelId)
            .NotEmptyWithMessage()
            .MustExistsWithMessageAsync(ModelExists)
            .DependentRules(() =>
            {
                RuleFor(x => x.BodyTypeId)
                .NotEmptyWithMessage()
                .MustAsync(BodyTypeIsValid)
                .WithMessage($"The {{PropertyName}} is not compatible with the provided model.");

                RuleFor(x => x.ColorId)
                .NotEmptyWithMessage()
                .MustAsync(ColorIsValid)
                .WithMessage($"The {{PropertyName}} is not compatible with the provided model.");

                RuleFor(x => x.EngineGearboxId)
                .NotEmptyWithMessage()
                .MustAsync(EngineGearboxIsValid)
                .WithMessage($"The {{PropertyName}} is not compatible with the provided model.");

                RuleFor(x => x.ComplectationId)
                .NotEmptyWithMessage()
                .MustAsync(ComplectationIsValid)
                .WithMessage($"The {{PropertyName}} is not compatible with the provided model.");
            });

            RuleFor(x => x.Amount)
            .IsPositiveOrZeroWithMessage();

            RuleFor(x => x.Price)
            .IsPositiveOrZeroWithMessage();
        }
Example #6
0
        public CarModelUpdateCommandValidator(IGenericReadRepository readRepository, IBrandFiltersProvider brandFiltersProvider,
                                              ICarModelFiltersProvider carModelFiltersProvider) : base(readRepository)
        {
            _brandFiltersProvider    = brandFiltersProvider;
            _carModelFiltersProvider = carModelFiltersProvider;

            RuleFor(x => x.Id)
            .NotEmptyWithMessage()
            .MustExistsWithMessageAsync(CarModelExists);

            RuleFor(x => x.Name)
            .NotEmptyWithMessage()
            .MaxLengthWithMessage(CarModelConstraints.NameMaxLength);

            RuleFor(x => x.Price)
            .IsPositiveWithMessage();

            RuleFor(x => x.BrandId)
            .NotEmptyWithMessage()
            .MustExistsWithMessageAsync(BrandExists);
        }
Example #7
0
        public CarEngineGearboxAssignCommandValidator(IGenericReadRepository readRepository, ICarEngineFiltersProvider engineFiltersProvider,
                                                      IGearboxFiltersProvider gearboxFiltersProvider, ICarModelFiltersProvider modelFiltersProvider,
                                                      IEngineSupportsGearboxFiltersProvider engineSupportsGearboxFiltersProvider) : base(readRepository)
        {
            _engineFiltersProvider  = engineFiltersProvider;
            _gearboxFiltersProvider = gearboxFiltersProvider;
            _modelFiltersProvider   = modelFiltersProvider;
            _engineSupportsGearboxFiltersProvider = engineSupportsGearboxFiltersProvider;

            RuleFor(x => x.ModelId)
            .NotEmptyWithMessage()
            .MustExistsWithMessageAsync(ModelExists);

            RuleFor(x => x.EngineId)
            .NotEmptyWithMessage()
            .MustExistsWithMessageAsync(EngineExists);

            RuleFor(x => x.GearboxId)
            .NotEmptyWithMessage()
            .MustExistsWithMessageAsync(GearboxExists);

            RuleFor(x => x.Price)
            .IsPositiveOrZeroWithMessage();
        }
Example #8
0
 public CarModelQueryFunctionality(IUnitOfWork unitOfWork, IMapperFactory mapperFactory,
                                   IGenericReadRepository readRepository, ICarModelFiltersProvider filtersProvider) : base(unitOfWork, mapperFactory, readRepository, filtersProvider)
 {
     _filtersProvider = filtersProvider;
 }