Robert 1 жил өмнө
parent
commit
4a5b568e95

+ 3 - 3
EVCB_OCPP.WSServer/Message/CoreProfileHandler.cs

@@ -522,7 +522,7 @@ internal partial class ProfileHandler
 
 						if (_request.idTag != "Backend")
 						{
-							var authorization_result = await businessService.Authorize(session.ChargeBoxId, _request.idTag);
+							var authorization_result = await businessService.Authorize(session.ChargeBoxId, _request.idTag, source: Actions.StartTransaction.ToString());
 							_idTagInfo = authorization_result.IdTagInfo;
 							t1 = timer.ElapsedMilliseconds;
 
@@ -669,7 +669,7 @@ internal partial class ProfileHandler
 									expiryDate = utcNow.AddDays(1),
 									status = AuthorizationStatus.Accepted
 								} :
-								(await businessService.Authorize(session.ChargeBoxId, _request.idTag, transaction?.ConnectorId)).IdTagInfo
+								(await businessService.Authorize(session.ChargeBoxId, _request.idTag, transaction?.ConnectorId, source: Actions.StopTransaction.ToString())).IdTagInfo
 							);
 						getTagInfoTime = stopTrasactionTimer.ElapsedMilliseconds;
 
@@ -863,7 +863,7 @@ internal partial class ProfileHandler
 						};
 						if (_request.idTag != "Backend")
 						{
-							var authorization_result = await businessService.Authorize(session.ChargeBoxId, _request.idTag);
+							var authorization_result = await businessService.Authorize(session.ChargeBoxId, _request.idTag, source: Actions.Authorize.ToString());
 							confirm.idTagInfo = authorization_result.IdTagInfo;
 
 							if (confirm.idTagInfo.status == AuthorizationStatus.Accepted && authorization_result.ChargePointFee != null)

+ 1 - 1
EVCB_OCPP.WSServer/Service/BusinessServiceFactory.cs

@@ -13,7 +13,7 @@ namespace EVCB_OCPP.WSServer.Service;
 
 public interface IBusinessService
 {
-    Task<IdTokenInfo> Authorize(string chargeBoxId, string idTag, int? connectorId = null);
+    Task<IdTokenInfo> Authorize(string chargeBoxId, string idTag, int? connectorId = null, string source = null);
 
     Task NotifyFaultStatus(ErrorDetails details);
 

+ 1 - 1
EVCB_OCPP.WSServer/Service/LocalBusinessService.cs

@@ -24,7 +24,7 @@ namespace EVCB_OCPP.WSServer.Service
             _client = client;
         }
 
-        async public Task<IdTokenInfo> Authorize(string chargeBoxId, string idTag, int? connectorId = null)
+        async public Task<IdTokenInfo> Authorize(string chargeBoxId, string idTag, int? connectorId = null, string source = null)
         {
             await Task.Delay(10);
             IdTokenInfo info = new IdTokenInfo() { IdTagInfo = new IdTagInfo() { status = AuthorizationStatus.Invalid } };

+ 16 - 7
EVCB_OCPP.WSServer/Service/OuterBusinessService.cs

@@ -91,7 +91,7 @@ namespace EVCB_OCPP.WSServer.Service
         }
 
 
-        async public Task<IdTokenInfo> Authorize(string chargeBoxId, string idTag, int? connectorId = null)
+        async public Task<IdTokenInfo> Authorize(string chargeBoxId, string idTag, int? connectorId = null, string source = null)
         {
             //return new IdTokenInfo() { IdTagInfo = new IdTagInfo()
             //{
@@ -106,7 +106,7 @@ namespace EVCB_OCPP.WSServer.Service
             {
                 logger.LogInformation(chargeBoxId + " Charging Monitor======================================>");
 
-                string requestParams = idTag.StartsWith("vid:") ? await GetRequestParamsAsPnC(chargeBoxId, idTag, connectorId) : GetRequestParamsAsNormal(chargeBoxId, idTag);
+                string requestParams = idTag.StartsWith("vid:") ? await GetRequestParamsAsPnC(chargeBoxId, idTag, connectorId, source) : GetRequestParamsAsNormal(chargeBoxId, idTag, source);
 				logger.LogInformation($"{chargeBoxId} Authorize : {signMaterial.APIUrl + requestParams}");
 				HttpResult response = await httpClient.Post(signMaterial.APIUrl + requestParams, new Dictionary<string, string>()
                             {
@@ -266,7 +266,7 @@ namespace EVCB_OCPP.WSServer.Service
             return _customer;
         }
 
-        private async ValueTask<string> GetRequestParamsAsPnC(string chargeBoxId, string idTag, int? connectorId)
+        private async ValueTask<string> GetRequestParamsAsPnC(string chargeBoxId, string idTag, int? connectorId, string source)
         {
             idTag = idTag.Replace("vid:", "");
 
@@ -289,13 +289,22 @@ namespace EVCB_OCPP.WSServer.Service
                     connectorId = -1;
                 }
             }
-
-            return string.Format("charging_auth?ChargeBoxId={0}&ConnectorId={1}&IdTag={2}", chargeBoxId, connectorId, idTag);
+            var requestParamString = string.Format("charging_auth?ChargeBoxId={0}&ConnectorId={1}&IdTag={2}", chargeBoxId, connectorId, idTag);
+            if (!string.IsNullOrEmpty(source))
+            {
+                requestParamString += $"&Action={source}";
+            }
+            return requestParamString;
         }
 
-        private string GetRequestParamsAsNormal(string chargeBoxId, string idTag)
+        private string GetRequestParamsAsNormal(string chargeBoxId, string idTag, string source)
         {
-            return string.Format("charging_auth?ChargeBoxId={0}&IdTag={1}", chargeBoxId, idTag);
+            var requestParamString = string.Format("charging_auth?ChargeBoxId={0}&IdTag={1}", chargeBoxId, idTag);
+            if (!string.IsNullOrEmpty(source))
+            {
+                requestParamString += $"&Action={source}";
+            }
+            return requestParamString;
         }
 
         public Task NotifyConnectorUnplugged(string data)