public async Task ChangeDimensionsAsync(ProductId productId, Dimension dimension) { var product = await SafeGetProductAsync(productId); product.Dimension = dimension; await _saveProduct.SaveAsync(product); }
public async Task ChangeWeightAsync(ProductId productId, Weight weight) { var product = await SafeGetProductAsync(productId); product.Weight = weight; await _saveProduct.SaveAsync(product); }
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); }
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); }