From 8b0b1a30033b404dfa64925b2dc196cfde7b364e Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Mon, 23 Oct 2023 19:59:25 +0200 Subject: [PATCH] Eliminato riferimenti a tab spsotata in REDIS --- MP.Data/Controllers/MpSpecController.cs | 93 +++++++++-------------- MP.Data/DatabaseModels/LogFLDedupModel.cs | 40 ---------- MP.Data/MoonProContext.cs | 5 +- 3 files changed, 38 insertions(+), 100 deletions(-) delete mode 100644 MP.Data/DatabaseModels/LogFLDedupModel.cs diff --git a/MP.Data/Controllers/MpSpecController.cs b/MP.Data/Controllers/MpSpecController.cs index 0d23400f..72f9e623 100644 --- a/MP.Data/Controllers/MpSpecController.cs +++ b/MP.Data/Controllers/MpSpecController.cs @@ -4,15 +4,12 @@ using Microsoft.Extensions.Configuration; using MP.Data.DatabaseModels; using MP.Data.DTO; using NLog; -using NLog.LayoutRenderers; using System; using System.Collections.Generic; using System.Data; using System.Diagnostics; using System.Linq; -using System.Runtime.InteropServices; using System.Threading.Tasks; -using ZXing; using static EgwCoreLib.Utils.DtUtils; namespace MP.Data.Controllers @@ -551,7 +548,9 @@ namespace MP.Data.Controllers /// /// /// - /// Restitusice list dei record statistiche raccolti (da integrare a quelli rpesenti in Redis...) + /// + /// Restitusice list dei record statistiche raccolti (da integrare a quelli rpesenti in Redis...) + /// public async Task> FluxLogDataRedux(string idxMaccSel, List fluxList, Periodo currPeriodo, Enum.ValSelection valMode, Enum.DataInterval intReq, int maxItem) { List procStats = new List(); @@ -562,12 +561,15 @@ namespace MP.Data.Controllers case Enum.DataInterval.minute: step = TimeSpan.FromMinutes(1.00 / maxItem); break; + case Enum.DataInterval.hour: step = TimeSpan.FromHours(1.00 / maxItem); break; + case Enum.DataInterval.day: step = TimeSpan.FromDays(1.00 / maxItem); break; + default: break; } @@ -592,7 +594,8 @@ namespace MP.Data.Controllers // dbContext x ogni singolo flusso using (var dbCtx = new MoonProContext(_configuration)) { - // li processo per intervallo richiesto, cercando dati nel periodo e selezionando VC + // li processo per intervallo richiesto, cercando dati nel periodo e + // selezionando VC while (!setCompleted) { // ora recupero TUTTI i dati della macchina @@ -611,7 +614,6 @@ namespace MP.Data.Controllers } List listPeriodi = new List(); - switch (valMode) { case Enum.ValSelection.First: @@ -620,12 +622,14 @@ namespace MP.Data.Controllers // salvo periodo! listPeriodi.Add(new Periodo(recStart.dtEvento, dtCursEnd)); break; + case Enum.ValSelection.Last: // recupero ultimo item var recEnd = currFlux.LastOrDefault(); // salvo periodo! listPeriodi.Add(new Periodo(dtCursStart, recEnd.dtEvento)); break; + case Enum.ValSelection.Center: int idx = 1; // per iniziare mi metto a 1/(n+1) rec come step @@ -644,6 +648,7 @@ namespace MP.Data.Controllers // aggiungo ultimo... listPeriodi.Add(new Periodo(recCent.dtEvento.AddSeconds(1), dtCursEnd)); break; + default: break; } @@ -682,6 +687,31 @@ namespace MP.Data.Controllers return procStats; } + /// + /// Elenco ultimi n record flux log dato macchina e flusso (ordinato x data registrazione) + /// + /// Data massima x eventi + /// Data minima x eventi + /// * = tutte, altrimenti solo x una data macchina + /// *=tutti, altrimenti solo selezionato + /// numero massimo record da restituire + /// + public List FluxLogGetLastFilt(DateTime DtMax, DateTime DtMin, string IdxMacchina, string CodFlux, int MaxRec) + { + List dbResult = new List(); + using (var dbCtx = new MoonProContext(_configuration)) + { + dbResult = dbCtx + .DbSetFluxLog + .AsNoTracking() + .Where(x => (x.dtEvento >= DtMin && x.dtEvento <= DtMax) && (IdxMacchina == "*" || x.IdxMacchina == IdxMacchina) && (CodFlux == "*" || x.CodFlux == CodFlux)) + .OrderByDescending(x => x.dtEvento) + .Take(MaxRec) + .ToList(); + } + return dbResult; + } + /// /// Stored manutenzione del DB /// @@ -708,62 +738,13 @@ namespace MP.Data.Controllers var dbResult = dbCtx .Database .ExecuteSqlRaw("EXEC man.stp_Utility_Maintanance"); - //.ExecuteSqlRaw("EXEC man.stp_Utility_Maintanance @FlgExec, @FlgUpdStat, @FlgSave, @min_page_count, @min_avg_fragmentation_in_percent, @max_avg_fragmentation_per_rebuild", pFlgExec, pFlgUpdStat, pFlgSave, pMinPgCnt, pMinAvgFrag, pMaxAvgFrag); + //.ExecuteSqlRaw("EXEC man.stp_Utility_Maintanance @FlgExec, @FlgUpdStat, @FlgSave, @min_page_count, @min_avg_fragmentation_in_percent, @max_avg_fragmentation_per_rebuild", pFlgExec, pFlgUpdStat, pFlgSave, pMinPgCnt, pMinAvgFrag, pMaxAvgFrag); fatto = true; } Log.Info($"FINE ForceDbMaint"); return fatto; } - /// - /// Inserimento record risultati deduplica FluxLog - /// - /// - /// - protected bool LogFLDedupInsert(List rec2ins) - { - bool fatto = false; - using (var dbCtx = new MoonProContext(_configuration)) - { - try - { - dbCtx.DbSetLogFLDedup.AddRange(rec2ins); - var res = dbCtx.SaveChanges(); - fatto = res != 0; - } - catch (Exception exc) - { - Log.Error($"Errore in fase inserimento log dedup x FL{Environment.NewLine}{exc}"); - } - } - return fatto; - } - - /// - /// Elenco ultimi n record flux log dato macchina e flusso (ordinato x data registrazione) - /// - /// Data massima x eventi - /// Data minima x eventi - /// * = tutte, altrimenti solo x una data macchina - /// *=tutti, altrimenti solo selezionato - /// numero massimo record da restituire - /// - public List FluxLogGetLastFilt(DateTime DtMax, DateTime DtMin, string IdxMacchina, string CodFlux, int MaxRec) - { - List dbResult = new List(); - using (var dbCtx = new MoonProContext(_configuration)) - { - dbResult = dbCtx - .DbSetFluxLog - .AsNoTracking() - .Where(x => (x.dtEvento >= DtMin && x.dtEvento <= DtMax) && (IdxMacchina == "*" || x.IdxMacchina == IdxMacchina) && (CodFlux == "*" || x.CodFlux == CodFlux)) - .OrderByDescending(x => x.dtEvento) - .Take(MaxRec) - .ToList(); - } - return dbResult; - } - /// /// Elenco giacenze /// diff --git a/MP.Data/DatabaseModels/LogFLDedupModel.cs b/MP.Data/DatabaseModels/LogFLDedupModel.cs deleted file mode 100644 index 4e3ffee1..00000000 --- a/MP.Data/DatabaseModels/LogFLDedupModel.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; - - -#nullable disable -// -// This is here so CodeMaid doesn't reorganize this document -// -namespace MP.Data.DatabaseModels -{ - [Table("LogFLDedup")] - public partial class LogFLDedupModel - { - #region Public Properties - - [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] - public int DedupIdx { get; set; } = 0; - - [MaxLength(50)] - public string IdxMacchina { get; set; } = ""; - - [MaxLength(50)] - public string CodFlux { get; set; } = ""; - - public DateTime DtRif { get; set; }=DateTime.Now; - - /// - /// Num record processati - /// - public int NumRec { get; set; } = 0; - - /// - /// Tempo processing (secondi) - /// - public double ProcTime { get; set; } = 1; - - #endregion Public Properties - } -} \ No newline at end of file diff --git a/MP.Data/MoonProContext.cs b/MP.Data/MoonProContext.cs index 54fd7757..43503dc5 100644 --- a/MP.Data/MoonProContext.cs +++ b/MP.Data/MoonProContext.cs @@ -89,10 +89,7 @@ namespace MP.Data public virtual DbSet DbSetStTemplateRows { get; set; } public virtual DbSet DbSetCommenti { get; set; } - public virtual DbSet DbSetFNQ { get; set; } - public virtual DbSet DbSetLogFLDedup { get; set; } - - + public virtual DbSet DbSetFNQ { get; set; } public virtual DbSet DbSetVSEB { get; set; } public virtual DbSet DbSetVSODL { get; set; }