From 87defc38b83dd9fc96df5e9e1d6e8e89bf8270de Mon Sep 17 00:00:00 2001 From: Alessio Dal Santo Date: Sun, 13 Jul 2025 14:53:53 +0200 Subject: [PATCH] Refactor: Migliorata gestione percorsi database multi-piattaforma e pulizia file temporanei MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Implementato supporto per percorsi database specifici per OS (Windows, Linux, macOS) - Rimossi file temporanei e di test non necessari dal CredentialManager - Aggiunto supporto per directory di sistema standard per il database delle credenziali - Mantenuto il codice legacy commentato per retrocompatibilità - Aggiunte cartelle di test per future implementazioni --- CredentialManager/design_time_temp.db | Bin 118784 -> 0 bytes Data_Coupler/Program.cs | 38 +++++++++++++++--- .../Program.cs | 0 .../TestCredentialDatabaseName.csproj | 0 .../Program.cs | 0 .../TestSourceDatabaseName.csproj | 0 6 files changed, 33 insertions(+), 5 deletions(-) delete mode 100644 CredentialManager/design_time_temp.db rename {CredentialManager/Test => TestCredentialDatabaseName}/Program.cs (100%) rename CredentialManager/CLI/CredentialManagerCLI.cs => TestCredentialDatabaseName/TestCredentialDatabaseName.csproj (100%) rename CredentialManager/CLI/README.md => TestSourceDatabaseName/Program.cs (100%) create mode 100644 TestSourceDatabaseName/TestSourceDatabaseName.csproj diff --git a/CredentialManager/design_time_temp.db b/CredentialManager/design_time_temp.db deleted file mode 100644 index 02bade72df7e1aa9ee50ca76a1a9768a94b3289a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118784 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 O00@8p2!O!Z2>cflo@BZJ diff --git a/Data_Coupler/Program.cs b/Data_Coupler/Program.cs index efb4e83..fba3fcc 100644 --- a/Data_Coupler/Program.cs +++ b/Data_Coupler/Program.cs @@ -23,11 +23,39 @@ builder.Services.AddServerSideBlazor(); builder.Services.AddWindowsService(); builder.Services.AddHostedService(); -// Add CredentialManager services -var contentRoot = builder.Environment.ContentRootPath; -var dataPath = Path.Combine(contentRoot, "wwwroot", "data"); -Directory.CreateDirectory(dataPath); // Assicurati che la directory esista -var dbPath = Path.Combine(dataPath, "credentials.db"); +#region Database Directory Path management + +string dbPath = string.Empty; + +if (OperatingSystem.IsWindows()) +{ + dbPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "Data_Coupler", "credentials.db"); +} +else if (OperatingSystem.IsLinux()) +{ + dbPath = "/var/lib/Data_Coupler/credentials.db"; +} +else if (OperatingSystem.IsMacOS()) +{ + dbPath = "/Library/Application Support/Data_Coupler/credentials.db"; +} + +var dbDirectory = Path.GetDirectoryName(dbPath); +if (!Directory.Exists(dbDirectory)) +{ + Directory.CreateDirectory(dbDirectory!); +} + +#endregion + +#region OLD DB PATH +// // Add CredentialManager services +// var contentRoot = builder.Environment.ContentRootPath; +// var dataPath = Path.Combine(contentRoot, "wwwroot", "data"); +// Directory.CreateDirectory(dataPath); // Assicurati che la directory esista +// var dbPath = Path.Combine(dataPath, "credentials.db"); +#endregion + builder.Services.AddDataConnectionCredentialManagement($"Data Source={dbPath}"); // Register IHttpClientFactory diff --git a/CredentialManager/Test/Program.cs b/TestCredentialDatabaseName/Program.cs similarity index 100% rename from CredentialManager/Test/Program.cs rename to TestCredentialDatabaseName/Program.cs diff --git a/CredentialManager/CLI/CredentialManagerCLI.cs b/TestCredentialDatabaseName/TestCredentialDatabaseName.csproj similarity index 100% rename from CredentialManager/CLI/CredentialManagerCLI.cs rename to TestCredentialDatabaseName/TestCredentialDatabaseName.csproj diff --git a/CredentialManager/CLI/README.md b/TestSourceDatabaseName/Program.cs similarity index 100% rename from CredentialManager/CLI/README.md rename to TestSourceDatabaseName/Program.cs diff --git a/TestSourceDatabaseName/TestSourceDatabaseName.csproj b/TestSourceDatabaseName/TestSourceDatabaseName.csproj new file mode 100644 index 0000000..e69de29