Robert 2 жил өмнө
parent
commit
7ad1828108

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

@@ -1581,7 +1581,7 @@ namespace EVCB_OCPP.WSServer.Message
         }
 
 
-        internal MessageResult ReceivedCoreError(Actions action, string errorMsg, ClientData session, string requestId)
+        internal async Task<MessageResult> ReceivedCoreError(Actions action, string errorMsg, ClientData session, string requestId)
         {
             MessageResult result = new MessageResult() { Success = true };
 
@@ -1602,7 +1602,7 @@ namespace EVCB_OCPP.WSServer.Message
                             logger.LogDebug(string.Format("DataTransfer Error {0}: {1}", session.ChargeBoxId, requestId));
                         }
 
-                        using (var db = maindbContextFactory.CreateDbContext())
+                        using (var db = await maindbContextFactory.CreateDbContextAsync())
                         {
                             var operation = db.MachineOperateRecord.Where(x => x.SerialNo == requestId &&
                             x.ChargeBoxId == session.ChargeBoxId && x.Status == 0).FirstOrDefault();
@@ -1612,7 +1612,7 @@ namespace EVCB_OCPP.WSServer.Message
                                 operation.Status = 1;//電樁有回覆
                                 operation.EVSE_Status = (int)255;//錯誤
                                 operation.EVSE_Value = errorMsg;
-                                db.SaveChanges();
+                                await db.SaveChangesAsync();
                             }
 
                         }

+ 11 - 10
EVCB_OCPP.WSServer/Message/FirmwareManagementProfileHandler.cs

@@ -9,12 +9,13 @@ using System;
 using System.Data.Entity;
 using System.Linq;
 using Microsoft.Extensions.Logging;
+using System.Threading.Tasks;
 
 namespace EVCB_OCPP.WSServer.Message
 {
     internal partial class ProfileHandler
     {
-        internal MessageResult ExecuteFirmwareManagementRequest(Actions action, ClientData session, IRequest request)
+        internal async Task<MessageResult> ExecuteFirmwareManagementRequest(Actions action, ClientData session, IRequest request)
         {
             MessageResult result = new MessageResult() { Success = false };
             try
@@ -29,7 +30,7 @@ namespace EVCB_OCPP.WSServer.Message
                             if (_request.status == Packet.Messages.SubTypes.FirmwareStatus.Idle)
                             {
                                 string requestId = Guid.NewGuid().ToString();
-                                using (var db = maindbContextFactory.CreateDbContext())
+                                using (var db = await maindbContextFactory.CreateDbContextAsync())
                                 {
                                     var machine = db.Machine.Where(x => x.FW_AssignedVersion.HasValue == true && x.FW_AssignedVersion.HasValue
                                        && x.FW_AssignedVersion != x.FW_VersionReport && x.ChargeBoxId == session.ChargeBoxId)
@@ -76,7 +77,7 @@ namespace EVCB_OCPP.WSServer.Message
 
                                         });
 
-                                        db.SaveChanges();
+                                        await db.SaveChangesAsync();
 
                                     }
 
@@ -84,7 +85,7 @@ namespace EVCB_OCPP.WSServer.Message
                             }
                             else
                             {
-                                using (var db = maindbContextFactory.CreateDbContext())
+                                using (var db = await maindbContextFactory.CreateDbContextAsync())
                                 {
                                     var item = db.MachineOperateRecord.Where(x => x.ChargeBoxId == session.ChargeBoxId && x.RequestType == 0)
                                         .OrderByDescending(x => x.CreatedOn).FirstOrDefault();
@@ -108,7 +109,7 @@ namespace EVCB_OCPP.WSServer.Message
 
 
 
-                                    db.SaveChanges();
+                                    await db.SaveChangesAsync();
                                 }
                             }
 
@@ -147,7 +148,7 @@ namespace EVCB_OCPP.WSServer.Message
             return result;
         }
 
-        internal MessageResult ExecuteFirmwareManagementConfirm(Actions action, ClientData session, IConfirmation confirm, string requestId)
+        internal async Task<MessageResult> ExecuteFirmwareManagementConfirm(Actions action, ClientData session, IConfirmation confirm, string requestId)
         {
             MessageResult result = new MessageResult() { Success = true };
 
@@ -162,7 +163,7 @@ namespace EVCB_OCPP.WSServer.Message
                             var confirmation = confirm as GetDiagnosticsConfirmation;
                             evse_rep = confirmation.fileName;
                         }
-                        using (var db = maindbContextFactory.CreateDbContext())
+                        using (var db = await maindbContextFactory.CreateDbContextAsync())
                         {
                             var operation = db.MachineOperateRecord.Where(x => x.SerialNo == requestId &&
                             x.ChargeBoxId == session.ChargeBoxId && x.Status == 0).FirstOrDefault();
@@ -172,7 +173,7 @@ namespace EVCB_OCPP.WSServer.Message
                                 operation.Status = 1;//電樁有回覆
                                 operation.EVSE_Status = (int)1;//OK
                                 operation.EVSE_Value = string.IsNullOrEmpty(evse_rep) ? operation.EVSE_Value : evse_rep;
-                                db.SaveChanges();
+                                await db.SaveChangesAsync();
                             }
 
                         }
