Commit Graph

7 Commits

Author SHA1 Message Date
Alessio Dal Santo 65ed2bb93a Implementato sistema robusto di salvataggio/caricamento profili Data Coupler
- Aggiunto metodo GetCredentialIdByNameAsync in CredentialService per recuperare ID credenziali per nome
- Implementata gestione robusta dei profili duplicati con riattivazione, sovrascrittura e auto-rinomina
- Migliorata logica di caricamento profili con simulazione workflow utente e logging dettagliato
- Fixata gestione errori UNIQUE constraint nel salvataggio profili
- Aggiunto supporto per salvataggio ID credenziali reali invece di placeholder
- Implementato metodo GetProfileByNameIncludingInactiveAsync per gestire profili inattivi
- Aggiunto logging esteso per debug e troubleshooting
- Integrato componente ProfileSaver nella UI principale
- Risolti errori di compilazione e validazione build completa
- Migliorata gestione errori con feedback utente per credenziali/entità mancanti
2025-07-03 16:30:57 +02:00
Alessio Dal Santo 373eae0a5a feat: Implementazione completa sistema di estrazione e trasferimento dati con auto-selezione chiave primaria
- Refactoring logica connessione database per gestire database specificato/non specificato
- Implementazione selezione database tramite modale quando necessario
- Aggiunta discovery robusta di tabelle, colonne e preview dati
- Implementazione validazione completa query custom (solo SELECT, blocco SQL injection)
- Aggiunta preview paginata dati per query custom
- Implementazione mapping automatico dei campi
- Implementazione auto-selezione chiave primaria:
  * Per tabelle database: rilevamento automatico PK
  * Per query custom: ricerca pattern comuni (id, key, etc.)
  * Per file Excel/CSV: ricerca pattern italiani (codice, numero, etc.)
- Aggiunta logging dettagliato per debugging e tracciamento flusso
- Implementazione sistema associazioni con fallback robusto
- Miglioramento gestione errori e validazioni input utente
- Test funzionali completi e validazione end-to-end

Il sistema ora supporta completamente il flusso di estrazione dati da database/file
verso API REST con gestione automatica delle chiavi e mapping intelligente.
2025-07-02 16:00:29 +02:00
Alessio Dal Santo 77efe986a0 feat: Corregge la logica di rilevamento database specificato nella connection string
- Modifica IsDatabaseSpecifiedInConnectionString per verificare prima il campo DatabaseName della credenziale
- Aggiunge logging dettagliato per debugging del processo di connessione database
- Corregge il flusso di connessione per evitare il modale quando il database è già specificato
- Migliora la gestione degli errori nel caricamento tabelle dal database specificato
- Rimuove codice non raggiungibile nella logica di connessione database

Il bug precedente mostrava sempre il modale di selezione database anche quando
il database era specificato nel campo DatabaseName della credenziale, ora la
verifica segue la logica corretta:
1. Controlla se DatabaseName è valorizzato nella credenziale
2. Solo se vuoto, verifica i parametri Database=/Initial Catalog= nella connection string
2025-07-02 15:32:11 +02:00
Alessio 61883c3467 fix: risolto errore di sintassi nella validazione delle query custom multi-database
- Corretto metodo ValidateCustomQuery per utilizzare CreateLimitedQuery con sintassi specifica per ogni tipo di database
- Rimosso uso diretto di "LIMIT 1" che causava errori su SQL Server e Oracle
- Implementato supporto per sintassi corretta: TOP (SQL Server), ROWNUM (Oracle), LIMIT (MySQL/PostgreSQL/SQLite), FETCH FIRST (DB2)
- Aggiunto messaggio di successo verde nella UI per query valide
- Migliorata gestione degli errori nella validazione con logging dettagliato
- La validazione ora funziona correttamente su tutti i database supportati (SQL Server, Oracle, MySQL, PostgreSQL, SQLite, DB2, SAP HANA)
2025-07-02 02:08:10 +02:00
Alessio 99da631aea Correzione selezione database/schema nell'interfaccia Data Coupler
- Implementato discovery intelligente database vs schemi per ogni DBMS
- Aggiornate query SQL per mostrare solo database effettivi (non ruoli/schemi di sistema)
- Aggiunta UI modal per selezione database con riconnessione automatica
- Aggiunta UI modal fallback per selezione schema quando necessario
- Migliorate query discovery per SQL Server, PostgreSQL, MySQL e Oracle
- Implementata logica di riconnessione automatica al database selezionato
- Aggiornati testi e descrizioni dell'interfaccia per maggiore chiarezza
- Gestione prioritaria: database disponibili  fallback su schemi se necessario

