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);
        }
 public RespostaApi Cadastrar(UsuarioInclusaoDto usuario) =>
 RespostaPadrao(_servico.IncluirUsuario(usuario));