Example #1
0
        public void CriarPessoaFisica(Pessoa pessoa)
        {
            pessoa.Validar();
            pessoa.PessoaFisica.Validar();
            //Verifica se a pessoa existe, caso exista atualiza o papel da pessoa
            var existePessoaFisica = _pessoaRepository.ObterPorCPFComPessoaCompleta(pessoa.PessoaFisica.CPF);
            //Recupera informações do banco
            var firstOrDefault = pessoa.Papeis.FirstOrDefault();

            AssertionConcern.AssertArgumentNotNull(firstOrDefault, string.Format(Erros.NullParameter, "Papeis"));
            if (firstOrDefault != null)
            {
                pessoa.Papeis = new List <Papel>()
                {
                    _papelRepository.ObterPorCodigo(firstOrDefault.PapelCodigo)
                };
            }

            if (existePessoaFisica != null)
            {
                existePessoaFisica.Papeis.Add(pessoa.Papeis.First());
                _pessoaRepository.Atualizar(existePessoaFisica);
            }
            else
            {
                pessoa.Enderecos.First().Estado = _estadoRepository.ObterPorCodigo(pessoa.Enderecos.First().Estado.EstadoCodigo);
                pessoa.PessoaFisica.EstadoCivil =
                    _estadoCivilRepository.ObterPorCodigo(pessoa.PessoaFisica.EstadoCivil.EstadoCivilCodigo);
                _pessoaRepository.Criar(pessoa);
            }
        }