95 Commits

Author SHA1 Message Date
Alessio 81fce773a9 Fix: Ottimizzato Dockerfile e risolto timeout push registry Gitea
Build and Push Docker Images / Build Windows Container (push) Successful in 7s
Build and Push Docker Images / Create Multi-Platform Manifest (push) Has been cancelled
Build and Push Docker Images / Build Linux Container (push) Has been cancelled
- Migrato immagine runtime da Debian a Alpine (riduzione ~60% dimensione)
- Aggiunto suffisso -linux ai tag per manifest multi-platform
- Disabilitate attestations/provenance per ridurre overhead push
- Implementato retry automatico in caso di fallimento push
- Corretto utilizzo apk invece di apt-get per Alpine Linux

Risolve: HTTP 524 timeout durante push immagini al registry
2.1.1
2026-01-25 17:16:53 +01:00
Alessio 5cdad7fb7d Fix: Corretto manifest multi-platform per Gitea Actions
Build and Push Docker Images / Build Windows Container (push) Successful in 8s
Build and Push Docker Images / Build Linux Container (push) Failing after 15m38s
Build and Push Docker Images / Create Multi-Platform Manifest (push) Has been skipped
- Aggiunto suffisso -linux ai tag delle immagini Linux per distinguerli
- Aggiornati i comandi del manifest per usare tag espliciti -linux e -windows
- Risolto errore 'not found' durante creazione manifest su branch staging
- Applicato fix a tutti i branch (main, development, dev, staging)
2026-01-25 16:26:21 +01:00
Alessio Dal Santo a5f8943c72 [Feature] Implementata schedulazione completa per file CSV/Excel
Build and Push Docker Images / Build Linux Container (push) Successful in 8m59s
Build and Push Docker Images / Build Windows Container (push) Successful in 9m35s
Build and Push Docker Images / Create Multi-Platform Manifest (push) Failing after 25s
- Aggiunta validazione percorsi file prima del salvataggio profili
- Implementati metodi di lettura file CSV e Excel per schedulazioni
- Supporto doppia modalità: caricamento browser (preview) e percorso manuale (schedulazione)
- Gestione completa deletion sync anche per file CSV/Excel
- Rilevamento automatico separatori CSV (virgola, punto e virgola, tab, pipe)
- Supporto formati Excel legacy (.xls) e moderni (.xlsx)
- Abilitati profili file nella UI di schedulazione
- Logging dettagliato per troubleshooting
- Documentazione completa in CSV_SCHEDULING_IMPLEMENTATION.md
- Aggiornati README.md e copilot-instructions.md con nuove feature
- Rimosso testo 'TEST' dalla pagina di login
2026-01-25 12:45:32 +01:00
Alessio a5f2f79fac Merge branch 'main' into development
Build and Push Docker Images / Build Linux Container (push) Has been cancelled
Build and Push Docker Images / Create Multi-Platform Manifest (push) Has been cancelled
Build and Push Docker Images / Build Windows Container (push) Has been cancelled
2026-01-24 17:17:38 +00:00
Alessio e86fdf0c9b Merge branch 'main' of https://gitea.home-nas-ds.org/Alessio/Data-Coupler
Build and Push Docker Images / Create Multi-Platform Manifest (push) Has been cancelled
Build and Push Docker Images / Build Linux Container (push) Has been cancelled
Build and Push Docker Images / Build Windows Container (push) Has started running
2026-01-24 18:13:46 +01:00
Alessio 505349e10b Aggiornamento workflow per build Windows Docker image 2026-01-24 18:13:07 +01:00
Alessio c0d3f87a7e Rimosso il branch Development dall'action riguardante i container 2026-01-24 18:12:48 +01:00
Alessio 1d9b4902d4 [Fix] Rimossa cache gha non disponibile su Gitea Actions (causava timeout)
Build and Push Docker Images / Build Linux Container (push) Successful in 6m55s
Build and Push Docker Images / Create Multi-Platform Manifest (push) Has been cancelled
Build and Push Docker Images / Build Windows Container (push) Has been cancelled
2026-01-24 17:46:07 +01:00
Alessio e707045d63 [Fix] Clone direttamente in directory corrente (git clone ... .) invece di sottocartella
Build and Push Docker Images / Build Linux Container (push) Failing after 9m5s
Build and Push Docker Images / Create Multi-Platform Manifest (push) Has been cancelled
Build and Push Docker Images / Build Windows Container (push) Has been cancelled
2026-01-24 17:33:07 +01:00
Alessio d8a2069640 [Fix] Semplificato checkout: clone in cartella source e cd, eliminato robocopy
Build and Push Docker Images / Build Windows Container (push) Failing after 20s
Build and Push Docker Images / Create Multi-Platform Manifest (push) Has been cancelled
Build and Push Docker Images / Build Linux Container (push) Has been cancelled
2026-01-24 17:29:53 +01:00
Alessio 7fe8453e7a [Fix] Gestione corretta exit code robocopy (0-7 = success, 8+ = error)
Build and Push Docker Images / Build Windows Container (push) Failing after 1s
Build and Push Docker Images / Create Multi-Platform Manifest (push) Has been cancelled
Build and Push Docker Images / Build Linux Container (push) Has been cancelled
2026-01-24 17:27:13 +01:00
Alessio 8e229fc77c [Fix] Clone da repository Gitea invece di GitHub
Build and Push Docker Images / Build Windows Container (push) Failing after 2s
Build and Push Docker Images / Build Linux Container (push) Has been cancelled
Build and Push Docker Images / Create Multi-Platform Manifest (push) Has been cancelled
- Cambiato URL da github.com a gitea.home-nas-ds.org
- Usa REGISTRY_TOKEN per autenticazione git clone
- Embedded credentials nell'URL (username:token@host)
- Risolve: richiesta credenziali GitHub
2026-01-24 17:23:47 +01:00
Alessio 5915537e83 [Fix] Usa git clone per checkout su Windows
Build and Push Docker Images / Build Windows Container (push) Failing after -2s
Build and Push Docker Images / Build Linux Container (push) Failing after 8m40s
Build and Push Docker Images / Create Multi-Platform Manifest (push) Has been skipped
- Sostituito download ZIP con git clone diretto
- Più veloce e affidabile
- Clone shallow (depth 1) per performance
- Verifica Dockerfile.windows dopo clone
- Git è disponibile sul runner Windows
2026-01-24 13:49:57 +01:00
Alessio a50b295c59 [Fix] Migliorato download e extract repository Windows
- Usa robocopy per spostare file (più affidabile di xcopy)
- Logging dettagliato per ogni fase
- Verifica Dockerfile.windows dopo estrazione
- Error handling robusto con exit codes
- Risolve: Dockerfile.windows not found
2026-01-24 13:49:15 +01:00
Alessio 33381a9950 [Fix] Corretto runner Windows da windows-2022 a windows
Build and Push Docker Images / Build Windows Container (push) Failing after 1s
Build and Push Docker Images / Build Linux Container (push) Has been cancelled
Build and Push Docker Images / Create Multi-Platform Manifest (push) Has been cancelled
- Il runner Gitea supporta solo 'windows' generico
- Rimosso riferimento a windows-2022 non esistente
2026-01-24 13:47:51 +01:00
Alessio 5e14c1bc22 [Refactor] Ricostruito workflow Windows con parità Linux
- Stesso flusso e struttura della parte Linux
- Download e extract repository migliorato
- Debug steps per verificare file e secret
- Tagging multipli come Linux (latest, branch-sha, etc.)
- Miglior gestione errori e logging
- Usa windows-2022 come runner specifico
2026-01-24 13:47:06 +01:00
Alessio 5f3f1c4fa6 [Fix] Download repository con curl per Windows
Build and Push Docker Images / Build Windows Container (push) Failing after 1s
Build and Push Docker Images / Build Linux Container (push) Has been cancelled
Build and Push Docker Images / Create Multi-Platform Manifest (push) Has been cancelled
- Gitea Actions non clona automaticamente il repo
- Download repo da GitHub come ZIP con curl
- Estrazione con tar (nativo Windows 10+)
- Spostamento files nella working directory
- Fix: working directory vuota, nessun Dockerfile
2026-01-24 13:45:32 +01:00
Alessio 6ab03ba420 [Debug] Aggiunto debug per Dockerfile.windows
Build and Push Docker Images / Build Windows Container (push) Failing after 2s
Build and Push Docker Images / Build Linux Container (push) Has been cancelled
Build and Push Docker Images / Create Multi-Platform Manifest (push) Has been cancelled
- Aggiunto step per verificare working directory e files
- Controllo esistenza Dockerfile.windows prima del build
- Miglior error handling con exit codes
- Debug: unable to find Dockerfile.windows
2026-01-24 13:44:41 +01:00
Alessio 31c53eff33 [Fix] Rimosso checkout manuale Windows
Build and Push Docker Images / Build Windows Container (push) Failing after 7s
Build and Push Docker Images / Create Multi-Platform Manifest (push) Has been cancelled
Build and Push Docker Images / Build Linux Container (push) Has been cancelled
- Gitea Actions clona automaticamente il repository
- Non serve checkout manuale con git
- Il codice è già presente nella working directory
- Fix: git non riconosciuto su runner Windows
2026-01-24 13:43:22 +01:00
Alessio ee7f925fb3 [Fix] Windows workflow senza Node.js e PowerShell Core
Build and Push Docker Images / Build Windows Container (push) Failing after -1s
Build and Push Docker Images / Create Multi-Platform Manifest (push) Has been cancelled
Build and Push Docker Images / Build Linux Container (push) Has started running
- Rimosso uso di GitHub Actions che richiedono Node.js
- Checkout manuale con git invece di actions/checkout
- Login Docker diretto invece di docker/login-action
- Build e push con script CMD nativo Windows
- Fix: Cannot find pwsh/node in PATH
2026-01-24 13:39:04 +01:00
Alessio 263ae063ac [Fix] Installazione Node.js nel runner Windows
Build and Push Docker Images / Build Windows Container (push) Failing after 12s
Build and Push Docker Images / Build Linux Container (push) Has been cancelled
Build and Push Docker Images / Create Multi-Platform Manifest (push) Has been cancelled
- Aggiunto step per installare Node.js se mancante
- Usa Chocolatey per installazione automatica
- Node.js richiesto dalle GitHub Actions (checkout@v4)
- Fix: Cannot find node in PATH su runner Windows
2026-01-24 13:37:20 +01:00
Alessio 71c38b4e90 -Modificata gitea actions
Build and Push Docker Images / Build Windows Container (push) Failing after 2m21s
Build and Push Docker Images / Create Multi-Platform Manifest (push) Has been cancelled
Build and Push Docker Images / Build Linux Container (push) Has started running
2026-01-24 13:33:28 +01:00
Alessio deeeef984e [Debug] Verifica secret e usa docker login diretto
Build and Push Docker Images / Build Linux Container (push) Failing after 7m56s
Build and Push Docker Images / Build Windows Container (push) Has been cancelled
Build and Push Docker Images / Create Multi-Platform Manifest (push) Has been cancelled
- Aggiunto step per verificare che REGISTRY_TOKEN sia configurato
- Sostituito docker/login-action con docker login diretto
- Aggiunto controllo lunghezza token per debug
- Test con comando bash nativo per maggiore compatibilità
2026-01-24 12:43:58 +01:00
Alessio f3afede0e1 [Debug] Aggiunto debug registry e documentazione troubleshooting
Build and Push Docker Images / Build Linux Container (push) Failing after 18s
Build and Push Docker Images / Build Windows Container (push) Has been cancelled
Build and Push Docker Images / Create Multi-Platform Manifest (push) Has been cancelled
- Aggiunto step debug per verificare accesso al registry
- Documentazione completa su come verificare Container Registry
- Aggiunte istruzioni per registry alternativi (Docker Hub, GHCR)
- Guida per testare autenticazione manualmente
2026-01-24 12:38:48 +01:00
Alessio 16075c10c1 [Fix] Rinominato secret da GITEA_TOKEN a REGISTRY_TOKEN
Build and Push Docker Images / Build Linux Container (push) Failing after 32s
Build and Push Docker Images / Build Windows Container (push) Has been cancelled
Build and Push Docker Images / Create Multi-Platform Manifest (push) Has been cancelled
- Gitea non permette secret che iniziano con GITEA_
- Cambiato nome in REGISTRY_TOKEN in tutti i file
- Aggiornata documentazione con il nuovo nome
- Aggiunta nota sulla limitazione dei nomi secret in Gitea
2026-01-24 12:35:18 +01:00
Alessio 5b1d7d1ea2 [Fix] Correzione autenticazione Gitea Actions
Build and Push Docker Images / Build Linux Container (push) Failing after 1m0s
Build and Push Docker Images / Build Windows Container (push) Has been cancelled
Build and Push Docker Images / Create Multi-Platform Manifest (push) Has been cancelled
- Sostituito gitea.actor con username hardcoded 'alessio'
- Corretto tutti i riferimenti gitea.ref con github.ref
- Gitea Actions usa le stesse variabili di GitHub per compatibilità
- Aggiornata documentazione con spiegazione context variables
- Fix: username nel docker login ora funzionante
2026-01-24 12:33:04 +01:00
Alessio c74a00511c [Fix] Correzione registry Gitea Actions
Build and Push Docker Images / Build Linux Container (push) Failing after 29s
Build and Push Docker Images / Create Multi-Platform Manifest (push) Has been cancelled
Build and Push Docker Images / Build Windows Container (push) Has been cancelled
- Aggiornato registry da gitea.com a gitea.home-nas-ds.org
- Gitea non ha un registry centralizzato pubblico come GitHub
- Configurato per usare istanza self-hosted con Container Registry
- Aggiornata documentazione con istruzioni corrette
- Aggiunte note su configurazione registry e alternative
2026-01-24 12:30:18 +01:00
Alessio 4b27c6a11d [Docs] Aggiunta Gitea Actions per CI/CD automatico
Build and Push Docker Images / Build Linux Container (push) Failing after 27s
Build and Push Docker Images / Build Windows Container (push) Has been cancelled
Build and Push Docker Images / Create Multi-Platform Manifest (push) Has been cancelled
- Creato workflow Gitea Actions (.gitea/workflows/docker-build.yml)
- Documentazione completa setup e configurazione
- Aggiornati README.md e copilot-instructions.md
- Supporto registry Gitea Container Registry (gitea.com)
- Stessa strategia di tagging di GitHub Actions
- Build multi-platform (Linux + Windows)
2026-01-24 12:18:41 +01:00
Alessio Dal Santo c963bd9646 Merge branch 'development' of https://github.com/AlessioDalsi/Data-Coupler into development 2026-01-23 17:04:25 +01:00
Alessio Dal Santo 903836b93c Test di aggiornamento del container 2026-01-23 17:04:12 +01:00
Alessio c6beb9e88b Merge pull request #4 from AlessioDalsi/development
Aggiornamento del ramo di produzione
2026-01-23 17:00:42 +01:00
Alessio 06ec204242 Merge pull request #3 from AlessioDalsi/main
Merge pull request #2 from AlessioDalsi/development
2026-01-23 16:51:40 +01:00
Alessio Dal Santo f057d6e72f [CI/CD] Aggiunto tag development-latest per branch development
- Aggiunto tag development-latest specifico per il branch development
- Aggiunto tag development-latest-windows per immagini Windows
- Creato manifest multi-platform per development-latest
- Aggiornata documentazione README.md e copilot-instructions.md
- Ora development pubblica sia 'latest' che 'development-latest'
2026-01-23 16:48:30 +01:00
Alessio 3f417e4f3a Merge pull request #2 from AlessioDalsi/development
Aggiornamento del branch di produzione
2026-01-23 16:37:51 +01:00
Alessio Dal Santo 5aa5ff2e65 [CI/CD] Aggiornamento GitHub Actions per branch development con tag latest
- Aggiunto supporto per tag 'latest' anche dal branch development
- Aggiunto manifest multi-platform per development branch
- Aggiornata documentazione README.md e copilot-instructions.md
- Il tag latest ora viene pubblicato da main E development per garantire accesso alle ultime funzionalità
2026-01-23 15:58:40 +01:00
Alessio Dal Santo e35de1614f [Feature] Disabilitata deletion sync nei trasferimenti manuali e aggiunta configurazione nelle schedulazioni
- Disabilitata completamente la sincronizzazione eliminazioni nei trasferimenti manuali (DataCoupler.razor.cs)
- Aggiunto campo EnableDeletionSync al modello ProfileSchedule (default: false)
- Implementata logica condizionale in ScheduledProfileExecutionService per deletion sync
- Aggiunta sezione 'Opzioni Avanzate' nell'interfaccia schedulazione con warning
- Creata migration Entity Framework AddEnableDeletionSyncToProfileSchedule
- Aggiornato BackupModels per supporto backup/restore del nuovo campo
- Aggiornata documentazione README.md e copilot-instructions.md
- La deletion sync è ora disponibile solo per schedulazioni con configurazione esplicita per massima sicurezza
2026-01-23 15:52:15 +01:00
Alessio Dal Santo 5169cd25c8 -Aggiunto copilot instructions
-Modificata github actions per includere il ramo development
2026-01-22 09:29:40 +01:00
Alessio Dal Santo 348a04348c -Rimossa documentazione superflua 2026-01-16 15:50:17 +01:00
Alessio Dal Santo 2525e19521 fix: Ripristina nomi directory originali per rispettare riferimenti .csproj 2026-01-16 14:53:52 +01:00
Alessio Dal Santo c3503c4a6f fix: Risolve limitazioni path lunghi Windows rimuovendo PowerShell e abbreviando percorsi 2026-01-16 14:46:39 +01:00
Alessio Dal Santo f026da047b fix: Resolve Windows path length limitations in Dockerfile 2026-01-16 14:32:40 +01:00
Alessio Dal Santo a86d5c936b fix: Correct YAML syntax errors in docker-build workflow 2026-01-16 14:25:56 +01:00
Alessio Dal Santo 999bdf3e39 fix: Add id-token permissions for attestation in build-linux job 2026-01-16 14:24:15 +01:00
Alessio Dal Santo ca3d1dc118 fix: Convert Docker image names to lowercase in GitHub Actions 2026-01-16 14:20:35 +01:00
Alessio Dal Santo 23c2788fcf -Aggiunta configurazione tramite dockerfile per windows e linux
-Aggiunte github actions per la compilazione dei container e l'esposizione
2026-01-16 14:16:15 +01:00
Alessio Dal Santo 3465d43b08 Fix errore build: aggiunto nuget.config alla root della soluzione
- Aggiunto file `nuget.config` alla radice per forzare l'utilizzo del feed pubblico nuget.org.
- Risolve l'errore NU1900Fix errore build: aggiunto nuget.config alla root della soluzione

