public async Task <IActionResult> Create([Bind("PessoaID,Nome,Idade")] Pessoa pessoa)
        {
            if (ModelState.IsValid)
            {
                _context.Add(pessoa);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(pessoa));
        }
        public async Task <Pedido> Executar(CancelarPedidoComando comando)
        {
            var pedido = await _contextoSql.Pedidos.Include(x => x.Itens).FirstOrDefaultAsync(x => x.Id == comando.PedidoId);

            pedido.Cancelado();
            await _contextoSql.SaveChangesAsync();

            return(pedido);
        }
        public async Task <Pedido> Executar(NovoPedidoComando comando)
        {
            var pedido = Pedido.Criar(
                Guid.NewGuid().ToString(),
                comando.ClienteId,
                comando.Itens.Select(i => Pedido.Item.Criar(i.ProdutoId, i.Quantidade, i.Valor)).ToList());
            await _contextoSql.Pedidos.AddAsync(pedido);

            await _contextoSql.SaveChangesAsync();

            return(pedido);
        }
Example #4
0
        public async Task <Pedido> ExecutarAsync(CriarPedidoComando comando)
        {
            var pedido = Pedido.Criar(
                comando.ProcessoId,
                comando.SocioId,
                comando.Itens.Select(i => Pedido.Item.Criar(i.DividaId, i.Valor)).ToList());
            await _contextoSql.Pedidos.AddAsync(pedido);

            await _contextoSql.SaveChangesAsync();

            return(pedido);
        }
Example #5
0
        public async Task <Pedido> Executar(BoletoRecebidoComando comando)
        {
            var pedido = await _contextoSql.Pedidos.Include(x => x.Itens).FirstOrDefaultAsync(x => x.Id == comando.PedidoId);

            var transacao = Transacao.CriarAprovado(comando.PedidoId);

            pedido.PagamentoAprovado(transacao);
            await _contextoSql.AddAsync(transacao);

            await _contextoSql.SaveChangesAsync();

            return(pedido);
        }
        public async Task <Boleto> Executar(GerarBoletoComando comando)
        {
            var pedido = await _contextoSql.Pedidos.Include(x => x.Itens).FirstOrDefaultAsync(x => x.Id == comando.PedidoId);

            var boleto = new Boleto(Guid.NewGuid().ToString(), pedido.Id, pedido.ClienteId, DateTime.UtcNow.AddDays(3), pedido.ValorTotal);

            pedido.AguardandoPagamento();
            await _contextoSql.Boletos.AddAsync(boleto);

            await _contextoSql.SaveChangesAsync();

            return(boleto);
        }
Example #7
0
        public async Task <Pagamento> ExecutarAsync(SolicitarPagamentoComando comando)
        {
            var pagamento          = Pagamento.Criar(comando.PedidoId, comando.Valor);
            var resultadoPagamento = await _pagamentoService.RealizarPagamentoAsync(pagamento, comando.Pagador);

            if (!resultadoPagamento.EhSucesso)
            {
                pagamento.Erro();
            }
            await _contextoSql.Pagamentos.AddAsync(pagamento);

            await _contextoSql.SaveChangesAsync();

            return(pagamento);
        }
Example #8
0
        public async Task <Resultado <Pedido> > ExecutarAsync(FecharPedidoComando comando)
        {
            var pedido = await _contextoSql.Pedidos.Include(c => c.Itens).FirstOrDefaultAsync(c => c.Id == comando.PedidoId);

            var pagamento = await _contextoSql.Pagamentos.FindAsync(comando.PagamentoId);

            if (pagamento.Status == Pagamento.EStatus.EmAnalise)
            {
                return(Falha.NovaFalha(Motivo.Novo("ErroAoFecharPedido", "Pagamento está em análise")));
            }
            if (pagamento.Status == Pagamento.EStatus.Aprovado)
            {
                pedido.Pago();
            }
            if (pagamento.Status == Pagamento.EStatus.Negado)
            {
                pedido.Cancelado();
            }
            await _contextoSql.SaveChangesAsync();

            return(pedido);
        }
 public void Commit()
 {
     _context.SaveChangesAsync();
 }