Fixes: Menu selezione mostrava ruoli invece dei database reali
2025-07-02 00:22:09 +02:00
Alessio 7e450a358b feat: Aggiunto sistema completo di gestione profili per Data Coupler
- Creata nuova libreria Components con componenti Blazor riutilizzabili
  * ProfileSelector: dropdown per selezione profili salvati
  * ProfileSaver: componente per salvare configurazioni correnti come profili
  * ProfileManagement: modale per gestione profili salvati
  * ProfileQuickActions: bottoni azioni rapide per operazioni sui profili

- Esteso CredentialManager con entità e servizi per DataCouplerProfile
  * Aggiunto modello DataCouplerProfile con configurazioni mapping e metadati
  * Implementata migrazione Entity Framework per memorizzazione profili
  * Creato DataCouplerProfileService per operazioni CRUD
  * Aggiunto CredentialDbContextFactory per operazioni database design-time

- Migliorato componente principale DataCoupler con integrazione profili
  * Integrata funzionalità caricamento/salvataggio profili
  * Aggiunto selettore profili nella parte superiore dell'interfaccia
  * Mantenuta retrocompatibilità con funzionalità esistenti
  * Migliorata esperienza utente con gestione configurazioni salvate

- Aggiornata struttura progetto e dipendenze
  * Aggiunto progetto Components alla soluzione
  * Aggiornati riferimenti progetti e import
  * Rimosso progetto obsoleto TestDatabaseFix

Questo aggiornamento migliora significativamente il flusso di lavoro permettendo agli utenti di salvare, caricare e gestire configurazioni complete di accoppiamento dati come
2025-07-02 00:00:05 +02:00
Alessio 1435c013d3 Summarized conversation historyEcco il messaggio di commit tradotto in italiano:
**Refactoring: Separazione logica C# da markup Razor nel componente DataCoupler**

**Modifiche principali:**
- Spostamento di tutta la logica C# dal file DataCoupler.razor al file DataCoupler.razor.cs come partial class
- Rimozione completa del blocco @code dal file .razor mantenendo solo il markup HTML/Razor
- Aggiunta delle using directive mancanti (System.Data, System.Text, ExcelDataReader, ecc.)
- Correzione delle firme dei metodi e degli handler di eventi per la compatibilità Blazor
- Sistemazione delle proprietà di iniezione dei servizi [Inject] nel code-behind
- Risoluzione di tutti gli errori di compilazione relativi alla separazione dei file

**Miglioramenti strutturali:**
- Migliore separazione delle responsabilità tra presentazione e logica business
- Struttura del codice più pulita e manutenibile seguendo le best practice Blazor
- Codice più facilmente testabile con la logica isolata nel file .cs
- Rimozione di codice duplicato e ottimizzazione delle funzioni di utilità

**File modificati:**
- Data_Coupler/Pages/DataCoupler.razor: Pulizia markup, rimozione blocco @code
- Data_Coupler/Pages/DataCoupler.razor.cs: Implementazione completa della logica C# come partial class

Questo refactoring migliora significativamente la struttura del codice seguendo le convenzioni standard di Blazor per la separazione tra markup e logica applicativa.
2025-07-01 20:50:25 +02:00