- Aggiunto file `nuget.config` alla radice per forzare l'utilizzo del feed pubblico nuget.org.
- Risolve l'errore NU1900
2025-11-24 16:46:32 +01:00
Alessio fa4732ef71 feat(deletion-sync): implementato sistema completo sincronizzazione cancellazioni + fix Pre-Discovery
NUOVE FUNZIONALITÀ - Sistema Sincronizzazione Cancellazioni:

Database:
- Aggiunto tracking cancellazioni in KeyAssociation (IsSourceDeleted, DeletedAt, DeletionSynced, DeletionSyncedAt)
- Aggiunta configurazione cancellazioni in DataCouplerProfile (SyncDeletions, DeletionAction, DeletionMarkField, DeletionMarkValue)
- Migration: 20251027103016_AddDeletionSyncFeature

Servizi:
- Nuovo DeletionSyncService con supporto 3 modalità (Delete, Deactivate, Mark)
- KeyAssociationService: aggiunti MarkDeletedAssociationsAsync, GetPendingDeletionsAsync, MarkDeletionSyncedAsync, GetDeletedAssociationsAsync
- DataConnectionCredentialService: esposti metodi di sincronizzazione cancellazioni

Logica Trasferimento:
- Integrata sincronizzazione cancellazioni in StartDataTransferOriginal
- Integrata sincronizzazione cancellazioni in StartDataTransferWithComposite
- Rilevamento automatico record cancellati tramite confronto chiavi sorgente
- Sincronizzazione con gestione errori robusta

