ServiceStackRedisServerMessageService.cs 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. using EVCB_OCPP.DBAPI.Services.DbService;
  2. using EVCB_OCPP.Domain.Models.MainDb;
  3. namespace EVCB_OCPP.DBAPI.Services.ServerMessageServices;
  4. //public class ServiceStackRedisServerMessageService : IServerMessageService
  5. //{
  6. // private readonly IMainDbService mainDbService;
  7. // private readonly IRedisClientsManager redisClientsManager;
  8. // public ServiceStackRedisServerMessageService(
  9. // IMainDbService mainDbService,
  10. // IRedisClientsManager redisClientsManager
  11. // )
  12. // {
  13. // this.mainDbService = mainDbService;
  14. // this.redisClientsManager = redisClientsManager;
  15. // }
  16. // public async ValueTask<string> AddServerMessage(
  17. // string ChargeBoxId,
  18. // string OutAction,
  19. // string OutRequest,
  20. // string CreatedBy,
  21. // DateTime? CreatedOn = null,
  22. // string SerialNo = "",
  23. // string InMessage = "",
  24. // CancellationToken token = default)
  25. // {
  26. // if (string.IsNullOrEmpty(SerialNo))
  27. // {
  28. // SerialNo = Guid.NewGuid().ToString();
  29. // }
  30. // var _CreatedOn = CreatedOn ?? DateTime.UtcNow;
  31. // string _OutRequest = OutRequest is not null ? OutRequest : "";
  32. // var data = new ServerMessage()
  33. // {
  34. // ChargeBoxId = ChargeBoxId,
  35. // CreatedBy = CreatedBy,
  36. // CreatedOn = _CreatedOn,
  37. // OutAction = OutAction,
  38. // OutRequest = _OutRequest,
  39. // SerialNo = SerialNo,
  40. // InMessage = InMessage
  41. // };
  42. // await StoreIntoRedis(data);
  43. // return SerialNo;
  44. // }
  45. // public async ValueTask<List<ServerMessage>> GetNeedSendToClientServerMessages()
  46. // {
  47. // var allServerMessage = await GetServerMessages();
  48. // DateTime startDt = DateTime.UtcNow.AddSeconds(-30);
  49. // var seperatedServerMessage = allServerMessage.GroupBy(x => x.CreatedOn < startDt).ToDictionary(x => x.Key, x => x?.ToList());
  50. // var deprecatedServerMessage = seperatedServerMessage.GetValueOrDefault(true, null);
  51. // if (deprecatedServerMessage is not null)
  52. // {
  53. // var deprecatedServerMessageIds = deprecatedServerMessage.Select(x => x.Id);
  54. // await RemoveFromRedis(deprecatedServerMessageIds);
  55. // foreach (var servermessage in deprecatedServerMessage)
  56. // {
  57. // _ = AddServerMessageToDbAsync(servermessage);
  58. // }
  59. // }
  60. // return seperatedServerMessage.GetValueOrDefault(false, new List<ServerMessage>())!;
  61. // }
  62. // public async ValueTask<bool> SetServerMessageResponseReceived(int id, string InMessage = "", DateTime ReceivedOn = default)
  63. // {
  64. // DateTime _ReceivedOn = ReceivedOn == default ? DateTime.UtcNow : ReceivedOn;
  65. // IRedisClient redisClient = redisClientsManager.GetClient();
  66. // var redisServerMessage = redisClient.As<ServerMessage>();
  67. // var msg = redisServerMessage.GetById(id);
  68. // redisServerMessage.DeleteById(id);
  69. // redisClient.Dispose();
  70. // msg.Id = 0;
  71. // msg.InMessage = InMessage;
  72. // msg.ReceivedOn = _ReceivedOn;
  73. // var addServerMessageResult = await mainDbService.AddServerMessage(msg);
  74. // return !string.IsNullOrEmpty(addServerMessageResult);
  75. // }
  76. // public async ValueTask<bool> SetServerMessageServerHandling(int id, DateTime UpdatedOn = default)
  77. // {
  78. // DateTime _UpdatedOn = UpdatedOn == default ? DateTime.UtcNow : UpdatedOn;
  79. // IRedisClient redisClient = redisClientsManager.GetClient();
  80. // var redisServerMessage = redisClient.As<ServerMessage>();
  81. // var msg = redisServerMessage.GetById(id);
  82. // msg.UpdatedOn = _UpdatedOn;
  83. // redisServerMessage.Store(msg);
  84. // redisClient.Dispose();
  85. // return true;
  86. // }
  87. // public async ValueTask<List<ServerMessage>> GetServerMessages()
  88. // {
  89. // IRedisClient redisClient = redisClientsManager.GetClient();
  90. // var allMessages = redisClient.As<ServerMessage>().GetAll();
  91. // redisClient.Dispose();
  92. // return allMessages?.ToList();
  93. // }
  94. // public ValueTask SaveCompletedMessageToDb()
  95. // {
  96. // return ValueTask.CompletedTask;
  97. // }
  98. // private async ValueTask<int> AddServerMessageToDbAsync(ServerMessage message)
  99. // {
  100. // var memMessageId = message.Id;
  101. // var addServerMessageResult = await mainDbService.AddServerMessage(message);
  102. // if (!string.IsNullOrEmpty(addServerMessageResult))
  103. // {
  104. // return memMessageId;
  105. // }
  106. // return -1;
  107. // }
  108. // private async Task StoreIntoRedis(ServerMessage data)
  109. // {
  110. // using IRedisClient redisClient = redisClientsManager.GetClient();
  111. // var redisServerMessage = redisClient.As<ServerMessage>();
  112. // data.Id = (int)redisServerMessage.GetNextSequence();
  113. // redisServerMessage.Store(data);
  114. // }
  115. // private async Task RemoveFromRedis(int id)
  116. // {
  117. // using IRedisClient redisClient = redisClientsManager.GetClient();
  118. // var redisServerMessage = redisClient.As<ServerMessage>();
  119. // redisServerMessage.DeleteById(id);
  120. // }
  121. // private async Task RemoveFromRedis(IEnumerable<int> ids)
  122. // {
  123. // using IRedisClient redisClient = redisClientsManager.GetClient();
  124. // var redisServerMessage = redisClient.As<ServerMessage>();
  125. // redisServerMessage.DeleteByIds(ids);
  126. // }
  127. //}