ok pagina commenti

This commit is contained in:
zaccaria.majid
2023-10-09 12:53:23 +02:00
parent 95143aa0eb
commit 6126085f9e
11 changed files with 213 additions and 23 deletions
+26
View File
@@ -2,6 +2,7 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using MP.Data.DatabaseModels;
using MP.Data.DTO;
using NLog;
using System;
using System.Collections.Generic;
@@ -355,6 +356,31 @@ namespace MP.Data.Controllers
}
return dbResult;
}
/// <summary>
/// Recupera elenco ultime fermate non frequenti
/// </summary>
/// <param name="idxMacchina"></param>
/// <param name="numGg"></param>
/// <param name="durataMin"></param>
/// <returns></returns>
public List<FnqDTO> FnqGetByFilt(string idxMacchina, int numGg, int durataMin)
{
List<FnqDTO> dbResult = new List<FnqDTO>();
using (var dbCtx = new MoonProContext(_configuration))
{
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
var NumGg = new SqlParameter("@gg", numGg);
var DurataMin = new SqlParameter("@durataMin", durataMin);
dbResult = dbCtx
.DbSetFnq
.FromSqlRaw("exec dbo.stp_FNQ_getFilt @IdxMacchina, @gg, @durataMin", IdxMacchina, NumGg, DurataMin)
.AsNoTracking()
.AsEnumerable()
.ToList();
}
return dbResult;
}
/// <summary>
+19
View File
@@ -0,0 +1,19 @@
using System;
using System.ComponentModel.DataAnnotations;
namespace MP.Data.DTO
{
public class FnqDTO
{
[Key]
public string IdxMacchina { get; set; } = "";
public DateTime InizioStato { get; set; } = DateTime.Now;
public string Macchina { get; set; } = "";
public int IdxStato { get; set; } = 0;
public string Stato { get; set; } = "";
public string Semaforo { get; set; } = "";
public double DurataMinuti { get; set; } = 0;
public string Value { get; set; } = "";
public string CodArticolo { get; set; } = "";
}
}
+2
View File
@@ -3,6 +3,7 @@ using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.Extensions.Configuration;
using MP.Data.DatabaseModels;
using MP.Data.DTO;
using NLog;
#nullable disable
@@ -56,6 +57,7 @@ namespace MP.Data
public virtual DbSet<PzProdModel> DbSetPzProd { get; set; }
public virtual DbSet<EventListModel> DbSetEvList { get; set; }
public virtual DbSet<DiarioDiBordoModel> DbSetDDB { get; set; }
public virtual DbSet<FnqDTO> DbSetFnq { get; set; }
public virtual DbSet<VocabolarioModel> DbSetVocabolario { get; set; }
public virtual DbSet<AnagOperatoriModel> DbOperatori { get; set; }
public virtual DbSet<Gruppi2OperModel> DbSetGrp2Oper { get; set; }
+40
View File
@@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using MP.Data.DatabaseModels;
using MP.Data.DTO;
using MP.Data.Objects;
using Newtonsoft.Json;
using NLog;
@@ -217,6 +218,45 @@ namespace MP.Data.Services
return result;
}
/// <summary>
/// Recupera elenco ultime fermate non frequenti
/// </summary>
/// <param name="idxMacchina"></param>
/// <param name="numGg"></param>
/// <param name="durataMin"></param>
/// <returns></returns>
public async Task<List<FnqDTO>> FnqGetByFilt(string idxMacchina, int numGg, int durataMin)
{
// setup parametri costanti
string source = "DB";
Stopwatch sw = new Stopwatch();
sw.Start();
List<FnqDTO> result = new List<FnqDTO>();
// cerco in redis...
string currKey = $"{redisBaseKey}:FNQ:{idxMacchina}:{numGg}:{durataMin}";
RedisValue rawData = await redisDb.StringGetAsync(currKey);
//if (!string.IsNullOrEmpty($"{rawData}"))
if (rawData.HasValue)
{
result = JsonConvert.DeserializeObject<List<FnqDTO>>($"{rawData}");
source = "REDIS";
}
else
{
result = dbTabController.FnqGetByFilt(idxMacchina, numGg, durataMin);
// serializzp e salvo...
rawData = JsonConvert.SerializeObject(result);
await redisDb.StringSetAsync(currKey, rawData, FastCache);
}
if (result == null)
{
result = new List<FnqDTO>();
}
sw.Stop();
Log.Debug($"FnqGetByFilt | {source} | {sw.Elapsed.TotalMilliseconds}ms");
return result;
}
/// <summary>
/// Effettua conferma prod macchina dell'intero periodo da confermare (ultima conferma
/// --&gt; dtEvent)