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
This commit is contained in:
@@ -39,6 +39,9 @@ public interface ICredentialService
|
||||
Task<bool> DeleteCredentialAsync(int id);
|
||||
Task<bool> DeleteCredentialAsync(string name);
|
||||
Task<List<string>> GetCredentialNamesAsync(CredentialType? type = null);
|
||||
|
||||
// Helper methods to get credential ID by name
|
||||
Task<int?> GetCredentialIdByNameAsync(string name, CredentialType type);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -960,5 +963,27 @@ public class CredentialService : ICredentialService
|
||||
credentialValue.Contains("*** ERRORE DECRITTOGRAFIA ***");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Ottiene l'ID di una credenziale per nome e tipo
|
||||
/// </summary>
|
||||
/// <param name="name">Nome della credenziale</param>
|
||||
/// <param name="type">Tipo della credenziale</param>
|
||||
/// <returns>ID della credenziale se trovata, null altrimenti</returns>
|
||||
public async Task<int?> GetCredentialIdByNameAsync(string name, CredentialType type)
|
||||
{
|
||||
try
|
||||
{
|
||||
var entity = await _context.Credentials
|
||||
.FirstOrDefaultAsync(c => c.Name == name && c.Type == type.ToString() && c.IsActive);
|
||||
|
||||
return entity?.Id;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "Errore nel recuperare l'ID della credenziale: {Name}, Tipo: {Type}", name, type);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user