public void AddToCart(int id) { // Retorna o livro do BD ShoppingCartId = GetCartId(); var cartItem = _db.ShoppingCartItems.SingleOrDefault( c => c.cart_id == ShoppingCartId && c.livro_id == id); if (cartItem == null) { // necessário instância dessa forma para não ter abiguidade do nome da classe Dominio.Livro.Livro livro = new Dominio.Livro.Livro(); LivroDAO livroDAO = new LivroDAO(); EstoqueDAO estoqueDAO = new EstoqueDAO(); Estoque estoque = new Estoque(); livro.ID = id; estoque.Livro.ID = livro.ID; //entidades = commands["CONSULTAR"].execute(livro).Entidades; entidades = livroDAO.Consultar(livro); livro = (Dominio.Livro.Livro)entidades.ElementAt(0); //entidades = commands["CONSULTAR"].execute(estoque).Entidades; entidades = estoqueDAO.Consultar(estoque); estoque = (Estoque)entidades.ElementAt(0); // Cria um novo CartItem se não existir cartItem = new CartItem { item_id = Guid.NewGuid().ToString(), livro_id = livro.ID, titulo_livro = livro.Titulo, valor_venda = estoque.ValorVenda, cart_id = ShoppingCartId, quantidade = 1, data_criada = DateTime.Now }; _db.ShoppingCartItems.Add(cartItem); } else { // se o item não existir no carrinho, // então adiciona um em quantidade cartItem.quantidade++; } _db.SaveChanges(); }
public string processar(EntidadeDominio entidade) { StringBuilder sb = new StringBuilder(); if (entidade.GetType() == typeof(Estoque)) { Estoque estoque = (Estoque)entidade; List <EntidadeDominio> entidades = new List <EntidadeDominio>(); // verifica se livro foi selecionado if (estoque.Livro.ID == 0) { sb.Append("ID DO LIVRO É UM CAMPO OBRIGATÓRIO! <br />"); } else { Estoque estoqueAux = new Estoque(); estoqueAux.Livro.ID = estoque.Livro.ID; EstoqueDAO estoqueDAO = new EstoqueDAO(); entidades = estoqueDAO.Consultar(estoqueAux); } // verifica se quantidade foi informada e se é maior que 0 if (estoque.Qtde <= 0) { sb.Append("QUANTIDADE DE ENTRADA EM ESTOQUE DEVE SER MAIOR QUE ZERO! <br />"); } else { if (entidades.Count > 0) { estoque.Qtde += ((Estoque)entidades.ElementAt(0)).Qtde; } } // verifica se quantidade foi informada e se é maior que 0 if (estoque.ValorCusto <= 0) { sb.Append("VALOR DE CUSTO DEVE SER MAIOR QUE ZERO! <br />"); } else { if (entidades.Count > 0) { // verifica se valor de custo que tem no BD é maior que o valor informado if (estoque.ValorCusto < ((Estoque)entidades.ElementAt(0)).ValorCusto) { // se for maior, atribui o valor vindo do BD no valor de custo estoque.ValorCusto = ((Estoque)entidades.ElementAt(0)).ValorCusto; } } entidades = new List <EntidadeDominio>(); LivroDAO livroDAO = new LivroDAO(); entidades = livroDAO.Consultar(estoque.Livro); if (entidades.Count > 0) { // aplicação da margem de lucro do grupo de precificação estoque.ValorVenda = estoque.ValorCusto + (estoque.ValorCusto * ((Livro)entidades.ElementAt(0)).GrupoPrecificacao.MargemLucro); } else { sb.Append("ERRO NA BUSCA DO GRUPO DE PRECIFICAÇÃO DO LIVRO! <br />"); } } if (estoque.Fornecedor.ID == 0) { sb.Append("UM FORNECEDOR DEVE SER SELECIONADO,POIS É UM CAMPO OBRIGATÓRIO! <br />"); } } else { sb.Append("ESTOQUE NÃO PODE SER VALIDADO, POIS ENTIDADE NÃO É ESTOQUE! <br />"); } if (sb.Length != 0) { return(sb.ToString()); } return(null); }