// Valida e insere a venda + itens public Response InsertVenda(VendaProduto venda) { Response response = Validate(venda); if (response.Success) { venda.DataVenda = DateTime.Now; venda.Valor = venda.Itens.Sum(w => w.Valor * w.Quantidade); SingleResponse <VendaProduto> responseVenda = vendaProdutoDAL.InsertVenda(venda); using (TransactionScope scope = new TransactionScope()) { if (responseVenda.Success) { foreach (ItensVenda item in venda.Itens) { ItensVendaBLL itensVendaBLL = new ItensVendaBLL(); SingleResponse <VendaProduto> responseEntradaID = vendaProdutoDAL.GetVendaID(venda.ID); item.VendaID = responseEntradaID.Data.ID; Response responseItensVenda = itensVendaBLL.InsertItem(item); if (responseItensVenda.Success) { produtoDAL.AtualizaEstoqueVenda(item.ProdutoID, item.Quantidade); } else { return(responseItensVenda); } } venda.Itens.Clear(); } scope.Complete(); } return(responseVenda); } return(response); }