Fix selezione period e ODL x controlli

This commit is contained in:
Samuele Locatelli
2023-10-16 14:37:58 +02:00
parent 91324095c4
commit b2c9fac4ca
21 changed files with 303 additions and 41 deletions
+23
View File
@@ -1042,6 +1042,29 @@ namespace MP.Data.Controllers
return answ;
}
/// <summary>
/// Elenco ultimi ODL x macchina
/// </summary>
/// <param name="idxMacchina">Macchina</param>
/// <param name="numRec"></param>
/// <returns></returns>
public List<vSelOdlModel> VSOdlGetLastByMacc(string idxMacchina, int numRec)
{
List<vSelOdlModel> dbResult = new List<vSelOdlModel>();
using (var dbCtx = new MoonProContext(_configuration))
{
var IdxMacc = new SqlParameter("@IdxMacchina", idxMacchina);
var NumRec = new SqlParameter("@numRec", numRec);
dbResult = dbCtx
.DbSetVSODL
.FromSqlRaw("EXEC stp_vsODL_getLastByMacc @IdxMacchina, @numRec", IdxMacc, NumRec)
.AsNoTracking()
.ToList();
}
return dbResult;
}
#endregion Public Methods
#region Private Fields
+19
View File
@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
#nullable disable
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace MP.Data.DatabaseModels
{
public partial class vSelOdlModel
{
[Key]
public int value { get; set; } = 0;
public string label { get; set; } = "";
public DateTime conditio { get; set; } = DateTime.Now;
}
}
+10 -2
View File
@@ -84,12 +84,14 @@ namespace MP.Data
public virtual DbSet<ST_Template> DbSetStTemplate { get; set; }
public virtual DbSet<ST_TemplateRows> DbSetStTemplateRows { get; set; }
public virtual DbSet<vSelEventiBCodeModel> DbSetVSEB { get; set; }
public virtual DbSet<CommentiModel> DbSetCommenti { get; set; }
public virtual DbSet<FermiNonQualModel> DbSetFNQ { get; set; }
public virtual DbSet<vSelEventiBCodeModel> DbSetVSEB { get; set; }
public virtual DbSet<vSelOdlModel> DbSetVSODL { get; set; }
#endregion Public Properties
#region Private Methods
@@ -544,6 +546,12 @@ namespace MP.Data
{
entity.HasKey(e => new { e.IdxMacchina, e.InizioStato });
});
modelBuilder.Entity<vSelOdlModel>(entity =>
{
//entity.HasKey(e => e.value);
entity.ToView("v_selODL");
});
OnModelCreatingPartial(modelBuilder);
}
+36
View File
@@ -1163,6 +1163,42 @@ namespace MP.Data.Services
return result;
}
/// <summary>
/// Elenco ultimi ODL x macchina
/// </summary>
/// <param name="idxMacchina">Macchina</param>
/// <param name="numRec"></param>
/// <returns></returns>
public async Task<List<vSelOdlModel>> VSOdlGetLastByMacc(string idxMacchina, int numRec)
{
string source = "DB";
Stopwatch sw = new Stopwatch();
sw.Start();
List<vSelOdlModel>? result = new List<vSelOdlModel>();
// cerco in redis...
string currKey = $"{redisBaseKey}:VSODL:{idxMacchina}:{numRec}";
RedisValue rawData = await redisDb.StringGetAsync(currKey);
if (rawData.HasValue)
{
result = JsonConvert.DeserializeObject<List<vSelOdlModel>>($"{rawData}");
source = "REDIS";
}
else
{
result = await Task.FromResult(dbTabController.VSOdlGetLastByMacc(idxMacchina, numRec));
// serializzp e salvo...
rawData = JsonConvert.SerializeObject(result);
await redisDb.StringSetAsync(currKey, rawData, LongCache);
}
if (result == null)
{
result = new List<vSelOdlModel>();
}
sw.Stop();
Log.Debug($"VSOdlGetLastByMacc | {source} | {sw.Elapsed.TotalMilliseconds}ms");
return result;
}
#endregion Public Methods
#region Protected Fields