Merge branch 'Feature/ParameterDataMethods' into develop

This commit is contained in:
Samuele Locatelli
2022-09-14 09:26:23 +02:00
5 changed files with 147 additions and 1 deletions
+54
View File
@@ -286,6 +286,29 @@ namespace MP.Data.Controllers
return ListLinkFilt("SpecLink");
}
/// <summary>
/// Elenco ultimi n record flux log dato macchina e flusso (ordinato x data registrazione)
/// </summary>
/// <param name="IdxMacchina">* = tutte, altrimenti solo x una data macchina</param>
/// <param name="CodFlux">*=tutti, altrimenti solo selezionato</param>
/// <param name="MaxRec">numero massimo record da restituire</param>
/// <returns></returns>
public List<DatabaseModels.FluxLog> FluxLogGetLastFilt(string IdxMacchina, string CodFlux, int MaxRec)
{
List<DatabaseModels.FluxLog> dbResult = new List<DatabaseModels.FluxLog>();
using (var dbCtx = new MoonProContext(_configuration))
{
dbResult = dbCtx
.DbSetFluxLog
.AsNoTracking()
.Where(x => (IdxMacchina == "*" || x.IdxMacchina == IdxMacchina) && (CodFlux == "*" || x.CodFlux == CodFlux))
.OrderByDescending(x => x.dtEvento)
.Take(MaxRec)
.ToList();
}
return dbResult;
}
public List<DatabaseModels.LinkMenu> ListLinkFilt(string tipoLink)
{
List<DatabaseModels.LinkMenu> dbResult = new List<DatabaseModels.LinkMenu>();
@@ -403,6 +426,37 @@ namespace MP.Data.Controllers
return dbResult;
}
/// <summary>
/// Elenco parametri validi x una data macchina
/// </summary>
/// <param name="IdxMacchina"></param>
/// <returns></returns>
public List<string> ParametriGetFilt(string IdxMacchina)
{
List<string> dbResult = new List<string>();
using (var dbCtx = new MoonProContext(_configuration))
{
//var rawData = dbCtx
// .DbSetFluxLog
// .AsNoTracking()
// .Where(x => (IdxMacchina == "*" || x.IdxMacchina == IdxMacchina))
// .GroupBy(i => i.CodFlux)
// .Select(group => group.First())
// .ToList();
// dbResult = rawData
// .Select(x => x.CodFlux)
// .ToList();
dbResult = dbCtx
.DbSetFluxLog
.AsNoTracking()
.Where(x => (IdxMacchina == "*" || x.IdxMacchina == IdxMacchina))
.Select(i => i.CodFlux)
.Distinct()
.ToList();
}
return dbResult;
}
/// <summary>
/// Eliminazione Record
/// </summary>
+29
View File
@@ -0,0 +1,29 @@
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
#nullable disable
namespace MP.Data.DatabaseModels
{
[Table("FluxLog")]
public partial class FluxLog
{
#region Public Properties
[MaxLength(50)]
public string IdxMacchina { get; set; }
public DateTime dtEvento { get; set; }
[MaxLength(50)]
public string CodFlux { get; set; }
[MaxLength(250)]
public string Valore { get; set; }
public int Cnt { get; set; }
#endregion Public Properties
}
}
+7 -1
View File
@@ -44,6 +44,7 @@ namespace MP.Data
public virtual DbSet<LinkMenu> DbSetLinkMenu { get; set; }
public virtual DbSet<ODLModel> DbSetODL { get; set; }
public virtual DbSet<PODLModel> DbSetPODL { get; set; }
public virtual DbSet<FluxLog> DbSetFluxLog { get; set; }
#endregion Public Properties
@@ -285,7 +286,12 @@ namespace MP.Data
});
modelBuilder.Entity<ListValues>(entity =>
{
entity.HasKey(e => new { e.TableName, e.FieldName, e.value});
entity.HasKey(e => new { e.TableName, e.FieldName, e.value });
});
modelBuilder.Entity<FluxLog>(entity =>
{
entity.HasKey(e => new { e.IdxMacchina, e.dtEvento, e.CodFlux});
});
+26
View File
@@ -316,6 +316,18 @@ namespace MP.SPEC.Data
return Task.FromResult(dbController.ElencoLink());
}
/// <summary>
/// Elenco ultimi n record flux log dato macchina e flusso (ordinato x data registrazione)
/// </summary>
/// <param name="IdxMacchina">* = tutte, altrimenti solo x una data macchina</param>
/// <param name="CodFlux">*=tutti, altrimenti solo selezionato</param>
/// <param name="MaxRec">numero massimo record da restituire</param>
/// <returns></returns>
public Task<List<FluxLog>> FluxLogGetLastFilt(string IdxMacchina, string CodFlux, int MaxRec)
{
return Task.FromResult(dbController.FluxLogGetLastFilt(IdxMacchina, CodFlux, MaxRec));
}
/// <summary>
/// Elenco setup dei tag conf correnti
/// </summary>
@@ -365,6 +377,10 @@ namespace MP.SPEC.Data
return await Task.FromResult(dbController.ListPODLFilt(codArt, keyRichPart));
}
/// <summary>
/// Elenco di tutte le macchine gestite
/// </summary>
/// <returns></returns>
public Task<List<Macchine>> MacchineGetAll()
{
return Task.FromResult(dbController.MacchineGetAll());
@@ -403,6 +419,16 @@ namespace MP.SPEC.Data
return result;
}
/// <summary>
/// Elenco di tutti i parametri filtrati x macchina
/// </summary>
/// <param name="IdxMacchina">* = tutte, altrimenti solo x una data macchina</param>
/// <returns></returns>
public Task<List<string>> ParametriGetFilt(string IdxMacchina)
{
return Task.FromResult(dbController.ParametriGetFilt(IdxMacchina));
}
/// <summary>
/// Eliminazione record selezionato
/// </summary>
+31
View File
@@ -0,0 +1,31 @@
@page "/PARAMS"
<h3>PARAMS</h3>
<p>Appunti (eliminabili)</p>
<ul>
<li>
I parametri sono nella tabella FluxLog (in preparazione modello dati + metodi...) --> FluxLogGetLastFilt
</li>
<li>
scopo della apgina è mostrare in "quasi tempo reale" (near realtime) i parametri che si aggiornano
</li>
<li>
la pagina deve avere un card come PODL nel cui header siano mostrate elenco amchcine ed elenco parametri x mostrare tutti / solo uno (filtro)
</li>
<li>
MpDataService --> metodi per elenchi: MacchineGetAll e ParametriGetAll
</li>
<li>
il metodo principale recupera gli ultimi n record (configurabile? mostrare in alto un selettore x indicare quanti "last values" recuperare?)
</li>
<li>
il refgresh idealmente è ogni 2-5 sec (configurabile come sopra?)
</li>
</ul>
@code {
}