diff --git a/OpenCand.API/Repository/BaseRepository.cs b/OpenCand.API/Repository/BaseRepository.cs index df9c2be..1a65ca5 100644 --- a/OpenCand.API/Repository/BaseRepository.cs +++ b/OpenCand.API/Repository/BaseRepository.cs @@ -10,7 +10,7 @@ namespace OpenCand.Repository protected readonly IMemoryCache? _cache; // Default cache settings - protected static readonly TimeSpan DefaultCacheExpiration = TimeSpan.FromDays(7); + protected static readonly TimeSpan DefaultCacheExpiration = TimeSpan.MaxValue; protected static readonly CacheItemPriority DefaultCachePriority = CacheItemPriority.Normal; public BaseRepository(IConfiguration configuration, IMemoryCache? cache = null) diff --git a/OpenCand.API/Repository/EstatisticaRepository.cs b/OpenCand.API/Repository/EstatisticaRepository.cs index f9d303e..34c38d1 100644 --- a/OpenCand.API/Repository/EstatisticaRepository.cs +++ b/OpenCand.API/Repository/EstatisticaRepository.cs @@ -25,33 +25,33 @@ namespace OpenCand.API.Repository using (var connection = new NpgsqlConnection(ConnectionString)) { return (await connection.QueryAsync(@" - WITH patrimonio_anual AS ( - SELECT idcandidato, ano, SUM(valor) AS valor_total_ano + WITH extremos_declaracao AS ( + SELECT + idcandidato, + MIN(ano) AS anoInicial, + MAX(ano) AS anoFinal FROM mv_bem_candidato - GROUP BY idcandidato, ano - ), - extremos_declaracao AS ( - SELECT idcandidato, MIN(ano) AS anoInicial, MAX(ano) AS anoFinal - FROM patrimonio_anual GROUP BY idcandidato - HAVING COUNT(DISTINCT ano) >= 2 + HAVING COUNT(ano) >= 2 ) SELECT c.nome, ed.anoInicial, - pi.valor_total_ano AS patrimonioInicial, + pi.valor AS patrimonioInicial, ed.anoFinal, - pf.valor_total_ano AS patrimonioFinal, - (pf.valor_total_ano - pi.valor_total_ano) AS enriquecimento + pf.valor AS patrimonioFinal, + (pf.valor - pi.valor) AS enriquecimento FROM extremos_declaracao ed JOIN candidato c ON ed.idcandidato = c.idcandidato - JOIN patrimonio_anual pi ON ed.idcandidato = pi.idcandidato AND ed.anoInicial = pi.ano - JOIN patrimonio_anual pf ON ed.idcandidato = pf.idcandidato AND ed.anoFinal = pf.ano - ORDER BY enriquecimento DESC + JOIN mv_bem_candidato pi ON ed.idcandidato = pi.idcandidato AND ed.anoInicial = pi.ano + JOIN mv_bem_candidato pf ON ed.idcandidato = pf.idcandidato AND ed.anoFinal = pf.ano + ORDER BY + enriquecimento DESC LIMIT 25;") ).AsList(); } - }); return result ?? new List(); + }); + return result ?? new List(); } public async Task GetConfiguration()