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."));
            }
        }
        private async Task <List <ObjetivoAprendizagemDto> > ListarSemCache()
        {
            IEnumerable <ObjetivoAprendizagem> objetivosJuremaDto = await repositorioObjetivoAprendizagem.ListarAsync();

            return(MapearParaDto(objetivosJuremaDto).ToList());
        }