UI:
- Aggiunto contatore "Cancellati" nei risultati trasferimento
- Aggiunto stato "deleted" con badge e icona trash
- Messaggi completamento includono cancellazioni

BUG FIX - Pre-Discovery Flag Reset:

Problema Risolto:
- Il flag isPreDiscoveryAssociation causava aggiornamenti forzati infiniti
- Record venivano aggiornati anche con dati identici (hash ignorato)

Soluzione:
- Corretto controllo flag: verifica AdditionalInfo["CreatedBy"] == "PreDiscovery"
- Reset immediato flag durante marcatura per update (rimozione chiave "CreatedBy")
- Biforcazione intelligente: prima sync forza update, successive usano hash

Benefici:
- Riduzione 60-90% chiamate API inutili dopo prima sincronizzazione
- Controllo hash funzionante correttamente
- Performance drasticamente migliorate

MODIFICHE TECNICHE:

File Modificati:
- CredentialManager/Models/KeyAssociation.cs (+4 campi)
- CredentialManager/Models/DataCouplerProfile.cs (+4 campi)
- CredentialManager/Services/KeyAssociationService.cs (+142 righe, 4 metodi)
- CredentialManager/Services/IKeyAssociationService.cs (+4 signature)
- DataConnection/CredentialManagement/Interfaces/IDataConnectionCredentialService.cs (+4 metodi)
- DataConnection/CredentialManagement/Services/DataConnectionCredentialService.cs (+21 righe)
- Data_Coupler/Pages/DataCoupler.razor (UI cancellazioni + contatori)
- Data_Coupler/Pages/DataCoupler.razor.cs (sync cancellazioni + fix hash)
- Data_Coupler/Program.cs (registrazione DeletionSyncService)

