using System; using System.IO; using Newtonsoft.Json; namespace DhcpServer { internal static class AppConfigs { private const string DefaultConfigFileName = "Default.json"; public static readonly string ConfigFileDir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Configs"); public static readonly string DefaultConfigFilePath = Path.Combine(ConfigFileDir, DefaultConfigFileName); public static string GetClientEntryPath(string mac) { return Path.Combine(ConfigFileDir, mac + ".json"); } public static bool CreateDefaultClientEntryIfNoExist() { if (File.Exists(DefaultConfigFilePath)) return false; if (false == Directory.Exists(ConfigFileDir)) Directory.CreateDirectory(ConfigFileDir); File.WriteAllText(DefaultConfigFilePath, JsonConvert.SerializeObject(new ClientEntry(), Formatting.Indented)); return true; } public static ClientEntry GetDefaultClientEntry() { return File.Exists(DefaultConfigFilePath) ? JsonConvert.DeserializeObject(File.ReadAllText(DefaultConfigFilePath)) : null; } public static ClientEntry GetClientEntry(string mac) { var path = GetClientEntryPath(mac); if (File.Exists(path)) return JsonConvert.DeserializeObject(File.ReadAllText(path)); var createNew = new ClientEntry(); File.WriteAllText(path, JsonConvert.SerializeObject(new ClientEntry(), Formatting.Indented)); return createNew; } } }