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); }
public Category(string name) { CategoryValidators.ValidName(name); Name = name; }