Ejemplo n.º 1
0
        public ShopManager(
            IShopRepository repository,
            ILogger <ShopManager> logger,
            IHttpContextAccessor context,
            IOptions <ShopManagerOptions> optionsAccessor,
            IEnumerable <IShopValidator <Product> > prodValidators,
            IEnumerable <IShopValidator <Image> > imgValidators,
            IEnumerable <IShopValidator <Category> > catValidators,
            IEnumerable <IShopValidator <DescriptionGroup> > descGroupValidators,
            IEnumerable <IShopValidator <DescriptionGroupItem> > descGroupItemValidators,
            IEnumerable <IShopValidator <Description> > descValidators,
            IEnumerable <IShopValidator <Order> > orderValidators,
            IShopImageTransformer <Image> imgTransformer,
            OperationErrorDescriber errorDescriber = null)
        {
            _repository       = repository ?? throw new ArgumentNullException(nameof(repository));
            _logger           = logger ?? throw new ArgumentNullException(nameof(logger));
            ErrorDescriber    = errorDescriber ?? new OperationErrorDescriber();
            Options           = optionsAccessor.Value ?? new ShopManagerOptions();
            CancellationToken = context?.HttpContext?.RequestAborted ?? CancellationToken.None;

            //TODO create single validator class
            foreach (var validator in prodValidators)
            {
                ProductValidators.Add(validator);
            }

            foreach (var validator in imgValidators)
            {
                ImageValidators.Add(validator);
            }

            foreach (var validator in catValidators)
            {
                CategoryValidators.Add(validator);
            }

            foreach (var validator in descGroupValidators)
            {
                DescriptionGroupValidators.Add(validator);
            }

            foreach (var validator in descGroupItemValidators)
            {
                DescriptionGroupItemValidators.Add(validator);
            }

            foreach (var validator in descValidators)
            {
                DescriptionValidators.Add(validator);
            }

            foreach (var validator in orderValidators)
            {
                OrderValidators.Add(validator);
            }

            ImageTransformer = imgTransformer ??
                               new ShopImageTransformer(optionsAccessor);
        }
Ejemplo n.º 2
0
        public Image(Path path)
        {
            Path = path.Value;

            ImageValidators.ValidImageExtension(Path);
        }