示例#1
0
 public PessoaDto(PessoaDm pessoa)
 {
     Id       = pessoa.Id;
     Nome     = pessoa.Nome;
     Cpf      = pessoa.Cpf;
     Email    = pessoa.Email;
     Telefone = pessoa.Telefone;
 }
        public bool AtualizarDadosPessoa(PessoaAlteracaoDto pessoa)
        {
            if (!pessoa.PossuiSolicitacaoAlteracao())
            {
                throw new ArgumentException(MensagensErro.PessoaAlteracaoSemDados);
            }

            if (pessoa.Dados.Id == 0)
            {
                throw new RegraNegocioException(MensagensErro.PessoaAlteracaoSemId);
            }

            var dadosAtuaisPessoa = _Repositorio.ObterPessoaPorId(pessoa.Dados.Id);

            string emailPessoa = pessoa.AlterarEmail ? pessoa.Dados.Email : dadosAtuaisPessoa.Email;
            var    dominio     = new PessoaDm(pessoa.Dados.Id, pessoa.Dados.Nome, null, emailPessoa, ValidarTelefone(dadosAtuaisPessoa, pessoa));

            dominio.DefinirMensagens(_mensagens);

            if (pessoa.AlterarNome)
            {
                dominio.ValidarNome();
            }
            dominio.ValidarDadosContato();

            if (_mensagens.PossuiFalhasValidacao())
            {
                throw new RegraNegocioException(MensagensErro.RegraNegocioErroValidacao);
            }

            if (dadosAtuaisPessoa == null)
            {
                throw new FalhaExecucaoException(MensagensErro.PessoaAlteracaoNaoEncontrada);
            }

            var pessoaAtualizacao = RealizarMergeInformacoes(dadosAtuaisPessoa, pessoa);
            var sucesso           = _Repositorio.UpdateDadosPessoa(pessoaAtualizacao);

            if (!sucesso)
            {
                throw new RegraNegocioException(MensagensErro.PessoaFalhaAlteracao);
            }

            _mensagens.AdicionarMensagem(MensagensErro.PessoaAlteracaoSucesso);
            return(sucesso);
        }
        public bool IncluirPessoa(PessoaInclusaoDto pessoa)
        {
            Telefone telefonePessoa = null;

            if (!string.IsNullOrWhiteSpace(pessoa.Ddd) || !string.IsNullOrWhiteSpace(pessoa.Numero))
            {
                telefonePessoa = new Telefone(pessoa.Ddd, pessoa.Numero);
            }


            Cpf cpfPessoa = null;

            if (!string.IsNullOrWhiteSpace(pessoa.Cpf))
            {
                cpfPessoa = new Cpf(pessoa.Cpf);
            }

            var dominio = new PessoaDm(0, pessoa.Nome, cpfPessoa, pessoa.Email, telefonePessoa);

            dominio.DefinirMensagens(_mensagens);

            PessoaDto dto = new PessoaDto(dominio);

            dominio.ValidarDados();

            if (_mensagens.PossuiFalhasValidacao())
            {
                throw new RegraNegocioException(MensagensErro.RegraNegocioErroValidacao);
            }

            var pessoaBanco = new PessoaDpo(0, pessoa.Nome, cpfPessoa?.ValorNumerico, pessoa.Email, pessoa.Ddd, pessoa.Numero);
            var sucesso     = _Repositorio.InserirPessoa(pessoaBanco);

            if (!sucesso)
            {
                throw new RegraNegocioException(MensagensErro.PessoaFalhaInclusao);
            }

            _mensagens.AdicionarMensagem(MensagensErro.PessoaSucessoInclusao);
            return(sucesso);
        }
        public bool IncluirUsuario(UsuarioInclusaoDto usuario)
        {
            if (usuario.Senha != usuario.ConfirmacaoSenha)
            {
                throw new ArgumentException(MensagensErro.UsuarioFalhaConfirmacaoSenha);
            }

            DateTime dataAtual = DateTime.Now;

            GrupoDto grupo = _grupoServico.PesquisarGrupoPorId(usuario.IdGrupo);

            if (grupo == null)
            {
                throw new ArgumentException(MensagensErro.UsuarioGrupoNaoEncontrado);
            }

            var grupoDominio = new GrupoDm(grupo.Id, grupo.Nome, grupo.Descricao, grupo.Pai);

            grupoDominio.DefinirMensagens(_mensagens);

            var pessoa = _pessoaServico.PesquisarPessoaPorId(usuario.IdPessoa);

            if (pessoa == null)
            {
                throw new ArgumentException(MensagensErro.UsuarioPessoaNaoEncontrada);
            }

            var pessoaDominio = new PessoaDm(pessoa.Id, pessoa.Nome, pessoa.Cpf, pessoa.Email, pessoa.Telefone);

            pessoaDominio.DefinirMensagens(_mensagens);

            var dominio = new UsuarioDm(
                0,
                usuario.Usuario,
                usuario.Senha,
                dataAtual,
                true,
                dataAtual,
                usuario.DiasRenovacao,
                grupoDominio,
                pessoaDominio
                );

            dominio.ValidarDados();

            if (_mensagens.PossuiFalhasValidacao())
            {
                throw new RegraNegocioException(MensagensErro.RegraNegocioErroValidacao);
            }

            var usuarioBanco = new UsuarioDpo(
                dominio.Id,
                dominio.Usuario,
                dominio.Senha.ValorCriptografado,
                dataAtual,
                dataAtual,
                dominio.DiasRenovacao,
                dominio.Ativo,
                dominio.Grupo.Id,
                dominio.Pessoa.Id
                );

            var sucessoInsercao = _UsuarioRepositorio.InserirUsuario(usuarioBanco);

            if (!sucessoInsercao)
            {
                _mensagens.AdicionarMensagem(TipoMensagem.Erro, MensagensErro.UsuarioFalhaInclusao);
            }

            _mensagens.AdicionarMensagem(MensagensErro.UsuarioSucessoInclusao);
            return(sucessoInsercao);
        }