Exemplo n.º 1
0
        public bool InserirNovoUsuario(GrupoInclusaoDto grupo)
        {
            GrupoDpo pai       = null;
            bool     possuiPai = false;

            if (grupo.Pai.HasValue)
            {
                possuiPai = true;
                pai       = _repositorio.ObterGrupoPorId(grupo.Pai.Value);
                if (pai == null)
                {
                    throw new ArgumentException(MensagensErro.GrupoPaiInvalido);
                }
            }
            var dominio = new GrupoDm(0, grupo.Nome, grupo.Descricao, possuiPai ? grupo.Pai.Value : 0);

            dominio.DefinirMensagens(_mensagens);

            dominio.ValidarDados();

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

            var grupoBanco = new GrupoDpo(0, grupo.Nome, grupo.Descricao, possuiPai ? grupo.Pai.Value : 0);
            var sucesso    = _repositorio.AdicionarGrupo(grupoBanco);

            if (!sucesso)
            {
                throw new FalhaExecucaoException(MensagensErro.GrupoFalhaCadastro);
            }

            _mensagens.AdicionarMensagem(MensagensErro.GrupoSucessoInclusao);
            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);
        }