@@ -188,7 +189,7 @@ namespace EVCB_OCPP.WSServer.Message
         }
 
 
-        internal MessageResult ReceivedFirmwareManagementError(Actions action, string errorMsg, ClientData session, string requestId)
+        internal async Task<MessageResult> ReceivedFirmwareManagementError(Actions action, string errorMsg, ClientData session, string requestId)
         {
             MessageResult result = new MessageResult() { Success = true };
 
@@ -199,7 +200,7 @@ namespace EVCB_OCPP.WSServer.Message
                 case Actions.GetDiagnostics:
                 case Actions.DiagnosticsStatusNotification:
                     {
-                        using (var db = maindbContextFactory.CreateDbContext())
+                        using (var db = await maindbContextFactory.CreateDbContextAsync())
                         {
                             var operation = db.MachineOperateRecord.Where(x => x.SerialNo == requestId &&
                             x.ChargeBoxId == session.ChargeBoxId && x.Status == 0).FirstOrDefault();

+ 9 - 8
EVCB_OCPP.WSServer/Message/LocalAuthListManagementProfileHandler.cs

@@ -5,12 +5,13 @@ using EVCB_OCPP.Packet.Messages.LocalAuthListManagement;
 using OCPPServer.Protocol;
 using System;
 using System.Linq;
+using System.Threading.Tasks;
 
 namespace EVCB_OCPP.WSServer.Message
 {
     internal partial class ProfileHandler
     {
-        internal MessageResult ExecuteLocalAuthListManagementConfirm(Actions action, ClientData session, IConfirmation confirm, string requestId)
+        internal async Task<MessageResult> ExecuteLocalAuthListManagementConfirm(Actions action, ClientData session, IConfirmation confirm, string requestId)
         {
             MessageResult result = new MessageResult() { Success = true };
 
@@ -20,7 +21,7 @@ namespace EVCB_OCPP.WSServer.Message
                     {
                         GetLocalListVersionConfirmation _confirm = confirm as GetLocalListVersionConfirmation;
                         GetLocalListVersionRequest _request = _confirm.GetRequest() as GetLocalListVersionRequest;
-                        using (var db = maindbContextFactory.CreateDbContext())
+                        using (var db = await maindbContextFactory.CreateDbContextAsync())
                         {
                             var operation = db.MachineOperateRecord.Where(x => x.SerialNo == requestId &&
                             x.ChargeBoxId == session.ChargeBoxId && x.Status == 0).FirstOrDefault();
@@ -30,7 +31,7 @@ namespace EVCB_OCPP.WSServer.Message
                                 operation.Status = 1;//電樁有回覆
                                 operation.EVSE_Status = 1;//OK
                                 operation.EVSE_Value = _confirm.listVersion.ToString();
-                                db.SaveChanges();
+                                await db.SaveChangesAsync();
                             }
 
                         }
@@ -40,7 +41,7 @@ namespace EVCB_OCPP.WSServer.Message
                     {
                         SendLocalListConfirmation _confirm = confirm as SendLocalListConfirmation;
                         SendLocalListRequest _request = _confirm.GetRequest() as SendLocalListRequest;
-                        using (var db = maindbContextFactory.CreateDbContext())
+                        using (var db = await maindbContextFactory.CreateDbContextAsync())
                         {
                             var operation = db.MachineOperateRecord.Where(x => x.SerialNo == requestId &&
                             x.ChargeBoxId == session.ChargeBoxId && x.Status == 0).FirstOrDefault();
@@ -50,7 +51,7 @@ namespace EVCB_OCPP.WSServer.Message
                                 operation.Status = 1;//電樁有回覆
                                 operation.EVSE_Status = (int)_confirm.status;//OK     
                                 operation.EVSE_Value = _confirm.status.ToString();
-                                db.SaveChanges();
+                                await db.SaveChangesAsync();
                             }
 
                         }
@@ -66,7 +67,7 @@ namespace EVCB_OCPP.WSServer.Message
         }
 
 
-        internal MessageResult ReceivedLocalAuthListManagementError(Actions action, string errorMsg, ClientData session, string requestId)
+        internal async Task<MessageResult> ReceivedLocalAuthListManagementError(Actions action, string errorMsg, ClientData session, string requestId)
         {
             MessageResult result = new MessageResult() { Success = true };
 
@@ -75,7 +76,7 @@ namespace EVCB_OCPP.WSServer.Message
                 case Actions.SendLocalList:
                 case Actions.GetLocalListVersion:
                     {
-                        using (var db = maindbContextFactory.CreateDbContext())
+                        using (var db = await maindbContextFactory.CreateDbContextAsync())
                         {
                             var operation = db.MachineOperateRecord.Where(x => x.SerialNo == requestId &&
                             x.ChargeBoxId == session.ChargeBoxId && x.Status == 0).FirstOrDefault();
@@ -85,7 +86,7 @@ namespace EVCB_OCPP.WSServer.Message
                                 operation.Status = 1;//電樁有回覆
                                 operation.EVSE_Status = (int)255;//錯誤
                                 operation.EVSE_Value = errorMsg;
-                                db.SaveChanges();
+                                await db.SaveChangesAsync();
                             }
 
                         }

+ 7 - 6
EVCB_OCPP.WSServer/Message/RemoteTriggerHandler.cs

@@ -5,6 +5,7 @@ using EVCB_OCPP.Packet.Messages.RemoteTrigger;
 using OCPPServer.Protocol;
 using System;
 using System.Linq;
+using System.Threading.Tasks;
 
 namespace EVCB_OCPP.WSServer.Message
 {
@@ -12,7 +13,7 @@ namespace EVCB_OCPP.WSServer.Message
     {
 
 
-        internal MessageResult ExecuteRemoteTriggerConfirm(Actions action, ClientData session, IConfirmation confirm, string requestId)
+        internal async Task<MessageResult> ExecuteRemoteTriggerConfirm(Actions action, ClientData session, IConfirmation confirm, string requestId)
         {
             MessageResult result = new MessageResult() { Success = true };
 
@@ -22,7 +23,7 @@ namespace EVCB_OCPP.WSServer.Message
                     {
                         TriggerMessageConfirmation _confirm = confirm as TriggerMessageConfirmation;
                         TriggerMessageRequest _request = _confirm.GetRequest() as TriggerMessageRequest;
-                        using (var db = maindbContextFactory.CreateDbContext())
+                        using (var db = await maindbContextFactory.CreateDbContextAsync())
                         {
                             var operation = db.MachineOperateRecord.Where(x => x.SerialNo == requestId &&
                             x.ChargeBoxId == session.ChargeBoxId && x.Status == 0).FirstOrDefault();
@@ -32,7 +33,7 @@ namespace EVCB_OCPP.WSServer.Message
                                 operation.Status = 1;//電樁有回覆
                                 operation.EVSE_Status = (int)_confirm.status;//OK
                                 operation.EVSE_Value = _confirm.status.ToString();
-                                db.SaveChanges();
+                                await db.SaveChangesAsync();
                             }
 
                         }
@@ -48,7 +49,7 @@ namespace EVCB_OCPP.WSServer.Message
         }
 
 
-        internal MessageResult ReceivedRemoteTriggerError(Actions action, string errorMsg, ClientData session, string requestId)
+        internal async Task<MessageResult> ReceivedRemoteTriggerError(Actions action, string errorMsg, ClientData session, string requestId)
         {
             MessageResult result = new MessageResult() { Success = true };
 
@@ -56,7 +57,7 @@ namespace EVCB_OCPP.WSServer.Message
             {
                 case Actions.TriggerMessage:
                     {
-                        using (var db = maindbContextFactory.CreateDbContext())
+                        using (var db = await maindbContextFactory.CreateDbContextAsync())
                         {
                             var operation = db.MachineOperateRecord.Where(x => x.SerialNo == requestId &&
                             x.ChargeBoxId == session.ChargeBoxId && x.Status == 0).FirstOrDefault();
@@ -66,7 +67,7 @@ namespace EVCB_OCPP.WSServer.Message
                                 operation.Status = 1;//電樁有回覆
                                 operation.EVSE_Status = (int)255;//錯誤
                                 operation.EVSE_Value = errorMsg;
-                                db.SaveChanges();
+                                await db.SaveChangesAsync();
                             }
 
                         }

+ 11 - 10
EVCB_OCPP.WSServer/Message/ReservationProfileHandler.cs

@@ -5,6 +5,7 @@ using EVCB_OCPP.Packet.Messages.Reservation;
 using OCPPServer.Protocol;
 using System;
 using System.Linq;
+using System.Threading.Tasks;
 
 namespace EVCB_OCPP.WSServer.Message
 {
@@ -12,7 +13,7 @@ namespace EVCB_OCPP.WSServer.Message
     {
 
 
-        internal MessageResult ExecuteReservationConfirm(Actions action, ClientData session, IConfirmation confirm, string requestId)
+        internal async Task<MessageResult> ExecuteReservationConfirm(Actions action, ClientData session, IConfirmation confirm, string requestId)
         {
             MessageResult result = new MessageResult() { Success = true };
 
@@ -22,7 +23,7 @@ namespace EVCB_OCPP.WSServer.Message
                     {
                         ReserveNowConfirmation _confirm = confirm as ReserveNowConfirmation;
                         ReserveNowRequest _request = _confirm.GetRequest() as ReserveNowRequest;
-                        using (var db = maindbContextFactory.CreateDbContext())
+                        using (var db = await maindbContextFactory.CreateDbContextAsync())
                         {
                             var operation = db.MachineOperateRecord.Where(x => x.SerialNo == requestId &&
                             x.ChargeBoxId == session.ChargeBoxId && x.Status == 0).FirstOrDefault();
@@ -32,7 +33,7 @@ namespace EVCB_OCPP.WSServer.Message
                                 operation.Status = 1;//電樁有回覆
                                 operation.EVSE_Status = (int)_confirm.status;//OK
                                 operation.EVSE_Value = _confirm.status.ToString();
-                                db.SaveChanges();
+                                await db.SaveChangesAsync();
                             }
 
                         }
@@ -42,7 +43,7 @@ namespace EVCB_OCPP.WSServer.Message
                     {
                         CancelReservationConfirmation _confirm = confirm as CancelReservationConfirmation;
                         CancelReservationRequest _request = _confirm.GetRequest() as CancelReservationRequest;
-                        using (var db = maindbContextFactory.CreateDbContext())
+                        using (var db = await maindbContextFactory.CreateDbContextAsync())
                         {
                             var operation = db.MachineOperateRecord.Where(x => x.SerialNo == requestId &&
                             x.ChargeBoxId == session.ChargeBoxId && x.Status == 0).FirstOrDefault();
@@ -52,7 +53,7 @@ namespace EVCB_OCPP.WSServer.Message
                                 operation.Status = 1;//電樁有回覆
                                 operation.EVSE_Status = (int)_confirm.status;//OK
                                 operation.EVSE_Value = _confirm.status.ToString();
-                                db.SaveChanges();
+                                await db.SaveChangesAsync();
                             }
 
                         }
@@ -68,7 +69,7 @@ namespace EVCB_OCPP.WSServer.Message
         }
 
 
-        internal MessageResult ExecuteReservationError(Actions action, string errorMsg, ClientData session, string requestId)
+        internal async Task<MessageResult> ExecuteReservationError(Actions action, string errorMsg, ClientData session, string requestId)
         {
             MessageResult result = new MessageResult() { Success = true };
 
@@ -76,7 +77,7 @@ namespace EVCB_OCPP.WSServer.Message
             {
                 case Actions.ReserveNow:
                     {
-                        using (var db = maindbContextFactory.CreateDbContext())
+                        using (var db = await maindbContextFactory.CreateDbContextAsync())
                         {
                             var operation = db.MachineOperateRecord.Where(x => x.SerialNo == requestId &&
                             x.ChargeBoxId == session.ChargeBoxId && x.Status == 0).FirstOrDefault();
@@ -86,7 +87,7 @@ namespace EVCB_OCPP.WSServer.Message
                                 operation.Status = 1;//電樁有回覆
                                 operation.EVSE_Status = (int)255;//錯誤
                                 operation.EVSE_Value = errorMsg;
-                                db.SaveChanges();
+                                await db.SaveChangesAsync();
                             }
 
                         }
@@ -94,7 +95,7 @@ namespace EVCB_OCPP.WSServer.Message
                     break;
                 case Actions.CancelReservation:
                     {
-                        using (var db = maindbContextFactory.CreateDbContext())
+                        using (var db = await maindbContextFactory.CreateDbContextAsync())
                         {
                             var operation = db.MachineOperateRecord.Where(x => x.SerialNo == requestId &&
                             x.ChargeBoxId == session.ChargeBoxId && x.Status == 0).FirstOrDefault();
@@ -104,7 +105,7 @@ namespace EVCB_OCPP.WSServer.Message
                                 operation.Status = 1;//電樁有回覆
                                 operation.EVSE_Status = (int)255;//錯誤
                                 operation.EVSE_Value = errorMsg;
-                                db.SaveChanges();
+                                await db.SaveChangesAsync();
                             }
 
                         }

+ 17 - 20
EVCB_OCPP.WSServer/Message/SmartChargingProfileHandler.cs

@@ -9,6 +9,7 @@ using OCPPServer.Protocol;
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Threading.Tasks;
 
 namespace EVCB_OCPP.WSServer.Message
 {
@@ -16,9 +17,9 @@ namespace EVCB_OCPP.WSServer.Message
     {
 
 
-        internal void SetChargingProfile(string chargeBoxId, decimal value, ChargingRateUnitType unit)
+        internal async void SetChargingProfile(string chargeBoxId, decimal value, ChargingRateUnitType unit)
         {
-            using (var db = maindbContextFactory.CreateDbContext())
+            using (var db = await maindbContextFactory.CreateDbContextAsync())
             {
                 var _setProfileRequest = new SetChargingProfileRequest()
                 {
@@ -55,14 +56,14 @@ namespace EVCB_OCPP.WSServer.Message
                     InMessage = string.Empty
 
                 });
-                db.SaveChanges();
+                await db.SaveChangesAsync();
             }
         }
 
 
-        internal void ClearChargingProfile(string chargeBoxId)
+        internal async void ClearChargingProfile(string chargeBoxId)
         {
-            using (var db = maindbContextFactory.CreateDbContext())
+            using (var db = await maindbContextFactory.CreateDbContextAsync())
             {
                 var _clearProfileRequest = new ClearChargingProfileRequest()
                 {
@@ -83,15 +84,11 @@ namespace EVCB_OCPP.WSServer.Message
 
                 });
 
-                db.SaveChanges();
+                await db.SaveChangesAsync();
             }
         }
 
-
-
-
-
-        internal MessageResult ExecuteSmartChargingConfirm(Actions action, ClientData session, IConfirmation confirm, string requestId)
+        internal async Task<MessageResult> ExecuteSmartChargingConfirm(Actions action, ClientData session, IConfirmation confirm, string requestId)
         {
             MessageResult result = new MessageResult() { Success = true };
 
@@ -102,7 +99,7 @@ namespace EVCB_OCPP.WSServer.Message
                     {
                         ClearChargingProfileConfirmation _confirm = confirm as ClearChargingProfileConfirmation;
                         ClearChargingProfileRequest _request = _confirm.GetRequest() as ClearChargingProfileRequest;
-                        using (var db = maindbContextFactory.CreateDbContext())
+                        using (var db = await maindbContextFactory.CreateDbContextAsync())
                         {
                             var operation = db.MachineOperateRecord.Where(x => x.SerialNo == requestId &&
                             x.ChargeBoxId == session.ChargeBoxId && x.Status == 0).FirstOrDefault();
@@ -112,7 +109,7 @@ namespace EVCB_OCPP.WSServer.Message
                                 operation.Status = 1;//電樁有回覆
                                 operation.EVSE_Status = (int)_confirm.status;//OK
                                 operation.EVSE_Value = _confirm.status.ToString();
-                                db.SaveChanges();
+                                await db.SaveChangesAsync();
                             }
 
                         }
@@ -122,7 +119,7 @@ namespace EVCB_OCPP.WSServer.Message
                     {
                         SetChargingProfileConfirmation _confirm = confirm as SetChargingProfileConfirmation;
                         SetChargingProfileRequest _request = _confirm.GetRequest() as SetChargingProfileRequest;
-                        using (var db = maindbContextFactory.CreateDbContext())
+                        using (var db = await maindbContextFactory.CreateDbContextAsync())
                         {
                             var operation = db.MachineOperateRecord.Where(x => x.SerialNo == requestId &&
                             x.ChargeBoxId == session.ChargeBoxId && x.Status == 0).FirstOrDefault();
@@ -132,7 +129,7 @@ namespace EVCB_OCPP.WSServer.Message
                                 operation.Status = 1;//電樁有回覆
                                 operation.EVSE_Status = (int)_confirm.status;//OK
                                 operation.EVSE_Value = _confirm.status.ToString();
-                                db.SaveChanges();
+                                await db.SaveChangesAsync();
                             }
 
                         }
@@ -142,7 +139,7 @@ namespace EVCB_OCPP.WSServer.Message
                     {
                         GetCompositeScheduleConfirmation _confirm = confirm as GetCompositeScheduleConfirmation;
                         GetCompositeScheduleRequest _request = _confirm.GetRequest() as GetCompositeScheduleRequest;
-                        using (var db = maindbContextFactory.CreateDbContext())
+                        using (var db = await maindbContextFactory.CreateDbContextAsync())
                         {
                             var operation = db.MachineOperateRecord.Where(x => x.SerialNo == requestId &&
                             x.ChargeBoxId == session.ChargeBoxId && x.Status == 0).FirstOrDefault();
@@ -152,7 +149,7 @@ namespace EVCB_OCPP.WSServer.Message
                                 operation.Status = 1;//電樁有回覆
                                 operation.EVSE_Status = (int)_confirm.status;//OK
                                 operation.EVSE_Value = JsonConvert.SerializeObject(_confirm.chargingSchedule, Formatting.None);
-                                db.SaveChanges();
+                                await db.SaveChangesAsync();
                             }
 
                         }
@@ -168,7 +165,7 @@ namespace EVCB_OCPP.WSServer.Message
         }
 
 
-        internal MessageResult ReceivedSmartChargingError(Actions action, string errorMsg, ClientData session, string requestId)
+        internal async Task<MessageResult> ReceivedSmartChargingError(Actions action, string errorMsg, ClientData session, string requestId)
         {
             MessageResult result = new MessageResult() { Success = true };
 
@@ -178,7 +175,7 @@ namespace EVCB_OCPP.WSServer.Message
                 case Actions.SetChargingProfile:
                 case Actions.GetCompositeSchedule:
                     {
-                        using (var db = maindbContextFactory.CreateDbContext())
+                        using (var db = await maindbContextFactory.CreateDbContextAsync())
                         {
                             var operation = db.MachineOperateRecord.Where(x => x.SerialNo == requestId &&
                             x.ChargeBoxId == session.ChargeBoxId && x.Status == 0).FirstOrDefault();
@@ -188,7 +185,7 @@ namespace EVCB_OCPP.WSServer.Message
                                 operation.Status = 1;//電樁有回覆
                                 operation.EVSE_Status = (int)255;//錯誤
                                 operation.EVSE_Value = errorMsg;
-                                db.SaveChanges();
+                                await db.SaveChangesAsync();
                             }
 
                         }

+ 13 - 0
EVCB_OCPP.WSServer/Properties/PublishProfiles/FolderProfile.pubxml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+https://go.microsoft.com/fwlink/?LinkID=208121.
+-->
+<Project>
+  <PropertyGroup>
+    <Configuration>Release</Configuration>
+    <Platform>Any CPU</Platform>
+    <PublishDir>bin\Release\net7.0\publish\</PublishDir>
+    <PublishProtocol>FileSystem</PublishProtocol>
+    <_TargetId>Folder</_TargetId>
+  </PropertyGroup>
+</Project>

+ 43 - 43
EVCB_OCPP.WSServer/ProtalServer.cs

@@ -444,10 +444,10 @@ namespace EVCB_OCPP.WSServer
             }
         }
 
-        private void CheckVersion(string chargeBoxId)
+        private async void CheckVersion(string chargeBoxId)
         {
             if (string.IsNullOrEmpty(chargeBoxId)) return;
-            using (var db = maindbContextFactory.CreateDbContext())
+            using (var db = await maindbContextFactory.CreateDbContextAsync())
             {
                 db.ServerMessage.Add(new ServerMessage()
                 {
@@ -468,16 +468,16 @@ namespace EVCB_OCPP.WSServer
 
                 });
 
-                db.SaveChanges();
+                await db.SaveChangesAsync();
             }
 
         }
 
 
-        private void CheckEVSEConfigure(string chargeBoxId)
+        private async void CheckEVSEConfigure(string chargeBoxId)
         {
             if (string.IsNullOrEmpty(chargeBoxId)) return;
-            using (var db = maindbContextFactory.CreateDbContext())
+            using (var db = await maindbContextFactory.CreateDbContextAsync())
             {
                 db.ServerMessage.Add(new ServerMessage()
                 {
@@ -497,7 +497,7 @@ namespace EVCB_OCPP.WSServer
 
                 }); ;
 
-                db.SaveChanges();
+                await db.SaveChangesAsync();
 
             }
         }
@@ -915,7 +915,7 @@ namespace EVCB_OCPP.WSServer
                                         CheckEVSEConfigure(session.ChargeBoxId);
                                         if (session.CustomerId == new Guid("298918C0-6BB5-421A-88CC-4922F918E85E") || session.CustomerId == new Guid("9E6BFDCC-09FB-4DAB-A428-43FE507600A3"))
                                         {
-                                            using (var db = maindbContextFactory.CreateDbContext())
+                                            using (var db = await maindbContextFactory.CreateDbContextAsync())
                                             {
                                                 db.ServerMessage.Add(new ServerMessage()
                                                 {
@@ -937,7 +937,7 @@ namespace EVCB_OCPP.WSServer
                                                 });
 
 
-                                                db.SaveChanges();
+                                                await db.SaveChangesAsync();
                                             }
 
                                         }
@@ -952,7 +952,7 @@ namespace EVCB_OCPP.WSServer
                                                 session.StationLocation = string.Format("{0},{1}", stationInfo.Lat, stationInfo.Long);
                                                 session.StationName = stationInfo.ZipCode;
                                             }
-                                            using (var db = maindbContextFactory.CreateDbContext())
+                                            using (var db = await maindbContextFactory.CreateDbContextAsync())
                                             {
                                                 db.ServerMessage.Add(new ServerMessage()
                                                 {
@@ -1029,7 +1029,7 @@ namespace EVCB_OCPP.WSServer
 
                                                 }
 
-                                                db.SaveChanges();
+                                                await db.SaveChangesAsync();
 
                                             }
 
@@ -1037,7 +1037,7 @@ namespace EVCB_OCPP.WSServer
                                     }
                                     else
                                     {
-                                        using (var db = maindbContextFactory.CreateDbContext())
+                                        using (var db = await maindbContextFactory.CreateDbContextAsync())
                                         {
                                             var machine = db.Machine.Where(x => x.ChargeBoxId == session.ChargeBoxId).FirstOrDefault();
                                             if (machine != null)
@@ -1047,7 +1047,7 @@ namespace EVCB_OCPP.WSServer
                                                     session.IsAC = false;
                                                 }
                                                 machine.ConnectionType = session.Origin.Contains("https") ? 2 : 1;
-                                                db.SaveChanges();
+                                                await db.SaveChangesAsync();
                                             }
                                         }
 
@@ -1061,7 +1061,7 @@ namespace EVCB_OCPP.WSServer
 
                                     StartTransactionConfirmation confirm = (StartTransactionConfirmation)replyResult.Message;
                                     StartTransactionRequest request = (StartTransactionRequest)analysisResult.Message;
-                                    using (var db = maindbContextFactory.CreateDbContext())
+                                    using (var db = await maindbContextFactory.CreateDbContextAsync())
                                     {
                                         db.ServerMessage.Add(new ServerMessage()
                                         {
@@ -1082,7 +1082,7 @@ namespace EVCB_OCPP.WSServer
 
                                         });
 
-                                        db.SaveChanges();
+                                        await db.SaveChangesAsync();
                                     }
                                 }
                                 #endregion
@@ -1092,7 +1092,7 @@ namespace EVCB_OCPP.WSServer
                                     var authorizeRequest = (IRequest)analysisResult.Message as AuthorizeRequest;
                                     if (session.UserDisplayPrices.ContainsKey(authorizeRequest.idTag))
                                     {
-                                        using (var db = maindbContextFactory.CreateDbContext())
+                                        using (var db = await maindbContextFactory.CreateDbContextAsync())
                                         {
                                             db.ServerMessage.Add(new ServerMessage()
                                             {
@@ -1119,7 +1119,7 @@ namespace EVCB_OCPP.WSServer
 
                                             });
 
-                                            db.SaveChanges();
+                                            await db.SaveChangesAsync();
                                         }
                                     }
                                 }
@@ -1214,7 +1214,7 @@ namespace EVCB_OCPP.WSServer
                         break;
                     case "FirmwareManagement":
                         {
-                            var replyResult = profileHandler.ExecuteFirmwareManagementRequest(action, session, (IRequest)analysisResult.Message);
+                            var replyResult = await profileHandler.ExecuteFirmwareManagementRequest(action, session, (IRequest)analysisResult.Message);
                             if (replyResult.Success)
                             {
                                 string response = BasicMessageHandler.GenerateConfirmation(analysisResult.UUID, (IConfirmation)replyResult.Message);
@@ -1265,7 +1265,7 @@ namespace EVCB_OCPP.WSServer
         {
 
             BasicMessageHandler msgAnalyser = new BasicMessageHandler();
-            if (ReConfirmMessage(analysisResult))
+            if (await ReConfirmMessage(analysisResult))
             {
                 var profileName = profiles.Where(x => x.IsExisted(analysisResult.Action)).Select(x => x.Name).FirstOrDefault();
                 MessageResult confirmResult = null;
@@ -1278,27 +1278,27 @@ namespace EVCB_OCPP.WSServer
                         break;
                     case "FirmwareManagement":
                         {
-                            confirmResult = profileHandler.ExecuteFirmwareManagementConfirm(action, session, (IConfirmation)analysisResult.Message, analysisResult.RequestId);
+                            confirmResult = await profileHandler.ExecuteFirmwareManagementConfirm(action, session, (IConfirmation)analysisResult.Message, analysisResult.RequestId);
                         }
                         break;
                     case "RemoteTrigger":
                         {
-                            confirmResult = profileHandler.ExecuteRemoteTriggerConfirm(action, session, (IConfirmation)analysisResult.Message, analysisResult.RequestId);
+                            confirmResult = await profileHandler.ExecuteRemoteTriggerConfirm(action, session, (IConfirmation)analysisResult.Message, analysisResult.RequestId);
                         }
                         break;
                     case "Reservation":
                         {
-                            confirmResult = profileHandler.ExecuteReservationConfirm(action, session, (IConfirmation)analysisResult.Message, analysisResult.RequestId);
+                            confirmResult = await profileHandler.ExecuteReservationConfirm(action, session, (IConfirmation)analysisResult.Message, analysisResult.RequestId);
                         }
                         break;
                     case "LocalAuthListManagement":
                         {
-                            confirmResult = profileHandler.ExecuteLocalAuthListManagementConfirm(action, session, (IConfirmation)analysisResult.Message, analysisResult.RequestId);
+                            confirmResult = await profileHandler.ExecuteLocalAuthListManagementConfirm(action, session, (IConfirmation)analysisResult.Message, analysisResult.RequestId);
                         }
                         break;
                     case "SmartCharging":
                         {
-                            confirmResult = profileHandler.ExecuteSmartChargingConfirm(action, session, (IConfirmation)analysisResult.Message, analysisResult.RequestId);
+                            confirmResult = await profileHandler.ExecuteSmartChargingConfirm(action, session, (IConfirmation)analysisResult.Message, analysisResult.RequestId);
                         }
                         break;
                     case "Security":
@@ -1330,42 +1330,42 @@ namespace EVCB_OCPP.WSServer
             }
         }
 
-        private void ProcessErrorMessage(MessageResult analysisResult, ClientData session, Actions action)
+        private async void ProcessErrorMessage(MessageResult analysisResult, ClientData session, Actions action)
         {
             BasicMessageHandler msgAnalyser = new BasicMessageHandler();
-            if (ReConfirmMessage(analysisResult))
+            if (await ReConfirmMessage(analysisResult))
             {
                 var profileName = profiles.Where(x => x.IsExisted(analysisResult.Action)).Select(x => x.Name).FirstOrDefault();
                 switch (profileName)
                 {
                     case "Core":
                         {
-                            profileHandler.ReceivedCoreError(action, analysisResult.ReceivedErrorCode, session, analysisResult.RequestId);
+                            _ = profileHandler.ReceivedCoreError(action, analysisResult.ReceivedErrorCode, session, analysisResult.RequestId);
                         }
                         break;
                     case "FirmwareManagement":
                         {
-                            profileHandler.ReceivedFirmwareManagementError(action, analysisResult.ReceivedErrorCode, session, analysisResult.RequestId);
+                            _ = profileHandler.ReceivedFirmwareManagementError(action, analysisResult.ReceivedErrorCode, session, analysisResult.RequestId);
                         }
                         break;
                     case "RemoteTrigger":
                         {
-                            profileHandler.ReceivedRemoteTriggerError(action, analysisResult.ReceivedErrorCode, session, analysisResult.RequestId);
+                            _ = profileHandler.ReceivedRemoteTriggerError(action, analysisResult.ReceivedErrorCode, session, analysisResult.RequestId);
                         }
                         break;
                     case "Reservation":
                         {
-                            profileHandler.ExecuteReservationError(action, analysisResult.ReceivedErrorCode, session, analysisResult.RequestId);
+                            _ = profileHandler.ExecuteReservationError(action, analysisResult.ReceivedErrorCode, session, analysisResult.RequestId);
                         }
                         break;
                     case "LocalAuthListManagement":
                         {
-                            profileHandler.ReceivedLocalAuthListManagementError(action, analysisResult.ReceivedErrorCode, session, analysisResult.RequestId);
+                            _ = profileHandler.ReceivedLocalAuthListManagementError(action, analysisResult.ReceivedErrorCode, session, analysisResult.RequestId);
                         }
                         break;
                     case "SmartCharging":
                         {
-                            profileHandler.ReceivedSmartChargingError(action, analysisResult.ReceivedErrorCode, session, analysisResult.RequestId);
+                            _ = profileHandler.ReceivedSmartChargingError(action, analysisResult.ReceivedErrorCode, session, analysisResult.RequestId);
                         }
                         break;
                     default:
@@ -1429,7 +1429,7 @@ namespace EVCB_OCPP.WSServer
 
                     }
                     checkUpdateDt = DateTime.UtcNow;
-                    using (var db = maindbContextFactory.CreateDbContext())
+                    using (var db = await maindbContextFactory.CreateDbContextAsync())
                     {
                         //var needUpdateChargers = db.Machine.Where(x => x.FW_AssignedMachineVersionId.HasValue == true &&
                         //    x.FW_AssignedMachineVersionId != x.FW_VersionReport && x.Online == true)
@@ -1553,7 +1553,7 @@ namespace EVCB_OCPP.WSServer
                     RemoveConfirmMessage();
 
                     BasicMessageHandler msgAnalyser = new BasicMessageHandler();
-                    using (var db = maindbContextFactory.CreateDbContext())
+                    using (var db = await maindbContextFactory.CreateDbContextAsync())
                     {
                         DateTime startDt = DateTime.UtcNow.AddSeconds(-30);
                         DateTime dt = new DateTime(1991, 1, 1);
@@ -1707,7 +1707,7 @@ namespace EVCB_OCPP.WSServer
                         watch.Start();
                         foreach (var session in clients)
                         {
-                            using (var db = maindbContextFactory.CreateDbContext())
+                            using (var db = await maindbContextFactory.CreateDbContextAsync())
                             {
                                 var machine = new Machine() { Id = session.MachineId };
                                 if (machine != null)
@@ -1885,7 +1885,7 @@ namespace EVCB_OCPP.WSServer
                     var clients = _copyClientDic.Where(x => x.Value.CustomerId == new Guid("009E603C-79CD-4620-A2B8-D9349C0E8AD8")).
                     Select(x => new { ChargeBoxId = x.Value.ChargeBoxId, StationLocation = x.Value.StationLocation }).ToList();
 
-                    using (var db = maindbContextFactory.CreateDbContext())
+                    using (var db = await maindbContextFactory.CreateDbContextAsync())
                     {
 
                         foreach (var client in clients)
@@ -1975,7 +1975,7 @@ namespace EVCB_OCPP.WSServer
                                 {
                                     clientDic[item.Key].DisplayPrice = displayPriceText;
 
-                                    using (var db = maindbContextFactory.CreateDbContext())
+                                    using (var db = await maindbContextFactory.CreateDbContextAsync())
                                     {
                                         db.ServerMessage.Add(new ServerMessage()
                                         {
@@ -2196,7 +2196,7 @@ namespace EVCB_OCPP.WSServer
             }
         }
 
-        private bool ReConfirmMessage(MessageResult analysisResult)
+        private async Task<bool> ReConfirmMessage(MessageResult analysisResult)
         {
             bool confirmed = false;
             if (needConfirmActions.Contains(analysisResult.Action))
@@ -2214,12 +2214,12 @@ namespace EVCB_OCPP.WSServer
                     foundRequest.SentInterval = 0;
                     analysisResult.RequestId = foundRequest.RequestId;
 
-                    using (var db = maindbContextFactory.CreateDbContext())
+                    using (var db = await maindbContextFactory.CreateDbContextAsync())
                     {
                         var sc = db.ServerMessage.Where(x => x.Id == foundRequest.Id).FirstOrDefault();
                         sc.InMessage = JsonConvert.SerializeObject(analysisResult.Message, Formatting.None);
                         sc.ReceivedOn = DateTime.UtcNow;
-                        db.SaveChanges();
+                        await db.SaveChangesAsync();
                         //  Console.WriteLine(string.Format("Now:{0} ServerMessage Id:{1} ", DateTime.UtcNow.ToString("yyyy/MM/dd HH:mm:ss"), foundRequest.Id));
 
                     }
@@ -2302,11 +2302,11 @@ namespace EVCB_OCPP.WSServer
 
         }
 
-        private void WarmUpLog()
+        private async void WarmUpLog()
         {
             try
             {
-                using (var log = serviceProvider.GetService<IDbContextFactory<ConnectionLogDBContext>>().CreateDbContext())
+                using (var log = await serviceProvider.GetService<IDbContextFactory<ConnectionLogDBContext>>().CreateDbContextAsync())
                 {
                     log.MachineConnectionLog.ToList();
                 }
@@ -2319,7 +2319,7 @@ namespace EVCB_OCPP.WSServer
 
         }
 
-        private void WriteMachineLog(ClientData clientData, string data, string messageType, string errorMsg = "", bool isSent = false)
+        private async void WriteMachineLog(ClientData clientData, string data, string messageType, string errorMsg = "", bool isSent = false)
         {
             try
             {
@@ -2330,7 +2330,7 @@ namespace EVCB_OCPP.WSServer
                 {
                     logger.Fatal(clientData.Path + "]********************session ChargeBoxId null sessionId=" + clientData.SessionID);
                 }
-                using (var db = serviceProvider.GetService<IDbContextFactory<ConnectionLogDBContext>>().CreateDbContext())
+                using (var db = await serviceProvider.GetService<IDbContextFactory<ConnectionLogDBContext>>().CreateDbContextAsync())
                 {
                     string sp = "[dbo].[uspInsertMachineConnectionLog] @CreatedOn," +
                           "@ChargeBoxId,@MessageType,@Data,@Msg,@IsSent,@EVSEEndPoint,@Session";