using System.Text; namespace DataConnection.DB.FoxPro; /// /// Informazioni di connessione risolte per una sorgente Visual FoxPro / dBase. /// Una "connessione" FoxPro è semplicemente un percorso sul filesystem: /// un file .dbc (database container) oppure una cartella di tabelle libere .dbf. /// public sealed class FoxProConnectionInfo { /// Cartella che contiene i file .dbf (e relativi .fpt/.cdx). public string Folder { get; init; } = string.Empty; /// Percorso completo del file .dbc, se la sorgente è un database container; altrimenti null. public string? DbcPath { get; init; } /// /// Encoding usato per decodificare i campi carattere/memo. Il valore reale è sempre /// impostato da (default effettivo: code page 1252); /// qui usiamo Latin1 come placeholder built-in che non richiede il provider code-page. /// public Encoding Encoding { get; init; } = Encoding.Latin1; /// Se true, include anche i record marcati come cancellati (default: false). public bool IncludeDeleted { get; init; } /// True se la sorgente è un database container (.dbc). public bool IsContainer => !string.IsNullOrEmpty(DbcPath); /// Nome leggibile della sorgente (nome del .dbc o della cartella), per messaggi/log. public string DisplayName => IsContainer ? System.IO.Path.GetFileName(DbcPath!) : new System.IO.DirectoryInfo(Folder).Name; }