diff --git a/WebDoorCreator.API/Controllers/QueueController.cs b/WebDoorCreator.API/Controllers/QueueController.cs
index a02d448..155d356 100644
--- a/WebDoorCreator.API/Controllers/QueueController.cs
+++ b/WebDoorCreator.API/Controllers/QueueController.cs
@@ -84,6 +84,10 @@ namespace WebDoorCreator.API.Controllers
var actProc = await QDataServ.RequestProcessing();
answ.Add("processing", actProc);
+
+
+ var actDone = await QDataServ.RequestDone();
+ answ.Add("done", actProc);
return answ;
}
diff --git a/WebDoorCreator.Data/Services/QueueDataService.cs b/WebDoorCreator.Data/Services/QueueDataService.cs
index f1b214f..1823114 100644
--- a/WebDoorCreator.Data/Services/QueueDataService.cs
+++ b/WebDoorCreator.Data/Services/QueueDataService.cs
@@ -139,6 +139,33 @@ namespace WebDoorCreator.Data.Services
return fatto;
}
+ ///
+ /// Get Queue request done
+ ///
+ /// Dictionary of DoorId, saveVersNumb
+ public async Task> RequestDone()
+ {
+ string source = "REDIS";
+ long numReq = 0;
+ Dictionary dictResult = new Dictionary();
+ // cerco da cache
+ RedisKey currKey = new RedisKey(Constants.CALC_REQ_DDF_CACHE);
+ Stopwatch stopWatch = new Stopwatch();
+ stopWatch.Start();
+ numReq = redisDb.HashLength(currKey);
+ if (numReq > 0)
+ {
+ var rawData = await redisDb.HashGetAllAsync(currKey);
+ foreach (var item in rawData)
+ {
+ dictResult.Add($"{item.Name}", $"{item.Value}");
+ }
+ }
+ stopWatch.Stop();
+ TimeSpan ts = stopWatch.Elapsed;
+ Log.Debug($"RequestDone | {source} in: {ts.TotalMilliseconds} ms");
+ return dictResult;
+ }
///
/// Remove for single hash record
///
@@ -394,6 +421,15 @@ namespace WebDoorCreator.Data.Services
await RequestProcessingRemove(item.Name!);
fatto = true;
}
+ // cerco le richieste processed
+ currKey = new RedisKey(Constants.CALC_REQ_DONE);
+ rawData = await redisDb.HashGetAllAsync(currKey);
+ foreach (var item in rawData)
+ {
+ await RequestPendingUpsert(item.Name!, item.Value!);
+ await RequestDoneRemove(item.Name!);
+ fatto = true;
+ }
stopWatch.Stop();
TimeSpan ts = stopWatch.Elapsed;
Log.Debug($"ResetQueue | REDIS in: {ts.TotalMilliseconds} ms");
diff --git a/WeebDoorCreator.SDK/WDC.cs b/WeebDoorCreator.SDK/WDC.cs
index 7e8bb18..f128488 100644
--- a/WeebDoorCreator.SDK/WDC.cs
+++ b/WeebDoorCreator.SDK/WDC.cs
@@ -195,16 +195,23 @@ namespace WeebDoorCreator.SDK
// cerco online
RestClient client = new RestClient(apiUrl);
var request = new RestRequest(URL);
- var response = client.Get(request);
- // controllo status code risposta
- if (response.StatusCode == System.Net.HttpStatusCode.OK)
+ try
{
- // deserializzo risposta
- answ = response.Content;
+ var response = client.Get(request);
+ // controllo status code risposta
+ if (response.StatusCode == System.Net.HttpStatusCode.OK)
+ {
+ // deserializzo risposta
+ answ = response.Content;
+ }
+ else
+ {
+ answ = "KO";
+ }
}
- else
+ catch
{
- answ = "KO";
+ answ = "ERR";
}
// restituisco valore!
return answ;
@@ -242,7 +249,9 @@ namespace WeebDoorCreator.SDK
}
}
catch
- { }
+ {
+ answ = "ERR";
+ }
// restituisco valore!
return answ;
}
@@ -274,7 +283,9 @@ namespace WeebDoorCreator.SDK
}
}
catch
- { }
+ {
+ answ = "ERR";
+ }
// restituisco valore!
return answ;
}
@@ -305,16 +316,23 @@ namespace WeebDoorCreator.SDK
{
request.AddJsonBody(payload);
}
- var response = client.Post(request);
- // controllo status code risposta
- if (response.StatusCode == System.Net.HttpStatusCode.OK)
+ try
{
- // deserializzo risposta
- answ = response.Content;
+ var response = client.Post(request);
+ // controllo status code risposta
+ if (response.StatusCode == System.Net.HttpStatusCode.OK)
+ {
+ // deserializzo risposta
+ answ = response.Content;
+ }
+ else
+ {
+ answ = "KO";
+ }
}
- else
+ catch
{
- answ = "KO";
+ answ = "ERR";
}
// restituisco valore!
return answ;