File Nuovi:
- Data_Coupler/Services/DeletionSyncService.cs (~250 righe)
- CredentialManager/Migrations/20251027103016_AddDeletionSyncFeature.cs
- DELETION_SYNC_IMPLEMENTATION.md (documentazione completa)
- FIX_PRE_DISCOVERY_FINAL.md (documentazione fix)

Testing:
- Compilazione verificata:  Successo (26 warning pre-esistenti)
- Breaking changes: Nessuno
- Compatibilità: Retrocompatibile

IMPATTO:
- Gestione completa lifecycle record (creazione, aggiornamento, cancellazione)
- Performance ottimizzate con controllo hash funzionante
- Sistema robusto per mantenere destinazione sincronizzata con sorgente
2025-10-27 12:42:55 +01:00
Alessio f513251507 refactor: Centralizzata logica Pre-Discovery in servizio dedicato
Creato AssociationService per eliminare duplicazione codice e migliorare manutenibilità

Nuovo servizio:
- Data_Coupler/Services/AssociationService.cs (276 righe)
  * Interfaccia IAssociationService con metodi pubblici
  * PreDiscoveryRequest DTO per parametri configurabili
  * FindOrCreateAssociationAsync(): ricerca locale + Pre-Discovery REST
  * IsPreDiscoveryAssociation(): verifica marker associazioni Pre-Discovery

