|
@@ -1,4 +1,5 @@
|
|
|
using Dapper;
|
|
|
+using Dapper.Transaction;
|
|
|
using EVCB_OCPP.TaskScheduler.Models;
|
|
|
using Microsoft.Data.SqlClient;
|
|
|
using Microsoft.Extensions.Configuration;
|
|
@@ -7,6 +8,7 @@ using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Configuration;
|
|
|
using System.Data;
|
|
|
+using System.Data.Common;
|
|
|
using System.Linq;
|
|
|
using System.Text;
|
|
|
using System.Threading.Tasks;
|
|
@@ -29,17 +31,17 @@ namespace EVCB_OCPP.TaskScheduler.Services
|
|
|
onlineDBConnectString = configuration.GetConnectionString("OnlineLogDBContext");
|
|
|
}
|
|
|
|
|
|
- internal string GetCustomerName(Guid customerId)
|
|
|
+ internal async Task<string> GetCustomerName(Guid customerId)
|
|
|
{
|
|
|
string name = string.Empty;
|
|
|
try
|
|
|
{
|
|
|
using (var dbConn = new SqlConnection(mainDBConnectString))
|
|
|
{
|
|
|
- dbConn.Open();
|
|
|
+ //dbConn.Open();
|
|
|
var parameters = new DynamicParameters();
|
|
|
- parameters.Add("@Id", customerId.ToString(), System.Data.DbType.String);
|
|
|
- name = dbConn.Query<string>("SELECT Name FROM [dbo].[Customer] where Id=@Id ", parameters).FirstOrDefault();
|
|
|
+ parameters.Add("@Id", customerId, DbType.Guid);
|
|
|
+ name = await dbConn.QueryFirstOrDefaultAsync<string>("SELECT Name FROM [dbo].[Customer] where Id=@Id ", parameters);
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -52,17 +54,17 @@ namespace EVCB_OCPP.TaskScheduler.Services
|
|
|
}
|
|
|
|
|
|
|
|
|
- internal bool IsCallParterAPI(Guid customerId)
|
|
|
+ internal async Task<bool> IsCallParterAPI(Guid customerId)
|
|
|
{
|
|
|
bool result = false;
|
|
|
try
|
|
|
{
|
|
|
using (var dbConn = new SqlConnection(mainDBConnectString))
|
|
|
{
|
|
|
- dbConn.Open();
|
|
|
+ //dbConn.Open();
|
|
|
var parameters = new DynamicParameters();
|
|
|
- parameters.Add("@Id", customerId.ToString(), System.Data.DbType.String);
|
|
|
- result = dbConn.ExecuteScalar<bool>("SELECT count(*) FROM [dbo].[Customer] where Id=@Id and CallPartnerApiOnSchedule=1 ", parameters);
|
|
|
+ parameters.Add("@Id", customerId, DbType.Guid);
|
|
|
+ result = await dbConn.ExecuteScalarAsync<bool>("SELECT count(*) FROM [dbo].[Customer] where Id=@Id and CallPartnerApiOnSchedule=1 ", parameters);
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -99,7 +101,7 @@ namespace EVCB_OCPP.TaskScheduler.Services
|
|
|
{
|
|
|
using (var dbConn = new SqlConnection(mainDBConnectString))
|
|
|
{
|
|
|
- dbConn.Open();
|
|
|
+ //dbConn.Open();
|
|
|
result = dbConn.Query<Guid>("SELECT Id FROM [dbo].[Customer] where CallPartnerApiOnSchedule=1").ToList();
|
|
|
}
|
|
|
|
|
@@ -119,7 +121,7 @@ namespace EVCB_OCPP.TaskScheduler.Services
|
|
|
{
|
|
|
using (var dbConn = new SqlConnection(mainDBConnectString))
|
|
|
{
|
|
|
- dbConn.Open();
|
|
|
+ //dbConn.Open();
|
|
|
result = dbConn.Query<Guid>("SELECT Id FROM [dbo].[Customer] where CallPartnerApiOnSchedule=1 and InstantStopTxReport=0").ToList();
|
|
|
}
|
|
|
|
|
@@ -133,16 +135,16 @@ namespace EVCB_OCPP.TaskScheduler.Services
|
|
|
}
|
|
|
|
|
|
|
|
|
- internal List<Transaction> GetNeedReportSession(Guid customerId, bool isgoing, int size)
|
|
|
+ internal async Task<List<Transaction>> GetNeedReportSession(Guid customerId, bool isgoing, int size)
|
|
|
{
|
|
|
List<Transaction> result = new List<Transaction>();
|
|
|
try
|
|
|
{
|
|
|
using (var dbConn = new SqlConnection(mainDBConnectString))
|
|
|
{
|
|
|
- dbConn.Open();
|
|
|
+ //dbConn.Open();
|
|
|
var parameters = new DynamicParameters();
|
|
|
- parameters.Add("@CustomerId", customerId.ToString(), System.Data.DbType.String);
|
|
|
+ parameters.Add("@CustomerId", customerId, DbType.Guid);
|
|
|
string sqlString = string.Empty;
|
|
|
|
|
|
// 20220211 revised
|
|
@@ -162,7 +164,7 @@ namespace EVCB_OCPP.TaskScheduler.Services
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- result = dbConn.Query<Transaction>(sqlString, parameters).ToList();
|
|
|
+ result = (await dbConn.QueryAsync<Transaction>(sqlString, parameters)).ToList();
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -181,9 +183,9 @@ namespace EVCB_OCPP.TaskScheduler.Services
|
|
|
{
|
|
|
using (var dbConn = new SqlConnection(mainDBConnectString))
|
|
|
{
|
|
|
- dbConn.Open();
|
|
|
+ //dbConn.Open();
|
|
|
var parameters = new DynamicParameters();
|
|
|
- parameters.Add("@CustomerId", customerId.ToString(), System.Data.DbType.String);
|
|
|
+ parameters.Add("@CustomerId", customerId, DbType.Guid);
|
|
|
string sqlString = string.Empty;
|
|
|
|
|
|
sqlString = "SELECT Top(" + size + ") Machine.CustomerId, record.Id, record.ChargeBoxId,record.Action,record.SerialNo,record.Status,record.EVSE_Value,record.EVSE_Status FROM[dbo].[MachineOperateRecord] record" +
|
|
@@ -191,10 +193,6 @@ namespace EVCB_OCPP.TaskScheduler.Services
|
|
|
" where Machine.CustomerId =@CustomerId and Status!= 0 and RequestType = 1 and ReportedOn = '1991/01/01'";
|
|
|
result = dbConn.Query<MachineOperateRecord>(sqlString, parameters).ToList();
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
@@ -205,30 +203,30 @@ namespace EVCB_OCPP.TaskScheduler.Services
|
|
|
}
|
|
|
|
|
|
|
|
|
- internal void ReportStartTx(Dictionary<int, TransactionResponse> reportResults)
|
|
|
+ internal async Task ReportStartTx(Dictionary<int, TransactionResponse> reportResults)
|
|
|
{
|
|
|
|
|
|
try
|
|
|
{
|
|
|
- using (var tranScope = new TransactionScope())
|
|
|
+ using (var dbConn = new SqlConnection(mainDBConnectString))
|
|
|
{
|
|
|
- using (var dbConn = new SqlConnection(mainDBConnectString))
|
|
|
+ await dbConn.OpenAsync();
|
|
|
+ using (var trans = await dbConn.BeginTransactionAsync())
|
|
|
{
|
|
|
- dbConn.Open();
|
|
|
+ //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);
|
|
|
- dbConn.Execute("UPDATE [dbo].[TransactionRecord] set StartTransactionReportedOn=@StartTransactionReportedOn, ErrorMsg=@ErrorMsg where Id=@Id", parameters);
|
|
|
+ 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);
|
|
|
}
|
|
|
|
|
|
- tranScope.Complete();
|
|
|
+ await trans.CommitAsync();
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
@@ -238,30 +236,30 @@ namespace EVCB_OCPP.TaskScheduler.Services
|
|
|
|
|
|
}
|
|
|
|
|
|
- internal void ReportStopTx(Dictionary<int, TransactionResponse> reportResults)
|
|
|
+ internal async Task ReportStopTx(Dictionary<int, TransactionResponse> reportResults)
|
|
|
{
|
|
|
|
|
|
try
|
|
|
{
|
|
|
- using (var tranScope = new TransactionScope())
|
|
|
+ using (var dbConn = new SqlConnection(mainDBConnectString))
|
|
|
{
|
|
|
- using (var dbConn = new SqlConnection(mainDBConnectString))
|
|
|
+ await dbConn.OpenAsync();
|
|
|
+ using (var trans = await dbConn.BeginTransactionAsync())
|
|
|
{
|
|
|
- dbConn.Open();
|
|
|
+ //dbConn.Open();
|
|
|
|
|
|
foreach (var kv in reportResults)
|
|
|
{
|
|
|
var parameters = new DynamicParameters();
|
|
|
parameters.Add("@Id", kv.Key, DbType.Int32, ParameterDirection.Input);
|
|
|
parameters.Add("@StopTransactionReportedOn", kv.Value.StopTransactionReportedOn, DbType.DateTime, ParameterDirection.Input);
|
|
|
- parameters.Add("@ErrorMsg", kv.Value.ErrorMsg, DbType.String, ParameterDirection.Input);
|
|
|
- dbConn.Execute("UPDATE [dbo].[TransactionRecord] set StopTransactionReportedOn=@StopTransactionReportedOn, ErrorMsg=@ErrorMsg where Id=@Id", parameters);
|
|
|
+ parameters.Add("@ErrorMsg", kv.Value.ErrorMsg, DbType.String, ParameterDirection.Input, -1);
|
|
|
+ await trans.ExecuteAsync("UPDATE [dbo].[TransactionRecord] set StopTransactionReportedOn=@StopTransactionReportedOn, ErrorMsg=@ErrorMsg where Id=@Id", parameters);
|
|
|
}
|
|
|
|
|
|
- tranScope.Complete();
|
|
|
+ await trans.CommitAsync();
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
@@ -272,15 +270,15 @@ namespace EVCB_OCPP.TaskScheduler.Services
|
|
|
}
|
|
|
|
|
|
|
|
|
- internal void TurntoTimeoutMachineOperateCommands(int intervalSeconds)
|
|
|
+ internal async Task TurntoTimeoutMachineOperateCommands(int intervalSeconds)
|
|
|
{
|
|
|
|
|
|
try
|
|
|
{
|
|
|
using (var dbConn = new SqlConnection(mainDBConnectString))
|
|
|
{
|
|
|
- dbConn.Open();
|
|
|
- dbConn.Execute("CheckUnCommitMachineOperateCommand", new { @TimeoutIntervalSeconds = intervalSeconds }, null, null, commandType: CommandType.StoredProcedure);
|
|
|
+ //dbConn.Open();
|
|
|
+ await dbConn.ExecuteAsync("CheckUnCommitMachineOperateCommand", new { @TimeoutIntervalSeconds = intervalSeconds }, null, null, commandType: CommandType.StoredProcedure);
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -292,15 +290,16 @@ namespace EVCB_OCPP.TaskScheduler.Services
|
|
|
|
|
|
}
|
|
|
|
|
|
- internal void ReportExecution(Dictionary<int, BasicResponse> reportResults)
|
|
|
+ internal async Task ReportExecution(Dictionary<int, BasicResponse> reportResults)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
- using (var tranScope = new TransactionScope())
|
|
|
+ using (var dbConn = new SqlConnection(mainDBConnectString))
|
|
|
{
|
|
|
- using (var dbConn = new SqlConnection(mainDBConnectString))
|
|
|
+ await dbConn.OpenAsync();
|
|
|
+ using (var trans = await dbConn.BeginTransactionAsync())
|
|
|
{
|
|
|
- dbConn.Open();
|
|
|
+ //dbConn.Open();
|
|
|
|
|
|
foreach (var kv in reportResults)
|
|
|
{
|
|
@@ -308,13 +307,12 @@ namespace EVCB_OCPP.TaskScheduler.Services
|
|
|
parameters.Add("@Id", kv.Key, DbType.Int32, ParameterDirection.Input);
|
|
|
parameters.Add("@ReportedOn", kv.Value.ReportedOn, DbType.DateTime, ParameterDirection.Input);
|
|
|
|
|
|
- dbConn.Execute("UPDATE [dbo].[MachineOperateRecord] set ReportedOn=@ReportedOn where Id=@Id", parameters);
|
|
|
+ await trans.ExecuteAsync("UPDATE [dbo].[MachineOperateRecord] set ReportedOn=@ReportedOn where Id=@Id", parameters);
|
|
|
}
|
|
|
|
|
|
- tranScope.Complete();
|
|
|
+ await trans.CommitAsync();
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|