+
+
-
-
-
-
-
-
-
-
-
-
-
+
+ @if (isLoading)
+ {
+
+ }
+ else
+ {
+
+ }
diff --git a/MP.SPEC/Components/ParamsFilter.razor.cs b/MP.SPEC/Components/ParamsFilter.razor.cs
index 338e99af..7c5f8579 100644
--- a/MP.SPEC/Components/ParamsFilter.razor.cs
+++ b/MP.SPEC/Components/ParamsFilter.razor.cs
@@ -37,14 +37,17 @@ namespace MP.SPEC.Components
{
if (!SelFilter.IdxMacchina.Equals(value))
{
+ isLoading = true;
+ Task.Delay(1);
+ //StateHasChanged();
SelFilter.IdxMacchina = value;
SelFilter.CodFlux = "*";
- Task.Delay(1);
ListFlux = MDService.ParametriGetFilt(selMacchina).Result;
Task.Delay(1);
StateHasChanged();
Task.Delay(1);
reportChange();
+ isLoading = false;
}
}
}
@@ -79,6 +82,8 @@ namespace MP.SPEC.Components
}
+ private bool isLoading = false;
+
private List
? ListFlux;
private List? ListMacchine;
diff --git a/MP.SPEC/Data/MpDataService.cs b/MP.SPEC/Data/MpDataService.cs
index 7b12dfe0..080ca3ac 100644
--- a/MP.SPEC/Data/MpDataService.cs
+++ b/MP.SPEC/Data/MpDataService.cs
@@ -391,6 +391,7 @@ namespace MP.SPEC.Data
{
return Task.FromResult(dbController.MacchineGetAll());
}
+
///
/// Elenco ID macchine con dati FluxLog gestite
///
@@ -438,9 +439,40 @@ namespace MP.SPEC.Data
///
/// * = tutte, altrimenti solo x una data macchina
///
- public Task> ParametriGetFilt(string IdxMacchina)
+ public async Task> ParametriGetFilt(string IdxMacchina)
{
- return Task.FromResult(dbController.ParametriGetFilt(IdxMacchina));
+ List? result = new List();
+ result = await Task.FromResult(dbController.ParametriGetFilt(IdxMacchina));
+#if false
+ // 2 minuti valore cache
+ int maxAgeMin = 5;
+ Stopwatch stopWatch = new Stopwatch();
+ stopWatch.Start();
+ // cerco in redis dato valore sel macchina...
+ RedisValue rawData = await redisDb.StringGetAsync($"{redisFluxByMac}:{IdxMacchina}");
+ if (!string.IsNullOrEmpty($"{rawData}"))
+ {
+ result = JsonConvert.DeserializeObject>($"{rawData}");
+ stopWatch.Stop();
+ TimeSpan ts = stopWatch.Elapsed;
+ Log.Debug($"ParametriGetFilt | Read from REDIS: {ts.TotalMilliseconds}ms");
+ }
+ else
+ {
+ result = await Task.FromResult(dbController.ParametriGetFilt(IdxMacchina));
+ // serializzp e salvo...
+ rawData = JsonConvert.SerializeObject(result);
+ await redisDb.StringSetAsync($"{redisFluxByMac}:{IdxMacchina}", rawData, TimeSpan.FromMinutes(maxAgeMin));
+ stopWatch.Stop();
+ TimeSpan ts = stopWatch.Elapsed;
+ Log.Debug($"ParametriGetFilt | Read from DB: {ts.TotalMilliseconds}ms");
+ }
+ if (result == null)
+ {
+ result = new List();
+ }
+#endif
+ return result;
}
///
@@ -499,6 +531,7 @@ namespace MP.SPEC.Data
private string redisMseKey = "MP:MON:Cache:MSE";
private string redisStatoCom = "MP:MON:Cache:StatoCom";
private string redisTipoArt = "MP:MON:Cache:TipoArt";
+ private string redisFluxByMac = "MP:MON:Cache:FluxByMac";
#endregion Private Fields