Refactoring DataCoupler.razor.cs:
- Injected IAssociationService nel componente
- StartDataTransferOriginal(): ridotto da 98 a 20 righe (-78)
- StartDataTransferWithComposite(): ridotto da 93 a 20 righe (-73)
- Verifica Pre-Discovery: ridotto da 20 a 2 righe (-18)
- Sostituito logica inline con chiamate al servizio centralizzato

Refactoring ScheduledProfileExecutionService.cs:
- Injected IAssociationService nel costruttore
- ExecuteDataTransferWithCompositeAsync(): ridotto da 99 a 20 righe (-79)
- Verifica Pre-Discovery: ridotto da 20 a 2 righe (-18)
- Parametro IsScheduledTransfer=true per tracciabilità

Dependency Injection:
- Registrato IAssociationService in Program.cs come Scoped
- Disponibile per dependency injection in tutti i componenti

Vantaggi:
- Eliminata duplicazione: 3 implementazioni → 1 servizio centralizzato
- Codice ridotto di 266 righe (330 → 64 nelle chiamate)
- Manutenibilità: modifiche future in un solo file
- Testabilità: interfaccia facilmente mockabile per unit test
- Riusabilità: servizio disponibile per futuri componenti
- Separazione responsabilità: logica associazioni isolata

Comportamento invariato:
- Nessuna modifica alla logica Pre-Discovery esistente
- Compatibilità completa con database e API
- Stessi marker e metadata nelle associazioni create

