AppConfigs.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using System;
  2. using System.IO;
  3. using Newtonsoft.Json;
  4. namespace DhcpServer
  5. {
  6. internal static class AppConfigs
  7. {
  8. private const string DefaultConfigFileName = "Default.json";
  9. public static readonly string ConfigFileDir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Configs");
  10. public static readonly string DefaultConfigFilePath = Path.Combine(ConfigFileDir, DefaultConfigFileName);
  11. public static string GetClientEntryPath(string mac)
  12. {
  13. return Path.Combine(ConfigFileDir, mac + ".json");
  14. }
  15. public static bool CreateDefaultClientEntryIfNoExist()
  16. {
  17. if (File.Exists(DefaultConfigFilePath)) return false;
  18. if (false == Directory.Exists(ConfigFileDir)) Directory.CreateDirectory(ConfigFileDir);
  19. File.WriteAllText(DefaultConfigFilePath, JsonConvert.SerializeObject(new ClientEntry(), Formatting.Indented));
  20. return true;
  21. }
  22. public static ClientEntry GetDefaultClientEntry()
  23. {
  24. return File.Exists(DefaultConfigFilePath)
  25. ? JsonConvert.DeserializeObject<ClientEntry>(File.ReadAllText(DefaultConfigFilePath))
  26. : null;
  27. }
  28. public static ClientEntry GetClientEntry(string mac)
  29. {
  30. var path = GetClientEntryPath(mac);
  31. if (File.Exists(path)) return JsonConvert.DeserializeObject<ClientEntry>(File.ReadAllText(path));
  32. var createNew = new ClientEntry();
  33. File.WriteAllText(path, JsonConvert.SerializeObject(new ClientEntry(), Formatting.Indented));
  34. return createNew;
  35. }
  36. }
  37. }