|
@@ -38,6 +38,8 @@ public interface IMainDbService
|
|
|
Task<TransactionRecord> GetTransactionForStopTransaction(int transactionId, string chargeBoxId);
|
|
|
Task UpdateTransaction(int transactionId, int meterStop, DateTime stopTime, int stopReasonId, string stopReason, string stopIdTag, string receipt, int cost);
|
|
|
Task<bool> UpdateHeartBeats(IEnumerable<Machine> heartBeatsData);
|
|
|
+ Task<bool> UpdateHeartBeats(List<string> machineIds);
|
|
|
+
|
|
|
Task UpdateTransactionSOC(int id, string startsoc, string stopsoc);
|
|
|
}
|
|
|
|
|
@@ -369,6 +371,11 @@ public class MainDbService : IMainDbService
|
|
|
//return UpdateHeartBeatsEF(heartBeatsData);
|
|
|
return UpdateHeartBeatsDapper(heartBeatsData);
|
|
|
}
|
|
|
+ public Task<bool> UpdateHeartBeats(List<string> machineIds)
|
|
|
+ {
|
|
|
+ return UpdateHeartBeatsDapper(machineIds);
|
|
|
+ }
|
|
|
+
|
|
|
private void InitUpdateConnectorStatusHandler()
|
|
|
{
|
|
|
if (statusNotificationHandler is not null)
|
|
@@ -893,6 +900,29 @@ public class MainDbService : IMainDbService
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ private async Task<bool> UpdateHeartBeatsDapper(List<string> machineIds)
|
|
|
+ {
|
|
|
+ using var conn = await sqlConnectionFactory.CreateAsync();
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var parameters = new DynamicParameters();
|
|
|
+ parameters.Add("@Ids", machineIds, size: 36);
|
|
|
+ parameters.Add("@HeartbeatUpdatedOn", DateTime.UtcNow, DbType.DateTime, ParameterDirection.Input);
|
|
|
+ var resultCnt = await conn.ExecuteAsync("""
|
|
|
+ UPDATE Machine
|
|
|
+ SET HeartbeatUpdatedOn = @HeartbeatUpdatedOn
|
|
|
+ WHERE Id in @Ids
|
|
|
+ """, parameters);
|
|
|
+ }
|
|
|
+ catch (Exception e)
|
|
|
+ {
|
|
|
+ logger.LogError(e.Message);
|
|
|
+ logger.LogCritical("HeartBeatCheckTrigger update fail");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
private async Task<bool> UpdateHeartBeatsEF(IEnumerable<Machine> heartBeatsData)
|
|
|
{
|
|
|
using var db = await contextFactory.CreateDbContextAsync();
|