Prima implementazione del servizio di connessione e scoperta del database

This commit is contained in:
2025-04-06 23:05:18 +02:00
parent f965550fd6
commit 503b567fb7
17 changed files with 1134 additions and 0 deletions
@@ -0,0 +1,62 @@
using System.Collections.Generic;
using System.Threading.Tasks;
namespace DataConnection.Interfaces;
/// <summary>
/// Interfaccia per la scoperta dei database disponibili sul server
/// </summary>
public interface IDatabaseDiscovery
{
/// <summary>
/// Ottiene l'elenco di tutti i database disponibili sul server
/// </summary>
/// <param name="serverConnectionString">Stringa di connessione al server (senza specificare il database)</param>
/// <param name="excludeSystemDatabases">Se true, esclude i database di sistema</param>
/// <returns>Lista di nomi dei database disponibili</returns>
Task<List<string>> GetAvailableDatabasesAsync(string serverConnectionString, bool excludeSystemDatabases = true);
/// <summary>
/// Ottiene informazioni dettagliate sui database disponibili
/// </summary>
/// <param name="serverConnectionString">Stringa di connessione al server</param>
/// <param name="excludeSystemDatabases">Se true, esclude i database di sistema</param>
/// <returns>Dizionario con nome database e metadati</returns>
Task<Dictionary<string, DatabaseInfo>> GetDatabasesInfoAsync(string serverConnectionString, bool excludeSystemDatabases = true);
}
/// <summary>
/// Informazioni sul database
/// </summary>
public class DatabaseInfo
{
/// <summary>
/// Nome del database
/// </summary>
public string Name { get; set; }
/// <summary>
/// Dimensione del database in MB
/// </summary>
public double SizeMB { get; set; }
/// <summary>
/// Data di creazione
/// </summary>
public System.DateTime CreationDate { get; set; }
/// <summary>
/// Stato del database (online, offline, ecc.)
/// </summary>
public string Status { get; set; }
/// <summary>
/// Proprietario del database
/// </summary>
public string Owner { get; set; }
/// <summary>
/// Indica se è un database di sistema
/// </summary>
public bool IsSystemDatabase { get; set; }
}