Files
Data-Coupler/DataConnection/CredentialManagement/ServiceCollectionExtensions.cs
T
Alessio Dal Santo a81a868005 [Cleanup] Rimozione codice morto
Eliminati file e codice inutilizzati identificati durante l'analisi del codice morto:

File eliminati:
- Data_Coupler/Data/WeatherForecast.cs: classe demo del template Blazor, mai referenziata
- Data_Coupler/Data/WeatherForecastService.cs: servizio demo del template Blazor, mai iniettato
- DataConnection/CredentialManagement/Models/CredentialExtensions2.cs: file vuoto residuo di refactoring
- DataConnection/CredentialManagement/Models/CredentialExtensions_New.cs: file vuoto residuo di refactoring
- DataConnection/CredentialManagement/ServiceCollectionExtensions_New.cs: file vuoto residuo di refactoring
- CredentialManager/Services/KeyMappingService.cs: file vuoto senza implementazione
- DataConnection/DB/EF/ExistingDatabaseExample.cs: file vuoto di esempio non compilato

Interfaccia rimossa:
- DataConnection/CredentialManagement/ServiceCollectionExtensions.cs: rimossa IDataConnectionCredentialServiceConfiguration,
  interfaccia mai implementata né utilizzata in alcuna parte del codebase

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 11:29:10 +02:00

87 lines
3.2 KiB
C#

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using CredentialManager;
using CredentialManager.Services;
using CredentialManager.Data;
using DataConnection.CredentialManagement.Interfaces;
using DataConnection.CredentialManagement.Services;
namespace DataConnection.CredentialManagement;
/// <summary>
/// Metodi di estensione per configurare i servizi di gestione credenziali per DataConnection
/// </summary>
public static class ServiceCollectionExtensions
{
/// <summary>
/// Aggiunge i servizi di gestione credenziali a DataConnection
/// </summary>
/// <param name="services">La collezione di servizi</param>
/// <param name="connectionString">Stringa di connessione per il database delle credenziali</param>
/// <returns>La collezione di servizi per il chaining</returns>
public static IServiceCollection AddDataConnectionCredentialManagement(
this IServiceCollection services,
string connectionString = "Data Source=credentials.db")
{
// Estrai il percorso del database dalla connection string
string databasePath;
if (connectionString.StartsWith("Data Source=", StringComparison.OrdinalIgnoreCase))
{
databasePath = connectionString.Substring("Data Source=".Length);
}
else
{
// Se non è una connection string, assumiamo che sia già un percorso
databasePath = connectionString;
}
// Aggiungi i servizi base di CredentialManager
services.AddCredentialManager(databasePath);
// Aggiungi il servizio di gestione associazioni per chiavi
services.AddScoped<IKeyAssociationService, KeyAssociationService>();
// Aggiungi il servizio di integrazione DataConnection
services.AddScoped<IDataConnectionCredentialService, DataConnectionCredentialService>();
return services;
}
/// <summary>
/// Aggiunge i servizi di gestione credenziali con configurazione avanzata
/// </summary>
/// <param name="services">La collezione di servizi</param>
/// <param name="configure">Azione per configurare le opzioni</param>
/// <returns>La collezione di servizi per il chaining</returns>
public static IServiceCollection AddDataConnectionCredentialManagement(
this IServiceCollection services,
Action<DataConnectionCredentialOptions> configure)
{
var options = new DataConnectionCredentialOptions();
configure(options);
return services.AddDataConnectionCredentialManagement(options.ConnectionString);
}
}
/// <summary>
/// Opzioni per la configurazione del DataConnectionCredentialManagement
/// </summary>
public class DataConnectionCredentialOptions
{
/// <summary>
/// Stringa di connessione per il database delle credenziali
/// </summary>
public string ConnectionString { get; set; } = "Data Source=credentials.db";
/// <summary>
/// Abilita il logging dettagliato
/// </summary>
public bool EnableDetailedLogging { get; set; } = false;
/// <summary>
/// Timeout per le operazioni sul database (in secondi)
/// </summary>
public int DatabaseTimeout { get; set; } = 30;
}