public Produto Adicionar(Produto produto) { // Buscando produto direto do repositório para validação var pCadastrado = produtoRepository.RetornarPorID(produto.Sku); if (pCadastrado != null) { throw new ProdutoJaCadastradoExcecao(); } produtoRepository.Adicionar(produto); produtoRepository.SaveChanges(); // Atualizando os inventórios com o ID e SKU do produto criado foreach (var item in produto.Inventario) { item.Sku = produto.Sku; inventarioService.Adicionar(item); } return(produto); }
public async Task <Produto> Adicionar(Produto produto) { var produtoExistente = await ObterPorSku(produto.Sku); if (produtoExistente != null) { produto.Validacao.Add(new ValidationError("Produto existente", "Produto com o mesmo SKU já existente")); return(produto); } produto.ProdutoId = Guid.NewGuid(); _produtoRepository.Adicionar(produto); _produtoRepository.SaveChanges(); foreach (var item in produto.Inventario) { item.ProdutoId = produto.ProdutoId; item.Sku = produto.Sku; await _inventarioService.Adicionar(item); } return(produto); }