Exemplo n.º 1
0
        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;

        }
Exemplo n.º 2
0
        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());
            }
        }
Exemplo n.º 3
0
        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 }));
            }
        }