Completato fix pagina gestione PODL-KIT x refresh
This commit is contained in:
@@ -1312,7 +1312,7 @@ namespace MP.Data.Controllers
|
||||
var dbResult = await dbCtx
|
||||
.Database
|
||||
.ExecuteSqlRawAsync("EXEC dbo.stp_IstKit_insertByWKS @CodArtParent,@KeyFilt", pCodArtParent, pKeyFilt);
|
||||
return dbResult > 0;
|
||||
return dbResult != 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -100,11 +100,8 @@ namespace MP.SPEC.Components.ProdKit
|
||||
|
||||
// eseguo stored...
|
||||
bool fatto = await MDService.IstKitInsertByWKSAsync(currRec.CodArtParent, KeyFilt);
|
||||
if (fatto)
|
||||
{
|
||||
// segnalo update
|
||||
await EC_KitCreated.InvokeAsync(true);
|
||||
}
|
||||
// segnalo update
|
||||
await EC_KitCreated.InvokeAsync(fatto);
|
||||
}
|
||||
|
||||
private void ReloadData()
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<KitComposer SearchRecords="@listWSM" KeyFilt="@keyFilt" EC_ListUpdated="ForceReloadData" EC_ListCleared="ForceReset"></KitComposer>
|
||||
</div>
|
||||
<div class="col-6 mb-1 px-1">
|
||||
<KitVerify KeyFilt="@keyFilt" AllRecTSM="@listTSM" AllRecWSM="@listWSM" AllRecPODL="listPOdlCheck" PodlRecords="@listPOdlAct" EC_KitCreated="ForceReset"></KitVerify>
|
||||
<KitVerify KeyFilt="@keyFilt" AllRecTSM="@listTSM" AllRecWSM="@listWSM" AllRecPODL="listPOdlCheck" PodlRecords="@listPOdlAct" EC_KitCreated="ForceReloadData"></KitVerify>
|
||||
</div>
|
||||
}
|
||||
<div class="@KPColClass mb-1 px-1">
|
||||
|
||||
@@ -881,7 +881,7 @@ namespace MP.SPEC.Data
|
||||
/// Cancellazione FusionCache dato elenco tags
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> FlushCacheByTagsAsync(List<string> listTags)
|
||||
public async Task<bool> FlushCacheByTagAsync(List<string> listTags)
|
||||
{
|
||||
if (listTags == null || listTags.Count == 0) return false;
|
||||
|
||||
@@ -1152,9 +1152,8 @@ namespace MP.SPEC.Data
|
||||
{
|
||||
using var activity = ActivitySource.StartActivity("IstKitDeleteAsync");
|
||||
string source = "DB";
|
||||
bool fatto = false;
|
||||
// salvo
|
||||
fatto = await dbController.IstKitDeleteAsync(currRecord);
|
||||
bool fatto = await dbController.IstKitDeleteAsync(currRecord);
|
||||
// svuoto cache
|
||||
await FlushKitCache();
|
||||
activity?.SetTag("data.source", source);
|
||||
@@ -1163,15 +1162,6 @@ namespace MP.SPEC.Data
|
||||
return fatto;
|
||||
}
|
||||
|
||||
private async Task FlushKitCache()
|
||||
{
|
||||
#if false
|
||||
RedisValue pattern = $"{Utils.redisKitInst}:*";
|
||||
await ExecFlushRedisPatternAsync(pattern);
|
||||
#endif
|
||||
await FlushCacheByTagsAsync(new List<string>() { Utils.redisPOdlList, Utils.redisKitInst, Utils.redisKitWip, Utils.redisKitScore, Utils.redisPOdlByCodArt });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco Istanze KIT da ricerca
|
||||
/// </summary>
|
||||
@@ -1197,11 +1187,10 @@ namespace MP.SPEC.Data
|
||||
/// <param name="KeyFilt">Chiave x filtro conf su tab WKS</param>
|
||||
public async Task<bool> IstKitInsertByWKSAsync(string CodArtParent, string KeyFilt)
|
||||
{
|
||||
bool fatto = false;
|
||||
using var activity = ActivitySource.StartActivity("IstKitInsertByWKSAsync");
|
||||
string source = "DB";
|
||||
// salvo
|
||||
fatto = await dbController.IstKitInsertByWKSAsync(CodArtParent, KeyFilt);
|
||||
bool fatto = await dbController.IstKitInsertByWKSAsync(CodArtParent, KeyFilt);
|
||||
// svuoto cache
|
||||
await FlushKitCache();
|
||||
activity?.SetTag("data.source", source);
|
||||
@@ -1218,9 +1207,8 @@ namespace MP.SPEC.Data
|
||||
{
|
||||
using var activity = ActivitySource.StartActivity("IstKitUpsertAsync");
|
||||
string source = "DB";
|
||||
bool fatto = false;
|
||||
// salvo
|
||||
fatto = await dbController.IstKitUpsertAsync(currRecord);
|
||||
bool fatto = await dbController.IstKitUpsertAsync(currRecord);
|
||||
// svuoto cache
|
||||
await FlushKitCache();
|
||||
activity?.SetTag("data.source", source);
|
||||
@@ -1263,46 +1251,6 @@ namespace MP.SPEC.Data
|
||||
fetchFunc: async () => await dbController.ListPODL_ByCodArtAsync(CodArticolo, OnlyAvail) ?? new(),
|
||||
tagList: [Utils.redisPOdlByCodArt]
|
||||
);
|
||||
|
||||
#if false
|
||||
List<PODLExpModel> result = new List<PODLExpModel>();
|
||||
if (!string.IsNullOrEmpty(CodArticolo))
|
||||
{
|
||||
using var activity = ActivitySource.StartActivity("ListPODL_ByCodArt");
|
||||
string source = "DB";
|
||||
// cerco in redis dato valore sel idxMaccSel...
|
||||
RedisValue rawData = redisDb.StringGet(currKey);
|
||||
if (rawData.HasValue && rawData.Length() > 2)
|
||||
{
|
||||
var rawResult = JsonConvert.DeserializeObject<List<PODLExpModel>>($"{rawData}");
|
||||
if (rawResult != null)
|
||||
{
|
||||
result = rawResult;
|
||||
source = "REDIS";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
result = dbController.ListPODL_ByCodArt(CodArticolo, OnlyAvail);
|
||||
// serializzo e salvo...
|
||||
rawData = JsonConvert.SerializeObject(result);
|
||||
redisDb.StringSet(currKey, rawData, getRandTOut(redisLongTimeCache));
|
||||
}
|
||||
if (result == null)
|
||||
{
|
||||
result = new List<PODLExpModel>();
|
||||
}
|
||||
activity?.SetTag("data.source", source);
|
||||
activity?.SetTag("result.count", result.Count);
|
||||
activity?.Stop();
|
||||
Log.Trace($"ListPODL_ByCodArt | {source} | {activity?.Duration.TotalMilliseconds}ms");
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.Debug("Errore CodArt vuoto");
|
||||
}
|
||||
return result;
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1541,7 +1489,6 @@ namespace MP.SPEC.Data
|
||||
return fatto;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Elenco ODL filtrati x stato, articolo, KeyRich (che contiene stato)
|
||||
/// </summary>
|
||||
@@ -1781,14 +1728,7 @@ namespace MP.SPEC.Data
|
||||
// salvo
|
||||
fatto = await dbController.PodlIstKitDeleteAsync(IdxPODL);
|
||||
// svuoto cache
|
||||
await FlushCacheByTagsAsync(new List<string>() { Utils.redisPOdlList });
|
||||
#if false
|
||||
string pattern = $"{Utils.redisKit}:*";
|
||||
if (!string.IsNullOrEmpty(pattern))
|
||||
{
|
||||
ExecFlushRedisPattern(pattern);
|
||||
}
|
||||
#endif
|
||||
await FlushCacheByTagAsync(new List<string>() { Utils.redisPOdlList });
|
||||
activity?.SetTag("data.source", "DB");
|
||||
return fatto;
|
||||
}
|
||||
@@ -1809,35 +1749,6 @@ namespace MP.SPEC.Data
|
||||
tagList: [Utils.redisPOdlList]
|
||||
);
|
||||
|
||||
#if false
|
||||
using var activity = ActivitySource.StartActivity("POdlListByKitParent");
|
||||
List<PODLExpModel>? result = new List<PODLExpModel>();
|
||||
string source = "DB";
|
||||
string currKey = $"{Utils.redisPOdlList}_kit:ByParent:{IdxPodlParent}";
|
||||
// cerco in redis dato valore sel idxMaccSel...
|
||||
RedisValue rawData = redisDb.StringGet(currKey);
|
||||
if (rawData.HasValue)
|
||||
{
|
||||
result = JsonConvert.DeserializeObject<List<PODLExpModel>>($"{rawData}");
|
||||
source = "REDIS";
|
||||
}
|
||||
else
|
||||
{
|
||||
result = await dbController.ListPODL_ByKitParentAsync(IdxPodlParent);
|
||||
// serializzo e salvo...
|
||||
rawData = JsonConvert.SerializeObject(result);
|
||||
redisDb.StringSet(currKey, rawData, TimeSpan.FromSeconds(redisShortTimeCache));
|
||||
}
|
||||
if (result == null)
|
||||
{
|
||||
result = new List<PODLExpModel>();
|
||||
}
|
||||
activity?.SetTag("data.source", source);
|
||||
activity?.SetTag("result.count", result.Count);
|
||||
activity?.Stop();
|
||||
LogTrace($"POdlListByKitParent | Read from {source}: {activity?.Duration.TotalMilliseconds}ms");
|
||||
return result;
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -2394,10 +2305,15 @@ namespace MP.SPEC.Data
|
||||
private static readonly ActivitySource ActivitySource = new ActivitySource("MP.DATA.Tracer");
|
||||
|
||||
private static IConfiguration _configuration = null!;
|
||||
|
||||
private static Logger Log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
private readonly IFusionCache _cache;
|
||||
|
||||
private DateTime _artCacheExpiry = DateTime.MinValue;
|
||||
|
||||
private Dictionary<string, string> _configData = new();
|
||||
|
||||
private DateTime _dtParamExpiry = DateTime.Now;
|
||||
|
||||
/// <summary>
|
||||
@@ -2457,7 +2373,6 @@ namespace MP.SPEC.Data
|
||||
|
||||
#region Private Methods
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Verifica caricamento dizionario ConfigData
|
||||
/// </summary>
|
||||
@@ -2474,6 +2389,11 @@ namespace MP.SPEC.Data
|
||||
}
|
||||
}
|
||||
|
||||
private async Task FlushKitCache()
|
||||
{
|
||||
await FlushCacheByTagAsync(new List<string>() { Utils.redisPOdlList, Utils.redisKitInst, Utils.redisKitWip, Utils.redisKitScore, Utils.redisPOdlByCodArt });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Implementa gestione recupero cache da memoria o da obj esterno + cache memoria + tracking attività
|
||||
/// </summary>
|
||||
@@ -2596,7 +2516,7 @@ namespace MP.SPEC.Data
|
||||
await ExecFlushRedisPatternAsync(pattern);
|
||||
// elimino anche in FusionCache
|
||||
List<string> tags2del = new List<string>() { Utils.redisArtList, Utils.redisArtByDossier };
|
||||
await FlushCacheByTagsAsync(tags2del);
|
||||
await FlushCacheByTagAsync(tags2del);
|
||||
activity?.SetTag("data.source", "REDIS");
|
||||
}
|
||||
|
||||
@@ -2604,7 +2524,7 @@ namespace MP.SPEC.Data
|
||||
{
|
||||
await redisDb.StringSetAsync(Utils.redisConfKey, "");
|
||||
List<string> tags2del = new List<string>() { Utils.redisConfKey };
|
||||
await FlushCacheByTagsAsync(tags2del);
|
||||
await FlushCacheByTagAsync(tags2del);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -2612,7 +2532,7 @@ namespace MP.SPEC.Data
|
||||
/// </summary>
|
||||
private async Task ResetMacGrpCache()
|
||||
{
|
||||
await FlushCacheByTagsAsync(new List<string> { Utils.redisAnagGruppi, Utils.redisMacList });
|
||||
await FlushCacheByTagAsync(new List<string> { Utils.redisAnagGruppi, Utils.redisMacList });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -2622,7 +2542,7 @@ namespace MP.SPEC.Data
|
||||
{
|
||||
//ExecFlushRedisPattern($"{Utils.redisAnagGruppi}:*");
|
||||
//ExecFlushRedisPattern($"{Utils.redisOprList}:*");
|
||||
await FlushCacheByTagsAsync(new List<string> { Utils.redisAnagGruppi, Utils.redisOprList });
|
||||
await FlushCacheByTagAsync(new List<string> { Utils.redisAnagGruppi, Utils.redisOprList });
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<RootNamespace>MP.SPEC</RootNamespace>
|
||||
<Version>8.16.2605.3009</Version>
|
||||
<Version>8.16.2605.3010</Version>
|
||||
<UserSecretsId>1800a78a-6ff1-40f9-b490-87fb8bfc1394</UserSecretsId>
|
||||
<SatelliteResourceLanguages>en</SatelliteResourceLanguages>
|
||||
</PropertyGroup>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<body>
|
||||
<i>Modulo MAPOSPEC </i>
|
||||
<h4>Versione: 8.16.2605.3009</h4>
|
||||
<h4>Versione: 8.16.2605.3010</h4>
|
||||
<br /> Note di rilascio:
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
@@ -1 +1 @@
|
||||
8.16.2605.3009
|
||||
8.16.2605.3010
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<item>
|
||||
<version>8.16.2605.3009</version>
|
||||
<version>8.16.2605.3010</version>
|
||||
<url>https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/MP.SPEC.zip</url>
|
||||
<changelog>https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/ChangeLog.html</changelog>
|
||||
<mandatory>false</mandatory>
|
||||
|
||||
Reference in New Issue
Block a user