Config.cs 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. using Newtonsoft.Json;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. namespace DeviceCenter.model
  6. {
  7. class Config
  8. {
  9. private static readonly object _lock = new object();
  10. private static Config _Instance;
  11. public string url { get; set; }
  12. public string username { get; set; }
  13. public string password { get; set; }
  14. public string token { get; set; }
  15. public List<Device> devices { get; set; }
  16. public void save()
  17. {
  18. string path = AppDomain.CurrentDomain.BaseDirectory + "config.json";
  19. File.WriteAllText(path, JsonConvert.SerializeObject(this, Formatting.Indented));
  20. }
  21. public static Config getInstance()
  22. {
  23. if (null == _Instance)
  24. {
  25. lock (_lock)
  26. {
  27. if (null == _Instance)
  28. {
  29. string path = AppDomain.CurrentDomain.BaseDirectory + "config.json";
  30. if (File.Exists(path))
  31. {
  32. Config config = JsonConvert.DeserializeObject<Config>(File.ReadAllText(path));
  33. for (int i = 0; i < config.devices.Count; i++)
  34. {
  35. Device device = new Device();
  36. if (config.devices[i].type == DeviceType.ACS)
  37. {
  38. device = new AcsDevice();
  39. }
  40. else if (config.devices[i].type == DeviceType.CAR_CAM)
  41. {
  42. device = new CarCamDevice();
  43. }
  44. device.ip = config.devices[i].ip;
  45. device.port = config.devices[i].port;
  46. device.username = config.devices[i].username;
  47. device.password = config.devices[i].password;
  48. device.name = config.devices[i].name;
  49. device.status = DeviceStatus.IDLE;
  50. device.areaId = config.devices[i].areaId;
  51. device.buildingId = config.devices[i].buildingId;
  52. device.floorId = config.devices[i].floorId;
  53. device.direction = config.devices[i].direction;
  54. config.devices[i] = device;
  55. }
  56. _Instance = config;
  57. }
  58. else
  59. {
  60. Config config = new Config();
  61. config.devices = new List<Device>();
  62. config.username = "";
  63. config.password = "";
  64. config.save();
  65. _Instance = config;
  66. }
  67. }
  68. }
  69. }
  70. return _Instance;
  71. }
  72. }
  73. }