public async Task<Guid> Adicionar(AdicionarPedido adicionarPedido) { if (!_validarPedido.ValidarCaracteristicaPedido(adicionarPedido)) { throw new Exception("Usuario não encontrado!."); } var pedido = new Pedido(adicionarPedido.usuarioId, adicionarPedido.usuarioNome, adicionarPedido.usuarioCpf); await _appDbContext.Pedidos.AddAsync(pedido); await _appDbContext.SaveChangesAsync(); return pedido.Id; }
public async Task <IActionResult> Adicionar([FromBody] AdicionarPedido adicionarPedido) { // recebo a requisição e passo a responsabilidade de fazer a lógica de adicionar para outra classe (Princípio da Responsabilidade única (SOLID)) // os metodos do controller não tem de ter muito código. basicamente uma linha que repassa a requisição pra outra classe fazer o cadastro // e outra linha que retorna a reposta para o frontend. try { Guid id = await _pedidoAdd.Adicionar(adicionarPedido); return(CreatedAtAction(nameof(Obter), id)); } catch { return(BadRequest()); } }
public bool ValidarCaracteristicaPedido(AdicionarPedido adicionarPedido) { var validar = _appDbContext.Usuarios.FirstOrDefault(x => x.Id == adicionarPedido.usuarioId); if (validar is null) { return(false); } if (validar.Nome == adicionarPedido.usuarioNome && validar.Cpf == adicionarPedido.usuarioCpf) { return(true); } else { return(false); } }
public async Task <JsonResult> AdicionarPedido([FromBody] AdicionarPedido adicionarPedido) { if (adicionarPedido.IdMercado > 0 && adicionarPedido.IdProduto > 0 && adicionarPedido.Quantidade > 0 && adicionarPedido.IdUsuario > 0 && adicionarPedido.IdPedido != 0) { try { var produtoPedido = new ProdutoPedidoViewModel() { IdMercado = adicionarPedido.IdMercado, IdProduto = adicionarPedido.IdProduto, Quantidade = adicionarPedido.Quantidade, IdPedido = adicionarPedido.IdPedido }; await Contexto.ProdutoPedidoViewModel.AddAsync(produtoPedido); await Contexto.SaveChangesAsync(); var pedido = await Contexto.PedidoViewModel.Where(x => x.IdPedido == adicionarPedido.IdPedido).FirstOrDefaultAsync(); if (pedido != null) { pedido.ProdutosPedidos = string.Concat(pedido.ProdutosPedidos, ",", produtoPedido.IdProdutoPedido); Contexto.PedidoViewModel.Update(pedido); await Contexto.SaveChangesAsync(); return(Json(new { mensagem = "Pedido Criado", resultado = true })); } else { return(Json(new { mensagem = "Pedido informado não encontrado", resultado = false })); } } catch (Exception ex) { return(Json(new { mensagem = ex.Message, resultado = false })); } } else { return(Json(new { mensagem = "Campos obrigatorio não preenchidos", resultado = false })); } }