public override void Act() { try { lancamento = conta.Lanca(pagamento).GetAwaiter().GetResult(); } catch (AggregateException ex) { throw ex.InnerException; } }
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); }
public async Task Adiciona(Lancamento lancamento) { await db.ContaLancamentos.AddAsync(lancamento); await db.SaveChangesAsync(); }