public async Task <int> Alterar(int id, Produtor produtor, string userID) { Produtor produtorToAlter = await db.Produtores .Include(p => p.Produtos) .Include(p => p.Contatos) .Include(p => p.Endereco) .SingleOrDefaultAsync(p => p.IdProdutor == id && p.UserID == userID); if (produtorToAlter != null) { produtorToAlter.RazaoSocial = produtor.RazaoSocial ?? produtor.RazaoSocial; produtorToAlter.CNPJ = produtor.CNPJ ?? produtor.CNPJ; ContatoHandler contatoHandler = new ContatoHandler(db); if (produtor.Contatos != null) { var novositems = produtor.Contatos; var items = produtorToAlter.Contatos; ItemPedidoHandler itemHandler = new ItemPedidoHandler(db); foreach (var velho in items) { if (novositems.SingleOrDefault(i => i.IdContato == velho.IdContato) == null) { await contatoHandler.Remover(velho.IdContato, userID); } } foreach (var novo in novositems) { if (items.SingleOrDefault(i => i.IdContato == novo.IdContato) != null) { await contatoHandler.Alterar(novo.IdContato, novo, userID); } else { await contatoHandler.Inserir(novo); } } } return(await db.SaveChangesAsync()); } return(await Task.FromResult(0)); }
public async Task <int> Alterar(int id, Pedido pedido, string userID) { Pedido pedidoToAlter = await db.Pedidos.SingleOrDefaultAsync( p => p.IdPedido == id && p.UserID == userID); if (pedidoToAlter != null) { var novositems = pedido.ItemPedidos; var items = pedidoToAlter.ItemPedidos; ItemPedidoHandler itemHandler = new ItemPedidoHandler(db); foreach (var velho in items) { if (novositems.SingleOrDefault(i => i.IdItemPedido == velho.IdItemPedido) == null) { await itemHandler.Remover(velho.IdItemPedido, userID); } } foreach (var novo in novositems) { if (items.SingleOrDefault(i => i.IdItemPedido == novo.IdItemPedido) != null) { await itemHandler.Alterar(novo.IdItemPedido, novo, userID); } else { await itemHandler.Inserir(novo); } } return(await db.SaveChangesAsync()); } return(await Task.FromResult(0)); }