Docs: PRE_DISCOVERY_REFACTORING.md
Build:  Successo (0 errori, 25 warning pre-esistenti)
2025-10-21 00:56:01 +02:00
Alessio 39d7124ce1 feat: Implementato sistema Pre-Discovery con supporto esecuzioni schedulate
- Fix FindEntitiesByKeysAsync: SOQL query universale al posto di External ID GET
  * Disabilitato External ID GET (funziona solo per campi marcati External ID)
  * Query SOQL come metodo primario funzionante per tutti i campi
  * Logging dettagliato per diagnostica ricerche Salesforce

- Pre-Discovery nei trasferimenti manuali (DataCoupler.razor.cs)
  * Ricerca automatica nella destinazione quando KeyAssociation non esiste
  * Creazione associazione con marker CreatedBy="PreDiscovery"
  * Aggiornamento forzato senza controllo hash per associazioni Pre-Discovery
  * Supporto parallel processing thread-safe

- Pre-Discovery nei trasferimenti schedulati (ScheduledProfileExecutionService.cs)
  * Logica identica a trasferimenti manuali
  * Marker aggiuntivo ScheduledTransfer=true per tracciabilità
  * Aggiornamento forzato per prima sincronizzazione

- Sistema aggiornamento forzato
  * Verifica AdditionalInfo per identificare associazioni Pre-Discovery
  * Skip controllo hash per associazioni appena scoperte
  * Garantisce sincronizzazione dati al primo trasferimento

