|
@@ -4,11 +4,14 @@ using EVCB_OCPP.TaskScheduler.Models;
|
|
|
using Microsoft.Data.SqlClient;
|
|
|
using Microsoft.Extensions.Configuration;
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
+using Polly;
|
|
|
+using Polly.Retry;
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Configuration;
|
|
|
using System.Data;
|
|
|
using System.Data.Common;
|
|
|
+using System.Diagnostics;
|
|
|
using System.Linq;
|
|
|
using System.Text;
|
|
|
using System.Threading.Tasks;
|
|
@@ -210,21 +213,15 @@ namespace EVCB_OCPP.TaskScheduler.Services
|
|
|
{
|
|
|
using (var dbConn = new SqlConnection(mainDBConnectString))
|
|
|
{
|
|
|
- await dbConn.OpenAsync();
|
|
|
- using (var trans = await dbConn.BeginTransactionAsync())
|
|
|
+ foreach (var kv in reportResults)
|
|
|
{
|
|
|
- //dbConn.Open();
|
|
|
-
|
|
|
- foreach (var kv in reportResults)
|
|
|
- {
|
|
|
- var parameters = new DynamicParameters();
|
|
|
- parameters.Add("@Id", kv.Key, DbType.Int32, ParameterDirection.Input);
|
|
|
- parameters.Add("@StartTransactionReportedOn", kv.Value.StartTransactionReportedOn, DbType.DateTime, ParameterDirection.Input);
|
|
|
- parameters.Add("@ErrorMsg", kv.Value.ErrorMsg, DbType.String, ParameterDirection.Input, -1);
|
|
|
- await trans.ExecuteAsync("UPDATE [dbo].[TransactionRecord] set StartTransactionReportedOn=@StartTransactionReportedOn, ErrorMsg=@ErrorMsg where Id=@Id", parameters);
|
|
|
- }
|
|
|
-
|
|
|
- await trans.CommitAsync();
|
|
|
+ var parameters = new DynamicParameters();
|
|
|
+ parameters.Add("@Id", kv.Key, DbType.Int32, ParameterDirection.Input);
|
|
|
+ parameters.Add("@StartTransactionReportedOn", kv.Value.StartTransactionReportedOn, DbType.DateTime, ParameterDirection.Input);
|
|
|
+ parameters.Add("@ErrorMsg", kv.Value.ErrorMsg, DbType.String, ParameterDirection.Input, -1);
|
|
|
+ await Policy.Handle<Exception>()
|
|
|
+ .WaitAndRetryForeverAsync((cnt) => TimeSpan.FromSeconds(5))
|
|
|
+ .ExecuteAsync(() => dbConn.ExecuteAsync("UPDATE [dbo].[TransactionRecord] set StartTransactionReportedOn=@StartTransactionReportedOn, ErrorMsg=@ErrorMsg where Id=@Id", parameters));
|
|
|
}
|
|
|
}
|
|
|
}
|