adding disponibilidade de dados
All checks were successful
API and ETL Build / build_etl (push) Successful in 9s
API and ETL Build / build_api (push) Successful in 9s

This commit is contained in:
2025-06-10 13:26:58 -03:00
parent 673cda6408
commit 684a2c0630
8 changed files with 105 additions and 9 deletions

View File

@@ -2,6 +2,7 @@ using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using OpenCand.Config;
using OpenCand.ETL.Services;
using OpenCand.Parser.Models;
using OpenCand.Parser.Services;
@@ -18,6 +19,8 @@ namespace OpenCand.Parser
private readonly CsvParserService<DespesasCSV> despesaParserService;
private readonly CsvParserService<ReceitasCSV> receitaParserService;
private readonly DespesaReceitaService despesaReceitaService;
private readonly string BasePath;
public ParserManager(
@@ -28,7 +31,8 @@ namespace OpenCand.Parser
CsvParserService<BemCandidatoCSV> bemCandidatoParserService,
CsvParserService<RedeSocialCSV> redeSocialParserService,
CsvParserService<DespesasCSV> despesaParserService,
CsvParserService<ReceitasCSV> receitaParserService)
CsvParserService<ReceitasCSV> receitaParserService,
DespesaReceitaService despesaReceitaService)
{
this.logger = logger;
this.csvSettings = csvSettings.Value;
@@ -38,6 +42,7 @@ namespace OpenCand.Parser
this.redeSocialParserService = redeSocialParserService;
this.despesaParserService = despesaParserService;
this.receitaParserService = receitaParserService;
this.despesaReceitaService = despesaReceitaService;
// Get the base path from either SampleFolder in csvSettings or the BasePath in configuration
BasePath = configuration.GetValue<string>("BasePath") ?? string.Empty;
@@ -61,7 +66,10 @@ namespace OpenCand.Parser
await ParseFolder(candidatosDirectory, candidatoParserService);
await ParseFolder(bensCandidatosDirectory, bemCandidatoParserService);
await ParseFolder(redesSociaisDirectory, redeSocialParserService);
await despesaReceitaService.DeleteDespesaAsync();
await ParseFolder(despesasDirectory, despesaParserService);
await despesaReceitaService.DeleteReceitaAsync();
await ParseFolder(receitasDirectory, receitaParserService);
logger.LogInformation("ParseFullDataAsync - Full data parsing completed!");

View File

@@ -135,5 +135,21 @@ namespace OpenCand.Repository
});
}
}
public async Task DeleteDespesaAsync()
{
using (var connection = new NpgsqlConnection(ConnectionString))
{
await connection.ExecuteAsync("DELETE FROM despesas_candidato;");
}
}
public async Task DeleteReceitaAsync()
{
using (var connection = new NpgsqlConnection(ConnectionString))
{
await connection.ExecuteAsync("DELETE FROM receitas_candidato;");
}
}
}
}

View File

@@ -50,5 +50,15 @@ namespace OpenCand.ETL.Services
await despesaReceitaRepository.AddReceitaAsync(receita);
}
public async Task DeleteDespesaAsync()
{
await despesaReceitaRepository.DeleteDespesaAsync();
}
public async Task DeleteReceitaAsync()
{
await despesaReceitaRepository.DeleteReceitaAsync();
}
}
}

View File

@@ -18,7 +18,7 @@
},
"ParserSettings": {
"DefaultThreads": 40,
"CandidatoCSVThreads": 5,
"CandidatoCSVThreads": 40,
"DepesasCSVThreads": 50,
"ReceitasCSVThreads": 50
},