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