LocalBusinessService.cs 2.8 KB

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