Cleaned up code

This commit is contained in:
2022-06-12 10:22:43 +03:00
parent 97888626b6
commit 861b83cda2
8 changed files with 37 additions and 191 deletions

View File

@@ -1,6 +1,5 @@
using PluginManager.Others;
using System.IO;
using System.Linq;
using System.Text.Json;
using System.Threading.Tasks;
using System.Collections.Generic;
@@ -9,27 +8,27 @@ namespace PluginManager
{
internal class AppConfig
{
public Dictionary<string, object> ApplicationVariables { get; set; }
public List<string> ProtectedKeyWords { get; set; }
public Dictionary<string, object>? ApplicationVariables { get; set; }
public List<string>? ProtectedKeyWords { get; set; }
}
public static class Config
{
private static AppConfig appConfig;
private static AppConfig? appConfig { get; set; }
public static bool AddValueToVariables<T>(string key, T value, bool isProtected)
{
if (appConfig.ApplicationVariables.ContainsKey(key)) return false;
if (appConfig!.ApplicationVariables!.ContainsKey(key)) return false;
if (value == null) return false;
appConfig.ApplicationVariables.Add(key, value);
if (isProtected) appConfig.ProtectedKeyWords.Add(key);
if (isProtected) appConfig.ProtectedKeyWords!.Add(key);
SaveConfig();
return true;
}
public static T? GetValue<T>(string key)
{
if (!appConfig.ApplicationVariables.ContainsKey(key)) return default;
if (!appConfig!.ApplicationVariables!.ContainsKey(key)) return default;
try
{
JsonElement element = (JsonElement)appConfig.ApplicationVariables[key];
@@ -43,8 +42,8 @@ namespace PluginManager
public static bool SetValue<T>(string key, T value)
{
if (!appConfig.ApplicationVariables.ContainsKey(key)) return false;
if (appConfig.ProtectedKeyWords.Contains(key)) return false;
if (!appConfig!.ApplicationVariables!.ContainsKey(key)) return false;
if (appConfig.ProtectedKeyWords!.Contains(key)) return false;
if (value == null) return false;
appConfig.ApplicationVariables[key] = JsonSerializer.SerializeToElement(value);
@@ -54,8 +53,8 @@ namespace PluginManager
public static bool RemoveKey(string key)
{
appConfig.ApplicationVariables.Remove(key);
appConfig.ProtectedKeyWords.Remove(key);
appConfig!.ApplicationVariables!.Remove(key);
appConfig.ProtectedKeyWords!.Remove(key);
SaveConfig();
return true;
}
@@ -63,7 +62,7 @@ namespace PluginManager
public static async void SaveConfig()
{
string path = Functions.dataFolder + "config.json";
await Functions.SaveToJsonFile<AppConfig>(path, appConfig);
await Functions.SaveToJsonFile<AppConfig>(path, appConfig!);
}
public static async Task LoadConfig()
@@ -72,15 +71,15 @@ namespace PluginManager
if (File.Exists(path))
{
appConfig = await Functions.ConvertFromJson<AppConfig>(path);
Functions.WriteLogFile($"Loaded {appConfig.ApplicationVariables.Keys.Count} application variables.\nLoaded {appConfig.ProtectedKeyWords.Count} readonly variables.");
Functions.WriteLogFile($"Loaded {appConfig.ApplicationVariables!.Keys.Count} application variables.\nLoaded {appConfig.ProtectedKeyWords!.Count} readonly variables.");
}
else
appConfig = new() { ApplicationVariables = new Dictionary<string, object>(), ProtectedKeyWords = new List<string>() };
}
public static bool ContainsValue<T>(T value) => appConfig.ApplicationVariables.ContainsValue(value!);
public static bool ContainsKey(string key) => appConfig.ApplicationVariables.ContainsKey(key);
public static bool ContainsValue<T>(T value) => appConfig!.ApplicationVariables!.ContainsValue(value!);
public static bool ContainsKey(string key) => appConfig!.ApplicationVariables!.ContainsKey(key);
public static Dictionary<string, object> GetAllVariables() => new(appConfig.ApplicationVariables);
public static Dictionary<string, object> GetAllVariables() => new(appConfig!.ApplicationVariables!);
}
}