public new async Task <Deposito> AddAsync(Deposito entidade) { entidade.Movimentacao.Conta = await _contaRepositorio.GetByIdAsync(entidade.Movimentacao.IdConta); if (!base.ValidarEntidade(entidade)) { return(null); } entidade.Depositar(); await _contaRepositorio.UpdateAsync(entidade.Movimentacao.Conta); await base.AddAsync(entidade); await base.CommitAsync(); return(entidade); }
public new async Task <Saque> AddAsync(Saque entidade) { entidade.Movimentacao.Conta = await _contaRepositorio.GetByIdAsync(entidade.Movimentacao.IdConta); if (!base.ValidarEntidade(entidade)) { return(null); } if (await _cartaoRepositorio.ExistsAsync(x => !x.Ativo && x.IdCliente == entidade.Movimentacao.Conta.IdCliente)) { Injector.Notificador.Add("Saque não disponível. Cartão foi desativado."); return(null); } entidade.Sacar(); await _contaRepositorio.UpdatePropsAsync(entidade.Movimentacao.Conta, nameof(Conta.Saldo)); await base.AddAsync(entidade); await base.CommitAsync(); return(entidade); }