Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }