public bool Transferir(TransferenciaBancariaDTO dadosTransferencia)
        {
            try
            {
                Transacao.ExecutarEmTransacao(() =>
                {
                    Lancamentos lancamento = new Lancamentos(dadosTransferencia.ContaOrigem, dadosTransferencia.contaDestino, dadosTransferencia.Valor);

                    ContaCorrente origem = _contaRepositorio.Buscar(dadosTransferencia.ContaOrigem);

                    ContaCorrente destino = _contaRepositorio.Buscar(dadosTransferencia.contaDestino);

                    if (origem == null || destino == null)
                    {
                        throw new ArgumentNullException(ValidationResource.ContaNaoExistente);
                    }

                    origem.Debitar(dadosTransferencia.Valor);

                    origem.Lancamentos.Add(lancamento);

                    destino.Creditar(dadosTransferencia.Valor);

                    _contaRepositorio.Salvar(origem);

                    _contaRepositorio.Salvar(destino);
                });

                return(true);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Buscar as primeiras contas conforme parametro
        /// </summary>
        /// <param name="qtd"></param>
        /// <returns></returns>
        public IList <ContaDTO> Buscar(int qtd = 10)
        {
            var contas = _contaRepositorio.Buscar(qtd);

            return(contas.Select(item => new ContaDTO
            {
                IdConta = item.IdConta,
                IdPessoa = item.IdPessoa,
                SaldoAtual = item.SaldoAtual,
                Pessoa = new PessoaDTO
                {
                    IdPessoa = item.IdPessoaNavigation.IdPessoa,
                    CPF = item.IdPessoaNavigation.Cpf,
                    Nome = item.IdPessoaNavigation.Nome,
                }
            }).ToList());
        }
Ejemplo n.º 3
0
 public Conta Buscar(long id)
 {
     return(_contaRepositorio.Buscar(id));
 }