diff --git a/MP.Data/Controllers/MpSpecController.cs b/MP.Data/Controllers/MpSpecController.cs
index 83e4b7f4..046f73d0 100644
--- a/MP.Data/Controllers/MpSpecController.cs
+++ b/MP.Data/Controllers/MpSpecController.cs
@@ -742,19 +742,18 @@ namespace MP.Data.Controllers
}
///
- /// Recupero Odl CORRENTE x macchina (SE c'è)
+ /// Recupero Odl CORRENTI
///
- ///
///
- public ODLModel OdlGetCurrentByMacc(string idxMacchina)
+ public List OdlGetCurrent()
{
- ODLModel dbResult = new ODLModel();
-
+ List dbResult = new List();
using (var dbCtx = new MoonProContext(_configuration))
{
dbResult = dbCtx
.DbSetODL
- .FirstOrDefault(x => x.IdxMacchina == idxMacchina && x.DataInizio != null && x.DataFine == null);
+ .Where(x => x.DataInizio != null && x.DataFine == null)
+ .ToList();
}
return dbResult;
}
diff --git a/MP.SPEC/Components/ListPODL.razor b/MP.SPEC/Components/ListPODL.razor
index dafd63f2..85641a6c 100644
--- a/MP.SPEC/Components/ListPODL.razor
+++ b/MP.SPEC/Components/ListPODL.razor
@@ -1,7 +1,7 @@
@using MP.SPEC.Components
@using MP.SPEC.Data
-@if (ListRecords == null)
+@if (ListRecords == null || isLoading)
{
}
diff --git a/MP.SPEC/Components/ListPODL.razor.cs b/MP.SPEC/Components/ListPODL.razor.cs
index 9875d2d1..c59d0875 100644
--- a/MP.SPEC/Components/ListPODL.razor.cs
+++ b/MP.SPEC/Components/ListPODL.razor.cs
@@ -13,6 +13,8 @@ namespace MP.SPEC.Components
[Parameter]
public SelectPOdlParams actFilter { get; set; } = new SelectPOdlParams();
+ private SelectPOdlParams lastFilter { get; set; } = new SelectPOdlParams();
+
[Parameter]
public EventCallback PagerResetReq { get; set; }
@@ -56,11 +58,6 @@ namespace MP.SPEC.Components
#endregion Protected Properties
-#if false
- [Inject]
- protected MessageService MsgService { get; set; } = null!;
-#endif
-
#region Protected Methods
protected async Task cloneRecord(PODLModel selRec)
@@ -119,7 +116,11 @@ namespace MP.SPEC.Components
protected override async Task OnParametersSetAsync()
{
- await reloadData();
+ if (!lastFilter.Equals(actFilter))
+ {
+ lastFilter = actFilter.clone();
+ await reloadData();
+ }
}
protected async void OnSeachUpdated()
@@ -325,17 +326,11 @@ namespace MP.SPEC.Components
///
private bool canStartOdl(string idxMacchina)
{
- var currOdl = MDService.OdlGetCurrentByMacc(idxMacchina);
- bool answ = (currOdl == null || currOdl.IdxOdl == 0);
+ var listOdlCurr = MDService.OdlGetCurrent();
+ bool answ = !listOdlCurr.Contains(idxMacchina);
return answ;
}
-
- private async void MessageService_EA_PageUpdated()
- {
- await reloadData();
- }
-
///
/// processa evento richiesto
///
diff --git a/MP.SPEC/Data/MpDataService.cs b/MP.SPEC/Data/MpDataService.cs
index e7bbcdf4..84547397 100644
--- a/MP.SPEC/Data/MpDataService.cs
+++ b/MP.SPEC/Data/MpDataService.cs
@@ -665,37 +665,42 @@ namespace MP.SPEC.Data
}
///
- /// ODL corrente x macchina
+ /// ODL correnti (tutti)
///
///
///
- public ODLModel OdlGetCurrentByMacc(string idxMacchina)
+ public List OdlGetCurrent()
{
- ODLModel dbResult = new ODLModel();
+ List dbResult = new List();
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
string readType = "DB";
- string currKey = $"{redisOdlCurrByMac}:{idxMacchina}";
+ string currKey = $"{redisOdlCurrByMac}";
// cerco in redis dato valore sel macchina...
RedisValue rawData = redisDb.StringGet(currKey);
if (rawData.HasValue)
{
- dbResult = JsonConvert.DeserializeObject($"{rawData}");
+ try
+ {
+ dbResult = JsonConvert.DeserializeObject>($"{rawData}");
+ }
+ catch
+ { }
readType = "REDIS";
}
else
{
- dbResult = dbController.OdlGetCurrentByMacc(idxMacchina);
+ dbResult = dbController.OdlGetCurrent().Select(x => x.IdxMacchina).Distinct().ToList();
rawData = JsonConvert.SerializeObject(dbResult);
redisDb.StringSet(currKey, rawData, TimeSpan.FromSeconds(3));
}
if (dbResult == null)
{
- dbResult = new ODLModel();
+ dbResult = new List();
}
stopWatch.Stop();
TimeSpan ts = stopWatch.Elapsed;
- Log.Debug($"OdlGetCurrentByMacc | Read from {readType}: {ts.TotalMilliseconds}ms");
+ Log.Debug($"OdlGetCurrent | Read from {readType}: {ts.TotalMilliseconds}ms");
return dbResult;
diff --git a/MP.SPEC/Data/SelectPOdlParams.cs b/MP.SPEC/Data/SelectPOdlParams.cs
index d0579bf5..5d6528db 100644
--- a/MP.SPEC/Data/SelectPOdlParams.cs
+++ b/MP.SPEC/Data/SelectPOdlParams.cs
@@ -1,4 +1,5 @@
using MP.Data;
+using System.Runtime.CompilerServices;
namespace MP.SPEC.Data
{
@@ -9,6 +10,21 @@ namespace MP.SPEC.Data
public SelectPOdlParams()
{ }
+ public SelectPOdlParams clone()
+ {
+ SelectPOdlParams clonedData = new SelectPOdlParams()
+ {
+ CodFase = this.CodFase,
+ CurrPage = this.CurrPage,
+ IdxMacchina = this.IdxMacchina,
+ MaxRecord = this.MaxRecord,
+ NumRec = this.NumRec,
+ SearchVal = this.SearchVal,
+ TotCount = this.TotCount
+ };
+ return clonedData;
+ }
+
#endregion Public Constructors
#region Public Properties
@@ -18,10 +34,7 @@ namespace MP.SPEC.Data
public int CurrPage { get; set; } = 1;
public int NumRec { get; set; } = 10;
public int TotCount { get; set; } = 0;
- public DateTime DtEnd { get; set; } = Utils.InitDatetime(DateTime.Now, 5);
- public DateTime DtStart { get; set; } = Utils.InitDatetime(DateTime.Now, 5).AddDays(-7);
public int MaxRecord { get; set; } = 100;
- public bool IsActive { get; set; } = true;
public string SearchVal { get; set; } = "*";
#endregion Public Properties
@@ -33,15 +46,9 @@ namespace MP.SPEC.Data
if (!(obj is SelectOdlParams item))
return false;
- if (IsActive != item.IsActive)
- return false;
-
if (CodFase != item.CodStato)
return false;
- if (IdxMacchina != item.IdxMacchina)
- return false;
-
if (MaxRecord != item.MaxRecord)
return false;
@@ -50,15 +57,12 @@ namespace MP.SPEC.Data
if (TotCount != item.TotCount)
return false;
- if (DtStart != item.DtStart)
- return false;
-
- if (DtEnd != item.DtEnd)
- return false;
-
if (CurrPage != item.CurrPage)
return false;
+ if (IdxMacchina != item.IdxMacchina)
+ return false;
+
if (SearchVal != item.SearchVal)
return false;