Cache DB verification result and reuse it when creating the raw folder

Avoids re-running the same lookup against cad_index.db twice when the
user already clicked "Verifica presenza nel DB" before "Crea cartella raw".

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
davideandClaude Sonnet 5 committed 2026-09-17 09:13:38 +02:00
1 parent b77ec39c5b
commit 4a3f0a4cf8
1 file changed
+4 -1
+4 -1
View File
@@ -44,6 +44,7 @@ public partial class Form1 : Form
private string? _dbPath; private string? _dbPath;
private string? _percorsoInputCorrente; private string? _percorsoInputCorrente;
private List<(string Componente, string Descrizione)>? _righeCorrenti; private List<(string Componente, string Descrizione)>? _righeCorrenti;
private Dictionary<string, List<string>>? _ultimaVerifica;
private string? _ultimaCartellaRaw; private string? _ultimaCartellaRaw;
public Form1() public Form1()
@@ -473,6 +474,7 @@ public partial class Form1 : Form
} }
_gridRaw.Rows.Clear(); _gridRaw.Rows.Clear();
_ultimaCartellaRaw = null; _ultimaCartellaRaw = null;
_ultimaVerifica = null;
ImpostaStatoImport($"CSV generato ({righe.Count} righe): {csv}", Color.DarkGreen); ImpostaStatoImport($"CSV generato ({righe.Count} righe): {csv}", Color.DarkGreen);
} }
@@ -501,6 +503,7 @@ public partial class Form1 : Form
return; return;
var trovati = TrovaPercorsiCad(_righeCorrenti.Select(r => r.Componente)); var trovati = TrovaPercorsiCad(_righeCorrenti.Select(r => r.Componente));
_ultimaVerifica = trovati;
foreach (DataGridViewRow riga in _gridImport.Rows) foreach (DataGridViewRow riga in _gridImport.Rows)
{ {
string componente = (string)riga.Cells["componente"].Value!; string componente = (string)riga.Cells["componente"].Value!;
@@ -518,7 +521,7 @@ public partial class Form1 : Form
// L'assieme generale è già una riga di _righeCorrenti (aggiunta da // L'assieme generale è già una riga di _righeCorrenti (aggiunta da
// DistintaBaseImporter.ConvertiInCsv leggendo il nome del file distinta), quindi viene // DistintaBaseImporter.ConvertiInCsv leggendo il nome del file distinta), quindi viene
// trovato e copiato in raw come qualsiasi altro componente, senza bisogno di un caso speciale. // trovato e copiato in raw come qualsiasi altro componente, senza bisogno di un caso speciale.
var percorsiTrovati = TrovaPercorsiCad(_righeCorrenti.Select(r => r.Componente)); var percorsiTrovati = _ultimaVerifica ?? TrovaPercorsiCad(_righeCorrenti.Select(r => r.Componente));
_gridRaw.Rows.Clear(); _gridRaw.Rows.Clear();
foreach (var (componente, _) in _righeCorrenti) foreach (var (componente, _) in _righeCorrenti)