public async Task <IHttpActionResult> PutCarrinhoItens(int id, CarrinhoItens carrinhoItens) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != carrinhoItens.carrinhoItens_id) { return(BadRequest()); } db.Entry(carrinhoItens).State = EntityState.Modified; try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CarrinhoItensExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public async Task <IActionResult> AtualizarItemCarrinho(Guid produtoId, CarrinhoItens item) { var carrinho = await ObterCarrinhoCliente(); var itemCarrinho = await ObterItemCarrinhoValidado(produtoId, carrinho, item); if (itemCarrinho == null) { return(CustomResponse()); } carrinho.AtualizarUnidades(itemCarrinho, item.Quantidade); ValidarCarrinho(carrinho); if (!OperacaoValida()) { return(CustomResponse()); } _context.CarrinhoItens.Update(itemCarrinho); _context.CarrinhoCliente.Update(carrinho); await PersistirDados(); return(CustomResponse()); }
public Int64 AddCarrinhoItens(CarrinhoItens carrinhoItens) { try { SqlCommand cmd = new SqlCommand(); cmd.CommandText = "AddCarrinhoItens"; cmd.Parameters.AddWithValue("@carrinhoItens_carrinho_id", carrinhoItens.carrinhoItens_carrinho_id); cmd.Parameters.AddWithValue("@carrinhoItens_produto_id", carrinhoItens.carrinhoItens_produto_id); cmd.Parameters.AddWithValue("@carrinhoItens_valorUnitario", carrinhoItens.carrinhoItens_valorUnitario); cmd.Parameters.AddWithValue("@carrinhoItens_valorTotalItem", carrinhoItens.carrinhoItens_valorTotalItem); cmd.Parameters.AddWithValue("@carrinhoItens_quantidade", carrinhoItens.carrinhoItens_quantidade); cmd.Parameters.AddWithValue("@carrinhoItens_dataCadastro", carrinhoItens.carrinhoItens_dataCadastro); cmd.CommandType = CommandType.StoredProcedure; Int64 carrinhoItens_id = SqlRepository.ExecuteScalar(cmd, ConnectionString.SELFPAY); return(carrinhoItens_id); } catch (Exception ex) { throw new Exception(ex.Message); } }
private void ManipularNovoCarrinho(CarrinhoItens item) { var carrinho = new CarrinhoCliente(_user.ObterUserId()); carrinho.AdicionarItem(item); ValidarCarrinho(carrinho); _context.CarrinhoCliente.Add(carrinho); }
public async Task <IHttpActionResult> DeleteCarrinhoItens(int id) { CarrinhoItens carrinhoItens = await db.CarrinhoItens.FindAsync(id); if (carrinhoItens == null) { return(NotFound()); } db.CarrinhoItens.Remove(carrinhoItens); await db.SaveChangesAsync(); return(Ok(carrinhoItens)); }
private void ManipularCarrinhoExistente(CarrinhoCliente carrinho, CarrinhoItens item) { var produtoItemExistente = carrinho.CarrinhoItemExistente(item); carrinho.AdicionarItem(item); ValidarCarrinho(carrinho); if (produtoItemExistente) { _context.CarrinhoItens.Update(carrinho.ObterPorProdutoId(item.ProdutoId)); } else { _context.CarrinhoItens.Add(item); } _context.CarrinhoCliente.Update(carrinho); }
public async Task <IActionResult> AdicionarItemCarrinho(CarrinhoItens item) { var carrinho = await ObterCarrinhoCliente(); if (carrinho == null) { ManipularNovoCarrinho(item); } else { ManipularCarrinhoExistente(carrinho, item); } if (!OperacaoValida()) { return(CustomResponse()); } await PersistirDados(); return(CustomResponse()); }
public async Task <IHttpActionResult> PostCarrinhoItens(CarrinhoItens carrinhoItens) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.CarrinhoItens.Add(carrinhoItens); await db.SaveChangesAsync(); var dto = new CarrinhoItensDTO() { carrinhoItens_id = carrinhoItens.carrinhoItens_id, carrinhoItens_carrinho_id = carrinhoItens.carrinhoItens_carrinho_id, carrinhoItens_produto_id = carrinhoItens.carrinhoItens_produto_id, carrinhoItens_valorUnitario = carrinhoItens.carrinhoItens_valorUnitario, carrinhoItens_quantidade = carrinhoItens.carrinhoItens_quantidade, carrinhoItens_totalItem = carrinhoItens.carrinhoItens_totalItem, carrinhoItens_dataCadastro = carrinhoItens.carrinhoItens_dataCadastro }; return(CreatedAtRoute("DefaultApi", new { id = carrinhoItens.carrinhoItens_id }, dto)); }
private async Task <CarrinhoItens> ObterItemCarrinhoValidado(Guid produtoId, CarrinhoCliente carrinho, CarrinhoItens item = null) { if (item != null && produtoId != item.ProdutoId) { AdicionarErroProcessamento("O item não corresponde ao informado"); return(null); } if (carrinho == null) { AdicionarErroProcessamento("Carrinho não encontrado"); return(null); } var itemCarrinho = await _context.CarrinhoItens .FirstOrDefaultAsync(i => i.CarrinhoId == carrinho.Id && i.ProdutoId == produtoId); if (itemCarrinho == null || !carrinho.CarrinhoItemExistente(itemCarrinho)) { AdicionarErroProcessamento("O item não está no carrinho"); return(null); } return(itemCarrinho); }
public void AdicionarProduto(AdicionarCarrinhoDto dto) { Produto produto = ValidaProduto(dto.IdProduto); Cliente cliente = ValidaCliente(dto.IdCliente); bool isEdit = true; var carrinho = _repositoryCarrinho.GetByIdCliente(dto.IdCliente).FirstOrDefault(); if (carrinho == null) { carrinho = new Carrinho { IdCliente = dto.IdCliente, DataCadastro = DateTime.Now }; isEdit = false; } carrinho.Total += produto.PrecoPromocional ?? produto.Preco; if (isEdit) { _repositoryCarrinho.Edit(carrinho); } else { _repositoryCarrinho.Add(carrinho); } _repositoryCarrinho.Commit(); CarrinhoItens item = null; if (carrinho.Id > 0 && _repositoryCarrinhoItens.GetByCarrinhoProduto(carrinho.Id, dto.IdProduto).Any()) { item = _repositoryCarrinhoItens.GetByCarrinhoProduto(carrinho.Id, dto.IdProduto).FirstOrDefault(); item.Quantidade++; item.ValorTotalItem = (produto.PrecoPromocional ?? produto.Preco) * item.Quantidade; item.ValorUnitario = (produto.PrecoPromocional ?? produto.Preco); _repositoryCarrinhoItens.Edit(item); _repositoryCarrinhoItens.Commit(); } else { item = new CarrinhoItens { IdProduto = dto.IdProduto, IdCarrinho = carrinho.Id, DataCadastro = DateTime.Now, Quantidade = 1, ValorUnitario = (produto.PrecoPromocional ?? produto.Preco), ValorTotalItem = (produto.PrecoPromocional ?? produto.Preco) }; _repositoryCarrinhoItens.Add(item); _repositoryCarrinhoItens.Commit(); } }
public ApiResponse FazerPedido([FromBody] PedidoModelView pedidoModelView) { response = new ApiResponse(); try { if (!string.IsNullOrEmpty(pedidoModelView.Token)) { if (pedidoModelView.Token == "teste") { Cliente cliente = _cliente.GetClienteById(pedidoModelView.cliente_id); if (cliente != null) { Carrinho carrinho = _carrinho.GetCarrinhoByClienteId(pedidoModelView.cliente_id); if (carrinho == null) { carrinho = new Carrinho { carrinho_dataCadastro = DateTime.Now, carrinho_total = 0, cliente_id = cliente.cliente_id }; carrinho.carrinho_id = _carrinho.AddCarrinho(carrinho); } Produto produto = _produto.GetProdutoById(pedidoModelView.produto_id); if (produto != null) { CarrinhoItens carrinhoItens = new CarrinhoItens { carrinhoItens_carrinho_id = carrinho.carrinho_id, carrinhoItens_produto_id = produto.produto_id, carrinhoItens_valorUnitario = produto.produto_preco - produto.produto_precoPromo, carrinhoItens_valorTotalItem = (produto.produto_preco - produto.produto_precoPromo) * pedidoModelView.carrinhoItens_quantidade, carrinhoItens_dataCadastro = DateTime.Now }; carrinhoItens.carrinhoItens_id = _carrinho.AddCarrinhoItens(carrinhoItens); Pedido pedido = new Pedido { pedido_valor = carrinhoItens.carrinhoItens_valorTotalItem, carrinhoItens_id = carrinhoItens.carrinhoItens_id, pedido_dataCadastro = DateTime.Now }; pedido.pedido_id = _pedido.AddPedido(pedido); response.StatusCode = Convert.ToInt32(HttpStatusCode.OK); response.Message = "Solicitação executada com sucesso!"; response.Result = pedido; } } else { response.StatusCode = Convert.ToInt32(HttpStatusCode.BadRequest); response.Message = "Cliente não existe!"; } } else { response.StatusCode = Convert.ToInt32(HttpStatusCode.BadRequest); response.Message = "Token inválido!"; } } else { response.StatusCode = Convert.ToInt32(HttpStatusCode.BadRequest); response.Message = "Token inválido!"; } return(response); } catch (Exception ex) { throw new Exception(ex.Message); } }