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;