a81a868005
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>
87 lines
3.2 KiB
C#
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;
|
|
}
|