예제 #1
0
 public void Excluir(Cliente obj)
 {
     using (var contexto = new PedidosContext())
     {
         contexto.Remove(obj);
         contexto.SaveChanges();
     }
 }
예제 #2
0
 public void Inserir(Cliente obj)
 {
     using (var contexto = new PedidosContext())
     {
         contexto.Clientes.Add(obj);
         contexto.SaveChanges();
     }
 }
예제 #3
0
 public void Alterar(Cliente obj)
 {
     using (var contexto = new PedidosContext())
     {
         contexto.Update(obj);
         contexto.SaveChanges();
     }
 }
예제 #4
0
 public void Inserir(Produto obj)
 {
     using (var contexto = new PedidosContext())
     {
         contexto.Produtos.Add(obj);
         contexto.SaveChanges();
     }
 }
예제 #5
0
        public Cliente RetornarPorId(string id)
        {
            Cliente produto;

            using (var contexto = new PedidosContext())
            {
                produto = contexto.Clientes.Where(x => x.ClienteId == id).FirstOrDefault();
            }
            return(produto);
        }
예제 #6
0
        public IList <Cliente> RetornarTodos()
        {
            List <Cliente> retorno;

            using (var contexto = new PedidosContext())
            {
                retorno = contexto.Clientes.ToList();
            }
            return(retorno);
        }
예제 #7
0
        public Produto RetornarPorId(string id)
        {
            Produto produto;

            using (var contexto = new PedidosContext())
            {
                produto = contexto.Produtos.Where(x => x.ProdutoId == id).FirstOrDefault();
            }
            return(produto);
        }
예제 #8
0
        public IList <Produto> RetornarTodos()
        {
            List <Produto> retorno;

            using (var contexto = new PedidosContext())
            {
                retorno = contexto.Produtos.ToList();
            }
            return(retorno);
        }
예제 #9
0
        /// <summary>
        /// Carrega o cliente e os itens de um pedido
        /// </summary>
        /// <param name="pedido"></param>
        public void CargaTardia(Pedido pedido)
        {
            using (var contexto = new PedidosContext())
            {
                pedido.Cliente = contexto.Clientes.Where(x => x.ClienteId == pedido.ClienteId).FirstOrDefault();
                pedido.Itens   = contexto.PedidoItens.Where(x => x.PedidoId == pedido.PedidoId).ToList();

                foreach (var item in pedido.Itens)
                {
                    item.Produto = contexto.Produtos.Where(x => x.ProdutoId == item.ProdutoId).FirstOrDefault();
                    // o entity tem um jeito melhor
                }
            }
        }
예제 #10
0
        public void Inserir(Pedido obj)
        {
            using (var contexto = new PedidosContext())
            {
                // Adiciona o objeto Pedido no contexto e todos os objetos do contexto como unchanged
                contexto.Entry(obj).State = Microsoft.EntityFrameworkCore.EntityState.Added; // aplica o estado somente ao objeto

                // Altera para Added todos os itens de pedido monitorados
                foreach (var item in obj.Itens)
                {
                    contexto.Entry(item).State = Microsoft.EntityFrameworkCore.EntityState.Added;
                }

                contexto.SaveChanges();
                // talvez possa ser feito de outro jeito, segundo o Camillo.
            }
        }
예제 #11
0
        public void Excluir(Pedido obj)
        {
            using (var contexto = new PedidosContext())
            {
                // Recupera todos os itens gravados na base
                var itensAnteriores = contexto.PedidoItens.Where(x => x.PedidoId == obj.PedidoId).ToList();

                // Altera o state de cada item para deleted
                foreach (var item in itensAnteriores)
                {
                    contexto.Entry(item).State = EntityState.Deleted;
                }

                // Altera o state do pedido para deleted
                contexto.Entry(obj).State = EntityState.Deleted;

                contexto.SaveChanges();
            }
        }
예제 #12
0
        public void Alterar(Pedido obj)
        {
            using (var contexto = new PedidosContext())
            {
                // Retorna todos os itens gravados na base em uma lista
                var itensAnteriores = contexto.PedidoItens.Where(x => x.PedidoId == obj.PedidoId).ToList();

                // Para cada item que quero gravar
                foreach (var item in obj.Itens)
                {
                    // Pegar o item se ele existir na base
                    var itemMonitorado = itensAnteriores.Where(x => x.PedidoItemId == item.PedidoItemId).FirstOrDefault();

                    // Se o item existe na base
                    if (itemMonitorado != null)
                    {
                        // Removo a entidade do monitoramento
                        contexto.Entry(itemMonitorado).State = Microsoft.EntityFrameworkCore.EntityState.Detached;
                        // Adiciono o item identificando-o como modificado
                        contexto.Entry(item).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
                        // retira um e adiciona outro

                        // Remove o item da lista de itens já gravados
                        itensAnteriores.Remove(itemMonitorado); // remove cada item que encontra
                    }
                    else
                    {
                        // Adiciono o item que nunca foi gravado com o State Added
                        contexto.Entry(item).State = Microsoft.EntityFrameworkCore.EntityState.Added;
                    }
                }

                // Se sobrou item nessa lista, o mesmo foi deletado pelo usuário (Deleted)
                foreach (var item in itensAnteriores)
                {
                    contexto.Entry(item).State = Microsoft.EntityFrameworkCore.EntityState.Deleted;
                }

                // Por fim, adicionar a entidade Pedido
                contexto.Entry(obj).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
            }
        }