public async Task <RetornoUsuarioCoreSSO> Handle(CriarUsuarioCoreSSOCommand request, CancellationToken cancellationToken)
        {
            var usuarios = await repositoryCoreSSO.ObterPorCPF(request.Usuario.Cpf);

            if (usuarios != null)
            {
                throw new NegocioException($"Já existe usuário com o CPF {request.Usuario.Cpf} na base do CoreSSO");
            }

            var usuarioId = await repositoryCoreSSO.Criar(request.Usuario);

            var grupos = await repositoryCoreSSO.SelecionarGrupos();

            await repositoryCoreSSO.IncluirUsuarioNosGrupos(usuarioId, grupos);

            return(await repositoryCoreSSO.ObterPorId(usuarioId));
        }
        public async Task <RetornoUsuarioCoreSSO> Handle(ObterUsuarioCoreSSOQuery request, CancellationToken cancellationToken)
        {
            RetornoUsuarioCoreSSO retorno = null;

            if (!string.IsNullOrWhiteSpace(request.Cpf))
            {
                retorno = await usuarioCoreSSORepositorio.ObterPorCPF(request.Cpf);
            }
            else
            {
                retorno = await usuarioCoreSSORepositorio.ObterPorId(request.UsuarioId);
            }

            if (retorno == null)
            {
                return(retorno);
            }

            var grupos = await usuarioGrupoRepositorio.ObterPorUsuarioId(retorno.UsuId);

            retorno.Grupos = grupos?.Select(x => x.GrupoId) ?? default;

            return(retorno);
        }