This commit is contained in:
Nguyen Dinh Thuan
2024-09-17 08:26:12 +07:00
parent c1268760b2
commit b3ad51909d
3 changed files with 52 additions and 39 deletions
+49 -39
View File
@@ -392,46 +392,9 @@ namespace SafeBagDE70
AppData.DeviceStatus.DeviceTime = DateTime.Now;
APIModels.SendHealthCheck(AppData.DeviceStatus);
}
if (countSensorTimer % 1800 == 0)
if (countSensorTimer % 300 == 0)
{
if (!AppData.IsInTransaction)
{
Task.Run(async () =>
{
try
{
using (var context = new CDMDbContext())
{
var startTime = DateTime.Now.Date.AddDays(-2).Date;
var unsentHist = context.Histories
.Where(x => x.DepositTime >= startTime)
.Where(x => ((x.IsSent == null || x.IsSent == false)))
.ToList();
foreach(var item in unsentHist)
{
var data2Send = JsonConvert.DeserializeObject<CountingData2Send>(item.Data);
var bResult = await APIModels.SendCountingData(data2Send);
if (bResult)
{
item.IsSent = true;
context.Update(item);
context.SaveChanges();
Log.Information("Resend: " + item.Data + " successfully");
}
else
{
Log.Error("Resend: " + item.Data + " failed");
}
}
}
}
catch (Exception ex)
{
Log.Fatal(ex,"Resend failed");
}
});
}
ResenData();
}
countSensorTimer++;
sensorTimer.IsEnabled = false;
@@ -444,6 +407,53 @@ namespace SafeBagDE70
}
sensorTimer.IsEnabled = true;
}
static Task? resendTask=null;
private static void ResenData()
{
if (!AppData.IsInTransaction && AppData.IsInternetOk)
{
if(resendTask==null || resendTask.IsCompleted)
{
resendTask = Task.Run(async () =>
{
try
{
using (var context = new CDMDbContext())
{
var startTime = DateTime.Now.Date.AddDays(-2).Date;
var unsentHist = context.Histories
.Where(x => x.DepositTime >= startTime)
.Where(x => ((x.IsSent == null || x.IsSent == false)))
.ToList();
foreach (var item in unsentHist)
{
var data2Send = JsonConvert.DeserializeObject<CountingData2Send>(item.Data);
var bResult = await APIModels.SendCountingData(data2Send);
if (bResult)
{
item.IsSent = true;
context.Update(item);
context.SaveChanges();
Log.Information("Resend: " + item.Data + " successfully");
}
else
{
Log.Error("Resend: " + item.Data + " failed");
}
}
}
}
catch (Exception ex)
{
Log.Fatal(ex, "Resend failed");
}
});
}
}
}
Stopwatch watch = new Stopwatch();
private void GetSensorValue()
{