# tpdAlarmManager

# ⚙️ tpdAlarmManager

La classe tpdAlarmManager è una NetLogic che si occupa di importare traduzioni e allarmi da file Excel (`.xlsx`) presenti in una cartella specificata.

Questo componente automatizza il caricamento di dizionari di allarmi, facilitando l’integrazione e la gestione centralizzata dei dati di allarme nel progetto.

## 🚦 Panoramica generale

Il metodo principale della classe è:

- `ImportTranslationsAndAlarms()`: Importa i file Excel di allarmi e traduzioni dalla cartella configurata, permette all’utente di selezionare quali dizionari caricare, quindi importa i dati all’interno del progetto HMI.

## 🛠️ Funzionamento principale

Metodo | Descrizione
--- | ---
`ImportTranslationsAndAlarms()` | Esegue la scansione della cartella degli allarmi, filtra i file `.xlsx`, mostra una selezione all’utente e importa i dizionari scelti.

## 🔄 Flusso di lavoro del metodo ImportTranslationsAndAlarms

1. Recupera il percorso completo della cartella allarmi tramite la variabile `AlarmFolder`.
2. Controlla che la cartella esista; altrimenti lancia un’eccezione con messaggio in dialetto veneto.
3. Cerca tutti i file `.xlsx` nella cartella specificata.
4. Crea un dizionario che mappa il nome del file (senza estensione) al percorso completo.
5. Invoca uno script che presenta una lista di opzioni all’utente per selezionare i dizionari da importare.
6. Per ogni dizionario selezionato, richiama `Owner.ImportAlarmsInsideOwner` per importare i dati nel progetto.

## 💡 Dettagli importanti

- La funzione utilizza un metodo di utilità `Utils.GetFullPath()` per risolvere il percorso della cartella allarmi.
- Viene utilizzata una cartella temporanea tramite `Utils.GetTempFolder()` per eventuali operazioni intermedie.
- L’utente interagisce con uno script generato dinamicamente per scegliere i file da importare, tramite `ConsoleLauncher.Launch`.
- I nomi dei file senza estensione sono usati come chiavi per la selezione.
- L’eccezione lanciata in caso di cartella inesistente ha un tono molto colloquiale e colorito (dialetto veneto).
- È presente un codice commentato per una versione parallela di importazione (con `Parallel.ForEach`) che potrebbe essere abilitata per migliorare performance.

## 🧰 Metodi principali

Metodo | Descrizione
--- | ---
`ImportTranslationsAndAlarms()` | Metodo esportato che gestisce il processo completo di importazione degli allarmi e traduzioni da file Excel.

# 🔍 In Depth: Funzioni di tpdAlarmManager

### `ImportTranslationsAndAlarms()`

> Descrizione:
> Metodo che esegue l’importazione di dizionari di allarmi e traduzioni da file `.xlsx` presenti in una cartella specificata nel progetto.
> Permette la selezione interattiva dei file da importare e li carica nel progetto tramite chiamata a `Owner.ImportAlarmsInsideOwner`.

> Dettagli tecnici:

> - Risolve il percorso della cartella allarmi.
> - Controlla l’esistenza della cartella (eccezione in caso negativo).
> - Recupera i file Excel `.xlsx`.
> - Presenta all’utente un menu di selezione.
> - Importa i dizionari selezionati.

> Eccezione:
> Lancia un’eccezione se la cartella degli allarmi non esiste, con messaggio in dialetto veneto.

> Esempio d’uso:

>     alarmManager.ImportTranslationsAndAlarms();