diff --git a/src/UniGetUI.Core.Data/CoreData.cs b/src/UniGetUI.Core.Data/CoreData.cs index b015d6fd2..2307f6265 100644 --- a/src/UniGetUI.Core.Data/CoreData.cs +++ b/src/UniGetUI.Core.Data/CoreData.cs @@ -1,4 +1,4 @@ -using System.Diagnostics; +using System.Diagnostics; using System.Net; using System.Text.Json; using System.Text.Json.Serialization.Metadata; @@ -64,6 +64,20 @@ public static string UniGetUIDataDirectory } } + /// + /// The directory where the user configurations are stored. The directory is automatically created if it does not exist. + /// + public static string UniGetUIUserConfigurationDirectory + { + //TODO: add functionality to move old configurations to new location + get + { + string path = Path.Join(UniGetUIDataDirectory, "Configuration"); + if (!Directory.Exists(path)) Directory.CreateDirectory(path); + return path; + } + } + /// /// The directory where the installation options are stored. The directory is automatically created if it does not exist. /// diff --git a/src/UniGetUI.Core.Settings/SettingsEngine.cs b/src/UniGetUI.Core.Settings/SettingsEngine.cs index c443600b2..23bacb621 100644 --- a/src/UniGetUI.Core.Settings/SettingsEngine.cs +++ b/src/UniGetUI.Core.Settings/SettingsEngine.cs @@ -17,7 +17,7 @@ public static bool Get(string setting, bool invert = false) } // Otherwise, load the value from disk and cache that setting - result = File.Exists(Path.Join(CoreData.UniGetUIDataDirectory, setting)); + result = File.Exists(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, setting)); booleanSettings[setting] = result; return result ^ invert; } @@ -30,17 +30,17 @@ public static void Set(string setting, bool value) booleanSettings[setting] = value; // Update changes on disk if applicable - if (value && !File.Exists(Path.Join(CoreData.UniGetUIDataDirectory, setting))) + if (value && !File.Exists(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, setting))) { - File.WriteAllText(Path.Join(CoreData.UniGetUIDataDirectory, setting), ""); + File.WriteAllText(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, setting), ""); } else if (!value) { valueSettings[setting] = ""; - if (File.Exists(Path.Join(CoreData.UniGetUIDataDirectory, setting))) + if (File.Exists(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, setting))) { - File.Delete(Path.Join(CoreData.UniGetUIDataDirectory, setting)); + File.Delete(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, setting)); } } @@ -61,9 +61,9 @@ public static string GetValue(string setting) // Otherwise, load the setting from disk and cache that setting value = ""; - if (File.Exists(Path.Join(CoreData.UniGetUIDataDirectory, setting))) + if (File.Exists(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, setting))) { - value = File.ReadAllText(Path.Join(CoreData.UniGetUIDataDirectory, setting)); + value = File.ReadAllText(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, setting)); } valueSettings[setting] = value; @@ -83,7 +83,7 @@ public static void SetValue(string setting, string value) } else { - File.WriteAllText(Path.Join(CoreData.UniGetUIDataDirectory, setting), value); + File.WriteAllText(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, setting), value); booleanSettings[setting] = true; valueSettings[setting] = value; } diff --git a/src/UniGetUI.Core.Settings/SettingsEngine_Dictionaries.cs b/src/UniGetUI.Core.Settings/SettingsEngine_Dictionaries.cs index 0be02e2ed..a2ac0f978 100644 --- a/src/UniGetUI.Core.Settings/SettingsEngine_Dictionaries.cs +++ b/src/UniGetUI.Core.Settings/SettingsEngine_Dictionaries.cs @@ -35,9 +35,9 @@ public static partial class Settings // Otherwise, load the setting from disk and cache that setting Dictionary value = []; - if (File.Exists(Path.Join(CoreData.UniGetUIDataDirectory, $"{setting}.json"))) + if (File.Exists(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, $"{setting}.json"))) { - string result = File.ReadAllText(Path.Join(CoreData.UniGetUIDataDirectory, $"{setting}.json")); + string result = File.ReadAllText(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, $"{setting}.json")); try { if (result != "") @@ -85,7 +85,7 @@ public static void SetDictionary(string setting, Dictionary value) kvp => (object?)kvp.Value ); - var file = Path.Join(CoreData.UniGetUIDataDirectory, $"{setting}.json"); + var file = Path.Join(CoreData.UniGetUIUserConfigurationDirectory, $"{setting}.json"); try { if (value.Count != 0) File.WriteAllText(file, JsonSerializer.Serialize(value)); diff --git a/src/UniGetUI.Core.Settings/SettingsEngine_Lists.cs b/src/UniGetUI.Core.Settings/SettingsEngine_Lists.cs index 97d134b2d..4ecefbec1 100644 --- a/src/UniGetUI.Core.Settings/SettingsEngine_Lists.cs +++ b/src/UniGetUI.Core.Settings/SettingsEngine_Lists.cs @@ -31,7 +31,7 @@ public static partial class Settings // Otherwise, load the setting from disk and cache that setting List value = []; - var file = Path.Join(CoreData.UniGetUIDataDirectory, $"{setting}.json"); + var file = Path.Join(CoreData.UniGetUIUserConfigurationDirectory, $"{setting}.json"); if (File.Exists(file)) { string result = File.ReadAllText(file); @@ -73,7 +73,7 @@ public static partial class Settings public static void SetList(string setting, List value) { listSettings[setting] = value.Cast().ToList(); - var file = Path.Join(CoreData.UniGetUIDataDirectory, $"{setting}.json"); + var file = Path.Join(CoreData.UniGetUIUserConfigurationDirectory, $"{setting}.json"); try { if (value.Count != 0) File.WriteAllText(file, JsonSerializer.Serialize(value));