ServerMessageService.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. using EVCB_OCPP.Packet.Features;
  2. using EVCB_OCPP.Packet.Messages.Core;
  3. using Microsoft.Extensions.Logging;
  4. using static System.Runtime.InteropServices.JavaScript.JSType;
  5. using System.ServiceModel.Channels;
  6. using EVCB_OCPP.WSServer.Service.DbService;
  7. using Azure;
  8. using EVCB_OCPP.WSServer.Message;
  9. using EVCB_OCPP.Packet.Messages.RemoteTrigger;
  10. using EVCB_OCPP.Packet.Messages.SubTypes;
  11. namespace EVCB_OCPP.WSServer.Service;
  12. public class ServerMessageService
  13. {
  14. public ServerMessageService(
  15. IMainDbService mainDbService
  16. , ILogger<ServerMessageService> logger)
  17. {
  18. this.mainDbService = mainDbService;
  19. this.logger = logger;
  20. }
  21. private readonly IMainDbService mainDbService;
  22. private readonly ILogger<ServerMessageService> logger;
  23. internal Task<string> SendGetEVSEConfigureRequest(string chargeBoxId, List<string> configKeys = default , string serialNo = "", CancellationToken token = default)
  24. {
  25. if (string.IsNullOrEmpty(chargeBoxId)) return null;
  26. List<string> toPassConfig = configKeys == default ? new List<string>() : configKeys;
  27. return mainDbService.AddServerMessage(
  28. ChargeBoxId: chargeBoxId,
  29. OutAction: Actions.GetConfiguration.ToString(),
  30. OutRequest: new GetConfigurationRequest() { key = toPassConfig },
  31. SerialNo: serialNo,
  32. token: token
  33. );
  34. }
  35. internal Task<string> SendChangeConfigurationRequest(string chargeBoxId, string key, string value, string serialNo = "", CancellationToken token = default)
  36. {
  37. return mainDbService.AddServerMessage(
  38. ChargeBoxId: chargeBoxId,
  39. OutAction: Actions.ChangeConfiguration.ToString(),
  40. OutRequest: new ChangeConfigurationRequest()
  41. {
  42. key = key,
  43. value = value
  44. },
  45. SerialNo: serialNo,
  46. token: token
  47. );
  48. }
  49. internal Task<string> SendDataTransferRequest(string chargeBoxId, string messageId, string vendorId, string data, string serialNo = "", CancellationToken token = default)
  50. {
  51. return mainDbService.AddServerMessage(
  52. ChargeBoxId: chargeBoxId,
  53. OutAction: Actions.DataTransfer.ToString(),
  54. OutRequest: new DataTransferRequest()
  55. {
  56. messageId = messageId,
  57. vendorId = vendorId,
  58. data = data
  59. },
  60. SerialNo: serialNo,
  61. token: token
  62. );
  63. }
  64. internal Task<string> SendTriggerMessageRequest(string chargeBoxId, MessageTrigger messageTrigger, string serialNo = "", CancellationToken token = default)
  65. {
  66. return mainDbService.AddServerMessage(
  67. ChargeBoxId: chargeBoxId,
  68. OutAction: Actions.TriggerMessage.ToString(),
  69. OutRequest: new TriggerMessageRequest()
  70. {
  71. requestedMessage = messageTrigger
  72. },
  73. SerialNo: serialNo,
  74. token: token
  75. );
  76. }
  77. }