Update gestione ODL

This commit is contained in:
Samuele Locatelli
2023-11-03 15:37:29 +01:00
parent d6634e6361
commit 58130dc704
10 changed files with 188 additions and 20 deletions
+24
View File
@@ -1349,6 +1349,30 @@ namespace MP.Data.Controllers
return dbResult;
}
/// <summary>
/// Elenco prossimi ODL/PODL x macchina
/// </summary>
/// <param name="idxMacchina">Macchina</param>
/// <param name="showAll"></param>
/// <param name="numDayAdd"></param>
/// <returns></returns>
public List<vSelOdlModel> VSOdlGetUnused(string idxMacchina, bool showAll, int numDayAdd)
{
List<vSelOdlModel> dbResult = new List<vSelOdlModel>();
using (var dbCtx = new MoonProContext(_configuration))
{
var IdxMacc = new SqlParameter("@IdxMacchina", idxMacchina);
var ShowAll = new SqlParameter("@showAll", showAll);
var NumDayAdd = new SqlParameter("@numDayAdd", numDayAdd);
dbResult = dbCtx
.DbSetVSODL
.FromSqlRaw("EXEC stp_vsODL_getUnused @IdxMacchina, @showAll, @numDayAdd", IdxMacc, ShowAll, NumDayAdd)
.AsNoTracking()
.ToList();
}
return dbResult;
}
#endregion Public Methods
#region Private Fields
+1 -1
View File
@@ -14,6 +14,6 @@ namespace MP.Data.DatabaseModels
[Key]
public int value { get; set; } = 0;
public string label { get; set; } = "";
public DateTime conditio { get; set; } = DateTime.Now;
public DateTime? conditio { get; set; } = DateTime.Now;
}
}
+37
View File
@@ -1953,6 +1953,43 @@ namespace MP.Data.Services
return result;
}
/// <summary>
/// Elenco prossimi ODL/PODL x macchina
/// </summary>
/// <param name="idxMacchina">Macchina</param>
/// <param name="showAll"></param>
/// <param name="numDayAdd"></param>
/// <returns></returns>
public async Task<List<vSelOdlModel>> VSOdlGetUnused(string idxMacchina, bool showAll, int numDayAdd)
{
string source = "DB";
Stopwatch sw = new Stopwatch();
sw.Start();
List<vSelOdlModel>? result = new List<vSelOdlModel>();
// cerco in redis...
string currKey = $"{redisBaseKey}:VSODL:{idxMacchina}:ALL_{showAll}:{numDayAdd}";
RedisValue rawData = await redisDb.StringGetAsync(currKey);
if (rawData.HasValue)
{
result = JsonConvert.DeserializeObject<List<vSelOdlModel>>($"{rawData}");
source = "REDIS";
}
else
{
result = await Task.FromResult(dbTabController.VSOdlGetUnused(idxMacchina, showAll, numDayAdd));
// serializzp e salvo...
rawData = JsonConvert.SerializeObject(result);
await redisDb.StringSetAsync(currKey, rawData, LongCache);
}
if (result == null)
{
result = new List<vSelOdlModel>();
}
sw.Stop();
Log.Debug($"VSOdlGetUnused | {source} | {sw.Elapsed.TotalMilliseconds}ms");
return result;
}
#endregion Public Methods
#region Protected Fields