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