public override void Act()
 {
     try
     {
         lancamento = conta.Lanca(pagamento).GetAwaiter().GetResult();
     }
     catch (AggregateException ex)
     {
         throw ex.InnerException;
     }
 }
Example #2
0
        internal async Task <Lancamento> Lanca(Pagamento pagamento)
        {
            var saldo = await ObtemSaldoNaData(pagamento.Data);

            if (saldo.Valor - pagamento.Valor < LIMITE_DE_SALDO)
            {
                throw new ApplicationException("A conta não pode ficar mais de R$ 20.000,00 negativos");
            }

            saldo.Valor = saldo.Valor - pagamento.Valor;

            var lancamento = new Lancamento(
                pagamento.Protocolo,
                this,
                pagamento.Data,
                pagamento.Descricao,
                pagamento.Valor,
                TipoDeLancamento.Pagamento
                );

            await repositorio.Adiciona(lancamento);

            return(lancamento);
        }
Example #3
0
        public async Task Adiciona(Lancamento lancamento)
        {
            await db.ContaLancamentos.AddAsync(lancamento);

            await db.SaveChangesAsync();
        }