Config.cs 3.2 KB

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