예제 #1
0
        // 0 -> Ativada, 1 -> Desativada, 2 -> Bloqueada, 3 -> Analise

        // ADICIONAR CONTA
        public async Task <ContaDto> Add(ContaDto contaDto)
        {
            var helperConta = await GerarContaAndAgencia(contaDto.PessoaId);

            contaDto.DigitosConta   = helperConta.Conta;
            contaDto.DigitosAgencia = helperConta.Agencia;
            contaDto.Senha          = MD5(contaDto.Senha);

            if (contaDto.TipoConta == 0)
            {
                bool existeContaCorrete = await _repo.ExisteContaCorrente(contaDto.PessoaId);

                if (existeContaCorrete)
                {
                    throw new ArgumentException("Ja existe uma conta corrente para essa pessoa");
                }
            }
            else if (contaDto.TipoConta != 0)
            {
                bool existeContaPoupanca = await _repo.ExisteContaPoupanca(contaDto.PessoaId);

                if (existeContaPoupanca)
                {
                    throw new ArgumentException("Ja existe uma conta poupanca para essa pessoa!");
                }
            }

            contaDto.CPF = await _pessoaService.GetCpfById(contaDto.PessoaId);

            var conta = _map.Map <Conta>(contaDto);

            _repo.Add(conta);

            if (await _repo.SaveAsync())
            {
                return(_map.Map <ContaDto>(conta));
            }
            throw new ArgumentException("Erro ao persistir dados");
        }