Vantaggi:
- Prevenzione automatica duplicati in Salesforce
- Recupero record esistenti senza associazioni
- Parità funzionale tra esecuzioni manuali e schedulate
- Performance ottimizzate con controllo hash per esecuzioni successive

Docs: PRE_DISCOVERY_SYSTEM.md, PRE_DISCOVERY_FORCED_UPDATE.md, SALESFORCE_FIND_ENTITIES_FIX.md
2025-10-21 00:48:03 +02:00
Alessio 5d9b9756cf fix: Correzione salvataggio campo MappedDestinationField in KeyAssociations
- Aggiunto campo MappedDestinationField al modello KeyAssociation per tracciare il campo destinazione mappato alla chiave sorgente
- Creata migration AddMappedDestinationFieldToKeyAssociation per aggiungere la colonna al database
- Implementata logica di popolamento in CreateAssociationAsync e StartDataTransferOriginal per salvare il campo destinazione mappato
- Aggiornato SaveAssociationParallelAsync per includere MappedDestinationField nelle query SQL UPDATE e INSERT
- Corretti indici parametri nella query UPDATE (da {7-9} a {8-10}) per includere il nuovo campo
- Aggiunta visualizzazione campo nell'interfaccia KeyAssociations (tabella, dettagli, export CSV)
- Implementato controllo validazione per impedire trasferimenti se il campo chiave non è mappato
- Aggiunto logging diagnostico dettagliato per debug del mapping dei campi
- Aggiornato ScheduledProfileExecutionService per popolare MappedDestinationField nelle esecuzioni schedulate
- Rimosso file BackgroundServices.cs obsoleto
- Documentazione completa creata (4 markdown files)

Fixes: Campo MappedDestinationField rimaneva NULL perché le query SQL raw non includevano il nuovo campo
2025-10-20 00:42:07 +02:00