1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- 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<ClientEntry>(File.ReadAllText(DefaultConfigFilePath))
- : null;
- }
- public static ClientEntry GetClientEntry(string mac)
- {
- var path = GetClientEntryPath(mac);
- if (File.Exists(path)) return JsonConvert.DeserializeObject<ClientEntry>(File.ReadAllText(path));
- var createNew = new ClientEntry();
- File.WriteAllText(path, JsonConvert.SerializeObject(new ClientEntry(), Formatting.Indented));
- return createNew;
- }
- }
- }
|