Ejemplo n.º 1
0
        public async Task ChangeDimensionsAsync(ProductId productId, Dimension dimension)
        {
            var product = await SafeGetProductAsync(productId);

            product.Dimension = dimension;

            await _saveProduct.SaveAsync(product);
        }
Ejemplo n.º 2
0
        public async Task ChangeWeightAsync(ProductId productId, Weight weight)
        {
            var product = await SafeGetProductAsync(productId);

            product.Weight = weight;

            await _saveProduct.SaveAsync(product);
        }
Ejemplo n.º 3
0
        public async Task ChangeNameAsync(ProductId productId, ProductName name)
        {
            var product = await SafeGetProductAsync(productId);

            var nameAlreadyExists = await Repository.NameExistsAsync(name, productId);

            if (nameAlreadyExists)
            {
                throw new ProductNameAlreadyExistsException(name);
            }

            product.Name = name;

            await _saveProduct.SaveAsync(product);
        }
Ejemplo n.º 4
0
        public async Task ChangeCategoriesAsync(ProductId productId, NonEmptyList <CategoryId> categoryIds)
        {
            var product = await SafeGetProductAsync(productId);

            var nonexistentCategoryIds = await _categoriesRepository.GetNonExistentIdsAsync(categoryIds);

            if (nonexistentCategoryIds.Any())
            {
                throw new NonExistentCategoriesException(categoryIds);
            }

            product.CategoryIds = categoryIds;

            await _saveProduct.SaveAsync(product);
        }