|
@@ -37,9 +37,9 @@ namespace EVCB_OCPP.TaskScheduler.Jobs
|
|
|
|
|
|
public async Task Execute(IJobExecutionContext context)
|
|
|
{
|
|
|
- await Console.Out.WriteLineAsync(this.ToString() + " :Starting........");
|
|
|
-
|
|
|
-
|
|
|
+ logger.Debug(this.ToString() + " :Starting........");
|
|
|
+
|
|
|
+
|
|
|
List<EVSECurrentStatus> _EVSEs = GetEVSEs();
|
|
|
|
|
|
foreach (var evse in _EVSEs)
|
|
@@ -69,11 +69,12 @@ namespace EVCB_OCPP.TaskScheduler.Jobs
|
|
|
|
|
|
}
|
|
|
|
|
|
- var _picks = GetOnlineRecords(_pickDate, evse.CustomerId.ToString(), evse.ChargeBoxId, isCrossDay ? 0 : _startHour, _pickDate.Hour);
|
|
|
+ var _picks =await GetOnlineRecords(_pickDate, evse.CustomerId.ToString(), evse.ChargeBoxId, isCrossDay ? 0 : _startHour, _pickDate.Hour);
|
|
|
|
|
|
if (isCrossDay)
|
|
|
{
|
|
|
- _picks.AddRange(GetOnlineRecords(_pickDate.AddHours(-6), evse.CustomerId.ToString(), evse.ChargeBoxId, _startHour, 23));
|
|
|
+ var _picksCrossData = await GetOnlineRecords(_pickDate.AddHours(-6), evse.CustomerId.ToString(), evse.ChargeBoxId, _startHour, 23);
|
|
|
+ _picks.AddRange(_picksCrossData);
|
|
|
}
|
|
|
|
|
|
_picks = _picks.OrderBy(x => x.OnlineTime).ToList();
|
|
@@ -112,7 +113,7 @@ namespace EVCB_OCPP.TaskScheduler.Jobs
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
|
|
|
_isIgnore = _picks.Where(x => x.HourIndex == latestHeartbeatTime.Hour).ToList().Count == 0 ? false : true;
|
|
@@ -137,7 +138,7 @@ namespace EVCB_OCPP.TaskScheduler.Jobs
|
|
|
else
|
|
|
{
|
|
|
//off - on
|
|
|
-
|
|
|
+ // logger.Debug(string.Format("Chargeboxid:{0} HeartbeatUpdatedOn:{1} Online:{2}", evse.ChargeBoxId, evse.HeartbeatUpdatedOn,true));
|
|
|
UpdateEVSECurrentStatus(evse.CustomerId.ToString(), evse.ChargeBoxId, true, DefaultSetting.DefaultNullTime);
|
|
|
|
|
|
insertData.Add(new EVSEOnlineRecord()
|
|
@@ -158,12 +159,13 @@ namespace EVCB_OCPP.TaskScheduler.Jobs
|
|
|
|
|
|
if (evse.Online)
|
|
|
{
|
|
|
-
|
|
|
+ Console.WriteLine(string.Format("***** Chargeboxid:{0} HeartbeatUpdatedOn:{1} Online:{2}", evse.ChargeBoxId, evse.HeartbeatUpdatedOn, false));
|
|
|
//on -off
|
|
|
UpdateEVSECurrentStatus(evse.CustomerId.ToString(), evse.ChargeBoxId, false, evse.HeartbeatUpdatedOn);
|
|
|
|
|
|
var _pickDate = evse.HeartbeatUpdatedOn.Date;
|
|
|
- var _picks = GetOnlineRecords(_pickDate, evse.CustomerId.ToString(), evse.ChargeBoxId, _pickDate.Hour, evse.HeartbeatUpdatedOn.Hour).Where(x => x.OfflineTime == DefaultSetting.DefaultNullTime);
|
|
|
+ var _picks = await GetOnlineRecords(_pickDate, evse.CustomerId.ToString(), evse.ChargeBoxId, _pickDate.Hour, evse.HeartbeatUpdatedOn.Hour);
|
|
|
+ _picks = (List<EVSEOnlineRecord>)_picks.Where(x => x.OfflineTime == DefaultSetting.DefaultNullTime);
|
|
|
|
|
|
foreach (var item in _picks)
|
|
|
{
|
|
@@ -186,7 +188,7 @@ namespace EVCB_OCPP.TaskScheduler.Jobs
|
|
|
OfflineTime = evse.HeartbeatUpdatedOn.Hour == checkTime.Hour ? evse.HeartbeatUpdatedOn : new DateTime(checkTime.AddHours(1).Year, checkTime.AddHours(1).Month, checkTime.AddHours(1).Day, checkTime.AddHours(1).Hour, 0, 0)
|
|
|
|
|
|
});
|
|
|
- checkTime = evse.HeartbeatUpdatedOn.Hour == checkTime.Hour ? insertData.LastOrDefault().OfflineTime.AddHours(1): insertData.LastOrDefault().OfflineTime ;
|
|
|
+ checkTime = evse.HeartbeatUpdatedOn.Hour == checkTime.Hour ? insertData.LastOrDefault().OfflineTime.AddHours(1) : insertData.LastOrDefault().OfflineTime;
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -209,19 +211,19 @@ namespace EVCB_OCPP.TaskScheduler.Jobs
|
|
|
|
|
|
if ((insertData.Count + updateData.Count) % 100 == 0)
|
|
|
{
|
|
|
- UpdateOnlineRecords(updateData, insertData);
|
|
|
+ await UpdateOnlineRecords(updateData, insertData);
|
|
|
ClearCache();
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- UpdateOnlineRecords(updateData, insertData);
|
|
|
|
|
|
+ await UpdateOnlineRecords(updateData, insertData);
|
|
|
+
|
|
|
+
|
|
|
+ logger.Debug(this.ToString() + " :Finished........");
|
|
|
|
|
|
- await Console.Out.WriteLineAsync(this.ToString() + " :Finished........");
|
|
|
-
|
|
|
}
|
|
|
|
|
|
|
|
@@ -250,7 +252,7 @@ namespace EVCB_OCPP.TaskScheduler.Jobs
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
- string sqlString = string.Format("UPDATE[dbo].[Machine] SET Online=@Online {0} WHERE chargeBoxId=@chargeBoxId and customerId=@customerId", turnOn ? "" : " ,OfflineOn=@OfflineOn");
|
|
|
+ string sqlString = string.Format("UPDATE [dbo].[Machine] SET Online=@Online {0} WHERE chargeBoxId=@chargeBoxId and customerId=@customerId", turnOn ? "" : " ,OfflineOn=@OfflineOn");
|
|
|
using (var dbConn = new SqlConnection(mainDBConnectString))
|
|
|
{
|
|
|
dbConn.Open();
|
|
@@ -276,7 +278,7 @@ namespace EVCB_OCPP.TaskScheduler.Jobs
|
|
|
}
|
|
|
|
|
|
|
|
|
- private void UpdateOnlineRecords(List<EVSEOnlineRecord> updateItems, List<EVSEOnlineRecord> insertItems)
|
|
|
+ async private Task UpdateOnlineRecords(List<EVSEOnlineRecord> updateItems, List<EVSEOnlineRecord> insertItems)
|
|
|
{
|
|
|
List<EVSEOnlineRecord> records = new List<EVSEOnlineRecord>();
|
|
|
try
|
|
@@ -288,7 +290,7 @@ namespace EVCB_OCPP.TaskScheduler.Jobs
|
|
|
using (var dbConn = new SqlConnection(onlineDBConnectString))
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
- dbConn.Execute(sqlString, updateItems[i]);
|
|
|
+ await dbConn.ExecuteAsync(sqlString, updateItems[i]);
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -300,7 +302,7 @@ namespace EVCB_OCPP.TaskScheduler.Jobs
|
|
|
using (var dbConn = new SqlConnection(onlineDBConnectString))
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
- dbConn.Execute(sqlString, insertItems[i]);
|
|
|
+ await dbConn.ExecuteAsync(sqlString, insertItems[i]);
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -313,7 +315,7 @@ namespace EVCB_OCPP.TaskScheduler.Jobs
|
|
|
|
|
|
|
|
|
|
|
|
- private List<EVSEOnlineRecord> GetOnlineRecords(DateTime pickDate, string customerId, string chargeBoxId, int startHourCondition, int stopHourCondition)
|
|
|
+ async private Task<List<EVSEOnlineRecord>> GetOnlineRecords(DateTime pickDate, string customerId, string chargeBoxId, int startHourCondition, int stopHourCondition)
|
|
|
{
|
|
|
List<EVSEOnlineRecord> records = new List<EVSEOnlineRecord>();
|
|
|
try
|
|
@@ -330,7 +332,8 @@ namespace EVCB_OCPP.TaskScheduler.Jobs
|
|
|
parameters.Add("@stopHourCondition", stopHourCondition, System.Data.DbType.Int32);
|
|
|
parameters.Add("@OfflineTime", DefaultSetting.DefaultNullTime, System.Data.DbType.Date);
|
|
|
|
|
|
- records = dbConn.Query<EVSEOnlineRecord>(sqlString, parameters).ToList();
|
|
|
+ var result = await dbConn.QueryAsync<EVSEOnlineRecord>(sqlString, parameters);
|
|
|
+ records = result.ToList();
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -391,7 +394,7 @@ namespace EVCB_OCPP.TaskScheduler.Jobs
|
|
|
private bool IsOnlineNow(EVSECurrentStatus currentEVSE)
|
|
|
{
|
|
|
bool isOnline = false;
|
|
|
- var checkTime = DateTime.Now.AddSeconds(-120);
|
|
|
+ var checkTime = DateTime.UtcNow.AddSeconds(-120);
|
|
|
|
|
|
if (currentEVSE.HeartbeatUpdatedOn > checkTime)
|
|
|
{
|