ServerMessageService.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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 = "")
  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. );
  33. }
  34. internal Task<string> SendChangeConfigurationRequest(string chargeBoxId, string key, string value, string serialNo = "")
  35. {
  36. return mainDbService.AddServerMessage(
  37. ChargeBoxId: chargeBoxId,
  38. OutAction: Actions.ChangeConfiguration.ToString(),
  39. OutRequest: new ChangeConfigurationRequest()
  40. {
  41. key = key,
  42. value = value
  43. },
  44. SerialNo: serialNo
  45. );
  46. }
  47. internal Task<string> SendDataTransferRequest(string chargeBoxId, string messageId, string vendorId, string data, string serialNo = "")
  48. {
  49. return mainDbService.AddServerMessage(
  50. ChargeBoxId: chargeBoxId,
  51. OutAction: Actions.DataTransfer.ToString(),
  52. OutRequest: new DataTransferRequest()
  53. {
  54. messageId = messageId,
  55. vendorId = vendorId,
  56. data = data
  57. },
  58. SerialNo: serialNo
  59. );
  60. }
  61. internal Task<string> SendTriggerMessageRequest(string chargeBoxId, MessageTrigger messageTrigger, string serialNo = "")
  62. {
  63. return mainDbService.AddServerMessage(
  64. ChargeBoxId: chargeBoxId,
  65. OutAction: Actions.TriggerMessage.ToString(),
  66. OutRequest: new TriggerMessageRequest()
  67. {
  68. requestedMessage = messageTrigger
  69. },
  70. SerialNo: serialNo
  71. );
  72. }
  73. }