FileConfig.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using Host.Entity;
  2. using Newtonsoft.Json;
  3. using System.Threading.Tasks;
  4. namespace Host.Common
  5. {
  6. public static class FileConfig
  7. {
  8. private static string filePath = "File/Mail.txt";
  9. private static string mqttFilePath = "File/mqtt.json";
  10. private static string rabbitFilePath = "File/rabbitmq.json";
  11. private static MailEntity mailData = null;
  12. public static async Task<MailEntity> GetMailInfoAsync()
  13. {
  14. if (mailData == null)
  15. {
  16. if (!System.IO.File.Exists(filePath)) return new MailEntity();
  17. var mail = await System.IO.File.ReadAllTextAsync(filePath);
  18. mailData = JsonConvert.DeserializeObject<MailEntity>(mail);
  19. }
  20. //深度复制,调用方修改。
  21. return JsonConvert.DeserializeObject<MailEntity>(JsonConvert.SerializeObject(mailData));
  22. }
  23. public static async Task<bool> SaveMailInfoAsync(MailEntity mailEntity)
  24. {
  25. mailData = mailEntity;
  26. await System.IO.File.WriteAllTextAsync(filePath, JsonConvert.SerializeObject(mailEntity));
  27. return true;
  28. }
  29. /// <summary>
  30. /// 保存Mqtt 配置
  31. /// </summary>
  32. /// <param name="input"></param>
  33. /// <returns></returns>
  34. public static async Task<bool> SaveMqttSetAsync(MqttOptionsEntity input)
  35. {
  36. await System.IO.File.WriteAllTextAsync(mqttFilePath, JsonConvert.SerializeObject(input));
  37. return true;
  38. }
  39. /// <summary>
  40. /// 获取Mqtt 配置
  41. /// </summary>
  42. /// <returns></returns>
  43. public static async Task<MqttOptionsEntity> GetMqttSetAsync()
  44. {
  45. if (!System.IO.File.Exists(mqttFilePath)) return new MqttOptionsEntity();
  46. var entity = await System.IO.File.ReadAllTextAsync(mqttFilePath);
  47. return JsonConvert.DeserializeObject<MqttOptionsEntity>(entity);
  48. }
  49. /// <summary>
  50. /// 保存Rabbit 配置
  51. /// </summary>
  52. /// <param name="input"></param>
  53. /// <returns></returns>
  54. public static async Task<bool> SaveRabbitSetAsync(RabbitOptionsEntity input)
  55. {
  56. await System.IO.File.WriteAllTextAsync(rabbitFilePath, JsonConvert.SerializeObject(input));
  57. return true;
  58. }
  59. /// <summary>
  60. /// 获取Rabbit 配置
  61. /// </summary>
  62. /// <returns></returns>
  63. public static async Task<RabbitOptionsEntity> GetRabbitSetAsync()
  64. {
  65. if (!System.IO.File.Exists(rabbitFilePath)) return new RabbitOptionsEntity();
  66. var entity = await System.IO.File.ReadAllTextAsync(rabbitFilePath);
  67. return JsonConvert.DeserializeObject<RabbitOptionsEntity>(entity) ?? new RabbitOptionsEntity();
  68. }
  69. }
  70. }