public async Task AddAsync(Guid id, string name, int amount, decimal price, string producerName, string categoryName, string brandTag, string descryption) { var @product = await _productRepository.GetAsync(name); var @producer = await _producerRepository.SetOrGetExistingAsync(producerName); var @category = await _categoryRepository.GetAsync(categoryName); if (@category == null) { throw new Exception($"Cannot find category with '{categoryName}' "); } @product = new Product(id, name, amount, price, @producer.Name, @producer.Id, @category.Name, @category.Id, descryption, brandTag); await _productRepository.AddAsync(@product); }