public async Task RevogarToken(string login)
 {
     var chaveLogin = ObterChaveLogin(login);
     var token = cache.Obter(chaveLogin);
     if (!string.IsNullOrWhiteSpace(token))
     {
         await cache.RemoverAsync(chaveLogin);
     }
 }
        private async Task RemoverChaves()
        {
            var i = 1111111;

            while (i != 4444444)
            {
                var chave = $"teste-redis-{i}";
                await repositorioCache.RemoverAsync(chave);

                i++;
            }
        }
 private async Task RemoverDisciplinasCache(AtribuicaoCJPersistenciaDto atribuicaoCJPersistenciaDto)
 {
     var chaveCache = $"Disciplinas-{atribuicaoCJPersistenciaDto.TurmaId}-{atribuicaoCJPersistenciaDto.UsuarioRf}--{Perfis.PERFIL_CJ}";
     await repositorioCache.RemoverAsync(chaveCache);
 }
        public async Task SincronizarObjetivosComJurema()
        {
            var parametrosDataUltimaAtualizacao = await repositorioParametrosSistema.ObterUnicoChaveEValorPorTipo(TipoParametroSistema.DataUltimaAtualizacaoObjetivosJurema);

            if (parametrosDataUltimaAtualizacao.HasValue)
            {
                var dataUltimaAtualizacao = DateTime.Parse(parametrosDataUltimaAtualizacao.Value.Value);

                var objetivosJuremaRespostaApi = await servicoJurema.ObterListaObjetivosAprendizagem();

                if (objetivosJuremaRespostaApi != null && objetivosJuremaRespostaApi.Any())
                {
                    var objetivosBase = await repositorioObjetivoAprendizagem.ListarAsync();

                    var objetivosJuremaResposta = objetivosJuremaRespostaApi.Where(c => c.Codigo.Length <= 20);

                    var objetivosAIncluir   = objetivosJuremaResposta?.Where(c => !objetivosBase.Any(b => b.CodigoCompleto == c.Codigo));
                    var objetivosADesativar = objetivosBase?.Where(c => !c.Excluido)?.Where(c => !objetivosJuremaResposta.Any(b => b.Codigo == c.CodigoCompleto));
                    var objetivosAReativar  = objetivosJuremaResposta?.Where(c => objetivosBase.Any(b => b.CodigoCompleto == c.Codigo && b.Excluido));
                    var objetivosAAtualizar = objetivosJuremaResposta?.Where(c => c.AtualizadoEm > dataUltimaAtualizacao);

                    var atualizarUltimaDataAtualizacao = false;
                    var houveAlteracaoNosDados         = false;

                    if (objetivosAAtualizar != null && objetivosAAtualizar.Any())
                    {
                        foreach (var objetivo in objetivosAAtualizar)
                        {
                            await AtualizarObjetivoBase(objetivo);
                        }
                        atualizarUltimaDataAtualizacao = true;
                        houveAlteracaoNosDados         = true;
                    }

                    if (objetivosAIncluir != null && objetivosAIncluir.Any())
                    {
                        foreach (var objetivo in objetivosAIncluir)
                        {
                            await repositorioObjetivoAprendizagem.SalvarAsync(MapearObjetivoRespostaParaDominio(objetivo));
                        }
                        houveAlteracaoNosDados = true;
                    }

                    if (objetivosAReativar != null && objetivosAReativar.Any())
                    {
                        foreach (var objetivo in objetivosAReativar)
                        {
                            await repositorioObjetivoAprendizagem.ReativarAsync(objetivo.Id);
                        }
                        houveAlteracaoNosDados = true;
                    }

                    if (objetivosADesativar != null && objetivosADesativar.Any())
                    {
                        foreach (var objetivo in objetivosADesativar)
                        {
                            objetivo.Desativar();
                            await repositorioObjetivoAprendizagem.AtualizarAsync(objetivo);
                        }
                        houveAlteracaoNosDados = true;
                    }

                    if (atualizarUltimaDataAtualizacao)
                    {
                        dataUltimaAtualizacao = objetivosJuremaResposta.Max(c => c.AtualizadoEm);
                        await repositorioParametrosSistema.AtualizarValorPorTipoAsync(TipoParametroSistema.DataUltimaAtualizacaoObjetivosJurema, dataUltimaAtualizacao.ToString("yyyy-MM-dd HH:mm:ss.fff tt"));
                    }

                    if (houveAlteracaoNosDados)
                    {
                        await repositorioCache.RemoverAsync("ObjetivosAprendizagem");
                    }
                }
            }
            else
            {
                SentrySdk.CaptureException(new NegocioException("Parâmetro 'DataUltimaAtualizacaoObjetivosJurema' não encontrado na base de dados, os objetivos de aprendizagem não serão atualizados."));
            }
        }
        public void RemoverPerfisUsuarioCache(string login)
        {
            var chaveRedis = $"perfis-usuario-{login}";

            _ = repositorioCache.RemoverAsync(chaveRedis);
        }