feat: Implementata eliminazione cascata credenziali con modale di conferma

Aggiunta funzionalità completa per l'eliminazione sicura delle credenziali
con rimozione automatica di tutti i dati associati.

Modifiche principali:

Backend:
- Aggiunta interfaccia ICredentialService.DeleteCredentialCascadeAsync()
- Implementato CredentialService.DeleteCredentialCascadeAsync() con gestione transazionale
- Aggiornata IDataConnectionCredentialService con metodi cascade delete
- Implementati wrapper in DataConnectionCredentialService

Eliminazione cascata gestisce:
- Execution histories delle schedulazioni
- Profile schedules associate ai profili
- Data Coupler profiles che usano le credenziali
- Key associations per credenziali REST
- Credenziale stessa

Frontend (CredentialManagement.razor):
- Aggiunto modale Bootstrap di conferma eliminazione con design danger
- Messaggio di attenzione chiaro che elenca cosa verrà eliminato
- Refactoring metodo DeleteCredential() per usare modale invece di confirm JS
- Aggiunti metodi CloseDeleteConfirmModal() e ConfirmDeleteCredential()

Sicurezza:
- Eliminazione fisica (hard delete) con transazione database
- Rollback automatico in caso di errore
- Logging dettagliato di ogni operazione
- Conferma esplicita dell'utente richiesta
This commit is contained in:
Alessio Dal Santo
2025-10-08 15:54:54 +02:00
parent d042863a56
commit 960166be9f
5 changed files with 526 additions and 22 deletions
@@ -969,6 +969,18 @@ public class DataConnectionCredentialService : IDataConnectionCredentialService
return await _credentialService.GetCredentialIdByNameAsync(name, type);
}
public async Task<bool> DeleteCredentialCascadeAsync(string name)
{
_logger.LogInformation("Deleting credential cascade by name: {Name}", name);
return await _credentialService.DeleteCredentialCascadeAsync(name);
}
public async Task<bool> DeleteCredentialCascadeAsync(int id)
{
_logger.LogInformation("Deleting credential cascade by ID: {Id}", id);
return await _credentialService.DeleteCredentialCascadeAsync(id);
}
#endregion
#endregion