LocalBusinessService.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. using EVCB_OCPP.Domain.Models.MainDb;
  2. using EVCB_OCPP.Packet.Messages.SubTypes;
  3. using EVCB_OCPP.WSServer.Dto;
  4. using Microsoft.Extensions.Configuration;
  5. using Newtonsoft.Json.Linq;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Configuration;
  9. using System.Net;
  10. using System.Threading.Tasks;
  11. namespace EVCB_OCPP.WSServer.Service.BusinessService
  12. {
  13. public class LocalBusinessService : IBusinessService
  14. {
  15. public string CustomerId { get; set; }
  16. private readonly IConfiguration configuration;
  17. private readonly HttpClientService service;
  18. private readonly OuterHttpClient _client;
  19. public LocalBusinessService(IConfiguration configuration, HttpClientService service, OuterHttpClient client)
  20. {
  21. this.configuration = configuration;
  22. this.service = service;
  23. _client = client;
  24. }
  25. async public Task<IdTokenInfo> Authorize(string chargeBoxId, string idTag, int? connectorId = null, string source = null)
  26. {
  27. await Task.Delay(10);
  28. IdTokenInfo info = new IdTokenInfo() { IdTagInfo = new IdTagInfo() { status = AuthorizationStatus.Invalid } };
  29. try
  30. {
  31. if (CustomerId.ToUpper() == "009E603C-79CD-4620-A2B8-D9349C0E8AD8")
  32. {
  33. info.IdTagInfo = new IdTagInfo() { status = AuthorizationStatus.Accepted };
  34. return info;
  35. }
  36. //OuterHttpClient _client = new OuterHttpClient();
  37. string url = configuration["LocalAuthAPI"];
  38. //HttpClientService service = new HttpClientService();
  39. Dictionary<string, string> postData = new Dictionary<string, string>()
  40. {
  41. { "ChargeBoxId", chargeBoxId },
  42. { "IdTag", idTag },
  43. };
  44. var _innerresult = await service.PostFormDataAsync(url, postData, null);
  45. if (_innerresult.StatusCode == HttpStatusCode.OK)
  46. {
  47. JObject jo = JObject.Parse(_innerresult.Response);
  48. if (jo["code"].ToString() == "1")
  49. {
  50. try
  51. {
  52. info.IdTagInfo.status = (AuthorizationStatus)Enum.Parse(typeof(AuthorizationStatus), jo["message"].ToString());
  53. }
  54. catch (Exception)
  55. {
  56. ;
  57. }
  58. }
  59. }
  60. }
  61. catch (Exception ex)
  62. {
  63. ;
  64. }
  65. return info;
  66. }
  67. async public Task NotifyConnectorUnplugged(string chargeBoxId, string data)
  68. {
  69. await Task.Delay(10);
  70. }
  71. async public Task NotifyFaultStatus(ErrorDetails details)
  72. {
  73. await Task.Delay(10);
  74. }
  75. public ValueTask<NotifyTransactionCompletedResult> NotifyTransactionCompleted(TransactionRecord tx, Dictionary<string, decimal> roundedPeriodEnergy = null)
  76. {
  77. return ValueTask.FromResult<NotifyTransactionCompletedResult>(null);
  78. }
  79. }
  80. }