// Insere uma entrada + itens public Response InsertEntrada(EntradaProduto entrada) { Response response = Validate(entrada); if (response.Success) { entrada.DataEntrada = DateTime.Now; entrada.Valor = entrada.Itens.Sum(w => w.Valor * w.Quantidade); SingleResponse <EntradaProduto> responseEntrada = entradaProdutoDAL.InsertEntrada(entrada); using (TransactionScope scope = new TransactionScope()) { if (responseEntrada.Success) { foreach (ItensEntrada item in entrada.Itens) { SingleResponse <EntradaProduto> responseEntradaID = entradaProdutoDAL.GetEntradaID(entrada); item.EntradaID = responseEntradaID.Data.ID; ItensEntradaBLL itensEntradaBLL = new ItensEntradaBLL(); Response responseItensEntrada = itensEntradaBLL.InsertItem(item); if (responseItensEntrada.Success) { produtoDAL.AtualizaPreco(item.ProdutoID, item.Valor, item.Quantidade); produtoDAL.AtualizaEstoqueEntrada(item.ProdutoID, item.Quantidade); } } entrada.Itens.Clear(); } scope.Complete(); } return(responseEntrada); } return(response); }