using EVCB_OCPP.Packet.Messages.SubTypes; using EVCB_OCPP.WSServer.Dto; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Configuration; using System.Net; using System.Threading.Tasks; namespace EVCB_OCPP.WSServer.Service { public class LocalBusinessService : IBusinessService { string customerId = string.Empty; public LocalBusinessService(string customerId) { this.customerId = customerId; } async public Task Authorize(string chargeBoxId, string idTag, int? connectorId=-1) { await Task.Delay(10); IdTokenInfo info = new IdTokenInfo() { IdTagInfo = new IdTagInfo() { status = AuthorizationStatus.Invalid } }; try { if (customerId.ToUpper() == "009E603C-79CD-4620-A2B8-D9349C0E8AD8") { info.IdTagInfo = new IdTagInfo() { status = AuthorizationStatus.Accepted }; return info; } OuterHttpClient _client = new OuterHttpClient(); string url = ConfigurationManager.AppSettings["LocalAuthAPI"]; HttpClientService service = new HttpClientService(); Dictionary postData = new Dictionary() { { "ChargeBoxId", chargeBoxId }, { "IdTag", idTag }, }; var _innerresult = await service.PostFormDataAsync(url, postData, null); if (_innerresult.StatusCode == HttpStatusCode.OK) { JObject jo = JObject.Parse(_innerresult.Response); if (jo["code"].ToString() == "1") { try { info.IdTagInfo.status = (AuthorizationStatus)Enum.Parse(typeof(AuthorizationStatus), jo["message"].ToString()); } catch (Exception) { ; } } } } catch (Exception ex) { ; } return info; } async public Task NotifyConnectorUnplugged(string chargeBoxId, string data) { await Task.Delay(10); } async public Task NotifyFaultStatus(ErrorDetails details) { await Task.Delay(10); } } }