Add wizard UI, general-assembly resolution, and test suite
Restructure Form1 into a sequential wizard (database -> import -> raw -> recursive component resolution -> completeness/STEP report), fix case-sensitivity bugs in codice/tipo_file lookups and a word-boundary gap in the assembly scanner that missed _D100-style sub-assembly references, and treat the distinta's general assembly as an ordinary CSV row (derived from the DBP_<codice>_<timestamp> filename) instead of special-casing it throughout. Also adds CadSearchGui.Tests (xUnit) covering the scanner, filename parsing, and the case-insensitive DB lookup behavior. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
146ce78eae
commit
52483177f0
16 files changed
+1144
-249
No files matched your search
@@ -10,14 +10,25 @@ CAD di ogni componente.
|
||||
1. **Indice CAD** — all'avvio carica automaticamente `cad_index.db` (se
|
||||
presente accanto all'eseguibile). Se manca, si può selezionare un DB
|
||||
esistente con **Apri DB...** o generarne uno nuovo con **Aggiorna
|
||||
indice**, che scansiona il disco (di default `X:\`, cartelle
|
||||
`__Accessori`, `__B.end`, `__Corpi`, `__Fondi`, `Unificati`, `Commerciali`) e indicizza tutti i file.
|
||||
indice**, che scansiona il disco (di default `X:\`, tutte le cartelle di primo
|
||||
livello che trova) e indicizza tutti i file.
|
||||
2. **Importa Distinta Base** — trascina (o scegli da file) l'estrazione
|
||||
`.xls`/`.xml` del gestionale (foglio "Distinta Base", colonne
|
||||
Componente/Descrizione): viene generato un CSV con anteprima in griglia.
|
||||
Se il file segue la convenzione di nome `DBP_<codice>_<timestamp>` del
|
||||
gestionale, l'assieme generale dell'estrazione viene aggiunto come riga
|
||||
in più nel CSV (il foglio elenca solo i componenti sotto l'assieme, non
|
||||
l'assieme stesso).
|
||||
3. **Crea cartella raw** — cerca nell'indice il percorso CAD di ogni
|
||||
componente importato e copia i file trovati in una cartella `raw/`
|
||||
accanto al file di distinta originale.
|
||||
componente importato (assieme generale incluso) e copia i file trovati
|
||||
in una cartella `raw/` accanto al file di distinta originale.
|
||||
4. **Trova componenti referenziati** — legge i metadati dei file `.asm` in
|
||||
`raw/` per trovare ricorsivamente i sotto-assiemi/parti che li
|
||||
compongono, copiandoli a loro volta in `raw/`.
|
||||
5. **Verifica completezza assiemi** / **Report STEP realizzati** — confronta
|
||||
la distinta con l'indice (per capire se manca qualche sotto-componente)
|
||||
e con la cartella `step/` (per capire quali STEP sono già stati
|
||||
realizzati).
|
||||
|
||||
## Requisiti
|
||||
|
||||
@@ -75,7 +86,17 @@ indicizzazione integrate):
|
||||
- `ProgressForm.cs` — dialog di avanzamento durante l'aggiornamento indice.
|
||||
|
||||
Il database generato (`cad_index.db`), i file Excel/CSV della distinta
|
||||
trascinati nella root e la cartella `raw/` sono rigenerabili e non sono
|
||||
tracciati in git (vedi `.gitignore`).
|
||||
trascinati nella root e le cartelle `raw/`/`step/` sono rigenerabili e non
|
||||
sono tracciati in git (vedi `.gitignore`).
|
||||
|
||||
Non ci sono test automatizzati nel repo.
|
||||
## Test
|
||||
|
||||
`CadSearchGui.Tests/` contiene unit test (regex di estrazione dei componenti
|
||||
dai `.asm`, parsing del nome file Pro-E) e integration test (schema/vista SQL
|
||||
reale, con focus sui bug di case-sensitivity/duplicati già risolti). Da
|
||||
eseguire:
|
||||
|
||||
```powershell
|
||||
cd CadSearchGui.Tests
|
||||
dotnet test
|
||||
```
|
||||
Reference in new issue
Block a user