# Aggiornamento Pagina KeyAssociations - Campo MappedDestinationField ## Data: 20 Ottobre 2025 ## Modifiche Implementate ### 1. Aggiornamento Header Tabella Aggiunta nuova colonna "Campo Mappato" nell'header della tabella: ```html Campo Sorgente Campo Destinazione Campo Mappato Entità Destinazione ``` ### 2. Visualizzazione nella Tabella Aggiunta cella per visualizzare il campo mappato con badge colorato: ```razor @if (!string.IsNullOrEmpty(association.MappedDestinationField)) { @association.MappedDestinationField } else { N/A } ``` **Caratteristiche:** - Badge blu (`bg-primary`) per i campi mappati presenti - Icona e testo "N/A" in grigio per campi non mappati (retrocompatibilità) - Gestione nullable del campo ### 3. Popup Dettagli Associazione Aggiunto il campo nel popup di dettagli (metodo `ShowAssociationDetails`): ```csharp info += $"Campo Destinazione: {association.DestinationKeyField}\n"; if (!string.IsNullOrEmpty(association.MappedDestinationField)) info += $"Campo Mappato: {association.MappedDestinationField}\n"; info += $"Entità: {association.DestinationEntity}\n"; ``` **Caratteristiche:** - Mostrato solo se presente (non mostra riga se null) - Posizionato logicamente dopo "Campo Destinazione" - Include anche l'hash dei dati se presente ### 4. Esportazione CSV Aggiornata l'esportazione CSV per includere il nuovo campo: **Header CSV:** ``` Valore Chiave,Campo Sorgente,Campo Destinazione,Campo Mappato,Entità Destinazione,... ``` **Dati:** ```csharp csv += $"\"{association.MappedDestinationField ?? ""}\","; ``` **Caratteristiche:** - Colonna aggiunta tra "Campo Destinazione" e "Entità Destinazione" - Gestisce valori null con stringa vuota - Include anche l'hash dei dati nell'export ## Esempio Visivo ### Tabella Prima delle Modifiche | Valore Chiave | Campo Sorgente | Campo Destinazione | Entità | ID Destinazione | |---------------|----------------|-------------------|--------|-----------------| | C00001 | CardCode | Id | Account | 001xx... | ### Tabella Dopo le Modifiche | Valore Chiave | Campo Sorgente | Campo Destinazione | **Campo Mappato** | Entità | ID Destinazione | |---------------|----------------|-------------------|-------------------|--------|-----------------| | C00001 | CardCode | Id | **cardcode__c** | Account | 001xx... | ## Legenda dei Campi Per chiarezza, ecco cosa rappresenta ogni campo: | Campo | Descrizione | Esempio | |-------|-------------|---------| | **Campo Sorgente** | Nome del campo chiave nel sistema sorgente | `CardCode` | | **Campo Destinazione** | Nome del campo ID primario nella destinazione | `Id` | | **Campo Mappato** | Nome del campo custom destinazione mappato alla chiave sorgente | `cardcode__c` | | **Entità Destinazione** | Tipo di oggetto nella destinazione | `Account` | | **ID Destinazione** | Valore dell'ID del record creato | `001xx000003DGb2AAG` | ## Retrocompatibilità Le modifiche sono completamente retrocompatibili: - ✅ Record esistenti senza `MappedDestinationField` mostrano "N/A" - ✅ L'esportazione CSV funziona anche con valori null - ✅ Il popup dettagli omette la riga se il campo è null - ✅ Nessuna modifica breaking ai componenti esistenti ## Testing Per verificare le modifiche: 1. **Avviare l'applicazione** 2. **Navigare a**: `/key-associations` 3. **Verificare**: - La nuova colonna "Campo Mappato" è visibile nell'header - I record esistenti mostrano "N/A" se il campo è null - I nuovi record mostrano il campo mappato con badge blu - Il popup dettagli include "Campo Mappato" se presente - L'esportazione CSV include la nuova colonna ## Screenshot Esempio ### Visualizzazione Tabella ``` ╔═══════════╦════════════════╦═══════════════════╦════════════════╦═════════╗ ║ Chiave ║ Campo Sorgente ║ Campo Destinazione║ Campo Mappato ║ Entità ║ ╠═══════════╬════════════════╬═══════════════════╬════════════════╬═════════╣ ║ C00001 ║ CardCode ║ Id ║ cardcode__c ║ Account ║ ║ ║ ║ ║ [Badge Blu] ║ ║ ╠═══════════╬════════════════╬═══════════════════╬════════════════╬═════════╣ ║ ITEM001 ║ ItemCode ║ Id ║ - N/A ║ Product ║ ║ ║ ║ ║ [Grigio] ║ ║ ╚═══════════╩════════════════╩═══════════════════╩════════════════╩═════════╝ ``` ## File Modificati - ✅ `Data_Coupler/Pages/KeyAssociations.razor` - Aggiornamento tabella, dettagli ed export ## Status: ✅ COMPLETATO Tutte le modifiche sono state implementate e verificate senza errori di compilazione.