Aggiunta gestione notifica udpate x

- alias
- materiali
This commit is contained in:
Samuele Locatelli
2024-07-01 16:20:22 +02:00
parent 748c5d32b0
commit ffca896c5d
9 changed files with 137 additions and 39 deletions
+36 -13
View File
@@ -1,4 +1,5 @@
using EgwCoreLib.Razor;
using MagMan.Core;
using MagMan.Core.DTO;
using MagMan.Core.Services;
using MagMan.Data.Tenant.DbModels;
@@ -28,6 +29,7 @@ namespace MagMan.UI.Components
public void Dispose()
{
AppMService.EA_SearchUpdated -= AppMService_EA_SearchUpdated;
AppMService.QueUpdAliasMat.EA_NewMessage -= QueUpdAliasMat_EA_NewMessage;
}
#endregion Public Methods
@@ -52,25 +54,14 @@ namespace MagMan.UI.Components
#region Protected Methods
protected string rowCss(AliasModel curItem)
{
string answ = curItem.Equals(CurrItem) ? "table-info" : "";
// verifico se attivo...
if(!curItem.IsActive)
{
answ += " text-strike";
}
return answ;
}
protected async Task CreateNew()
{
string dtCode = $"{DateTime.Now:yyMMdd_HHmmss}";
CurrItem = new AliasModel()
{
Family="MatCode",
Family = "MatCode",
ValueOriginal = $"Orig_{dtCode}",
ValueAlias= $"Alias_{dtCode}"
ValueAlias = $"Alias_{dtCode}"
};
await InvokeAsync(StateHasChanged);
}
@@ -102,6 +93,7 @@ namespace MagMan.UI.Components
{
currSearch = "";
AppMService.EA_SearchUpdated += AppMService_EA_SearchUpdated;
AppMService.QueUpdAliasMat.EA_NewMessage += QueUpdAliasMat_EA_NewMessage;
}
protected override async Task OnParametersSetAsync()
@@ -109,6 +101,17 @@ namespace MagMan.UI.Components
await ReloadData();
}
protected string rowCss(AliasModel curItem)
{
string answ = curItem.Equals(CurrItem) ? "table-info" : "";
// verifico se attivo...
if (!curItem.IsActive)
{
answ += " text-strike";
}
return answ;
}
protected void SetNumRec(int newNum)
{
numRecord = newNum;
@@ -135,10 +138,15 @@ namespace MagMan.UI.Components
#region Private Fields
private AliasModel? CurrItem = null;
private string currSearch = "";
private int filtType = 0;
private List<AliasModel>? ListRecords = null;
private int MaterialId = 0;
private List<AliasModel>? SearchRecords = null;
private bool sortAsc = true;
@@ -165,6 +173,21 @@ namespace MagMan.UI.Components
await ReloadData();
}
private async void QueUpdAliasMat_EA_NewMessage(object? sender, EventArgs e)
{
// verifico se il messaggio sia per la mia KEY e nel caso --> refresh!
PubSubEventArgs currArgs = (PubSubEventArgs)e;
// se c'è un messaggio
if (!string.IsNullOrEmpty(currArgs.newMessage))
{
// se è di mia pertinenza x key e Proj
if (KeyNum > 0 && currArgs.newMessage == $"{KeyNum}")
{
await ReloadData();
}
}
}
private async Task ReloadData()
{
isLoading = true;
+23
View File
@@ -1,6 +1,7 @@
// Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this
// file to you under the MIT license.
using EgwCoreLib.Razor;
using MagMan.Core;
using MagMan.Core.DTO;
using MagMan.Core.Services;
using MagMan.Data.Admin.DbModels;
@@ -33,6 +34,7 @@ namespace MagMan.UI.Components
public void Dispose()
{
AppMService.EA_SearchUpdated -= AppMService_EA_SearchUpdated;
AppMService.QueUpdAliasMat.EA_NewMessage -= QueUpdAliasMat_EA_NewMessage;
}
#endregion Public Methods
@@ -129,6 +131,7 @@ namespace MagMan.UI.Components
{
currSearch = "";
AppMService.EA_SearchUpdated += AppMService_EA_SearchUpdated;
AppMService.QueUpdAliasMat.EA_NewMessage += QueUpdAliasMat_EA_NewMessage;
}
protected override async Task OnParametersSetAsync()
@@ -162,10 +165,15 @@ namespace MagMan.UI.Components
#region Private Fields
private MaterialModel? CurrItem = null;
private string currSearch = "";
private int filtType = 0;
private List<MaterialDTO>? ListRecords = null;
private int MaterialId = 0;
private List<MaterialDTO>? SearchRecords = null;
private bool sortAsc = true;
@@ -206,6 +214,21 @@ namespace MagMan.UI.Components
await ReloadData();
}
private async void QueUpdAliasMat_EA_NewMessage(object? sender, EventArgs e)
{
// verifico se il messaggio sia per la mia KEY e nel caso --> refresh!
PubSubEventArgs currArgs = (PubSubEventArgs)e;
// se c'è un messaggio
if (!string.IsNullOrEmpty(currArgs.newMessage))
{
// se è di mia pertinenza x key e Proj
if (KeyNum > 0 && currArgs.newMessage == $"{KeyNum}")
{
await ReloadData();
}
}
}
private async Task ReloadData()
{
isLoading = true;
+36 -11
View File
@@ -1,5 +1,7 @@
using MagMan.Core;
using k8s.Models;
using MagMan.Core;
using MagMan.Core.DTO;
using MagMan.Core.Services;
using MagMan.Data.Admin.DbModels;
using MagMan.Data.Admin.Services;
using MagMan.Data.Tenant.DbModels;
@@ -17,17 +19,13 @@ namespace MagMan.UI.Controllers
[ApiController]
public class AliasController : ControllerBase
{
/// <summary>
/// Classe per logging
/// </summary>
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
private MTAdminService MTAdmService { get; set; } = null!;
private static JsonSerializerSettings? JSSettings;
private TenantService TService { get; set; } = null!;
public AliasController(MTAdminService MTDataService, TenantService TDataService)
#region Public Constructors
public AliasController(MTAdminService MTDataService, TenantService TDataService, MessageService messageService)
{
MTAdmService = MTDataService;
TService = TDataService;
MService = messageService;
// json serializer... FIX errore loop circolare https://www.ryadel.com/en/jsonserializationexception-self-referencing-loop-detected-error-fix-entity-framework-asp-net-core/
JSSettings = new JsonSerializerSettings()
{
@@ -36,6 +34,10 @@ namespace MagMan.UI.Controllers
Log.Info("Avviata classe AliasController");
}
#endregion Public Constructors
#region Public Methods
/// <summary>
/// Controllo status Alive
/// GET: api/Alias/alive
@@ -59,7 +61,7 @@ namespace MagMan.UI.Controllers
}
/// <summary>
/// Elenco Materiali dato RestToken
/// Elenco Materiali dato RestToken
/// </summary>
/// <param name="id">Rest Token cliente</param>
/// <returns></returns>
@@ -111,10 +113,33 @@ namespace MagMan.UI.Controllers
}
// resetto cache redis
await MTAdmService.FlushRedisCache();
// broadcast update via redis, indico nKey x update puntuale
MService.QueUpdAliasMat.sendMessage($"{nKey}");
}
}
answ = fatto ? "OK" : "NO";
return answ;
}
#endregion Public Methods
#region Private Fields
private static JsonSerializerSettings? JSSettings;
/// <summary>
/// Classe per logging
/// </summary>
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
#endregion Private Fields
#region Private Properties
private MessageService MService { get; set; } = null!;
private MTAdminService MTAdmService { get; set; } = null!;
private TenantService TService { get; set; } = null!;
#endregion Private Properties
}
}
}
+36 -11
View File
@@ -1,5 +1,7 @@
using MagMan.Core;
using k8s.Models;
using MagMan.Core;
using MagMan.Core.DTO;
using MagMan.Core.Services;
using MagMan.Data.Admin.DbModels;
using MagMan.Data.Admin.Services;
using MagMan.Data.Tenant.DbModels;
@@ -16,17 +18,13 @@ namespace MagMan.UI.Controllers
[ApiController]
public class MaterialsController : ControllerBase
{
/// <summary>
/// Classe per logging
/// </summary>
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
private MTAdminService MTAdmService { get; set; } = null!;
private static JsonSerializerSettings? JSSettings;
private TenantService TService { get; set; } = null!;
public MaterialsController(MTAdminService MTDataService, TenantService TDataService)
#region Public Constructors
public MaterialsController(MTAdminService MTDataService, TenantService TDataService, MessageService messageService)
{
MTAdmService = MTDataService;
TService = TDataService;
MService = messageService;
// json serializer... FIX errore loop circolare https://www.ryadel.com/en/jsonserializationexception-self-referencing-loop-detected-error-fix-entity-framework-asp-net-core/
JSSettings = new JsonSerializerSettings()
{
@@ -35,6 +33,10 @@ namespace MagMan.UI.Controllers
Log.Info("Avviata classe MaterialsController");
}
#endregion Public Constructors
#region Public Methods
/// <summary>
/// Controllo status Alive
/// GET: api/Keys/alive
@@ -58,7 +60,7 @@ namespace MagMan.UI.Controllers
}
/// <summary>
/// Elenco Materiali dato RestToken
/// Elenco Materiali dato RestToken
/// </summary>
/// <param name="id">Rest Token cliente</param>
/// <returns></returns>
@@ -109,10 +111,33 @@ namespace MagMan.UI.Controllers
}
// resetto cache redis
await MTAdmService.FlushRedisCache();
// broadcast update via redis, indico nKey x update puntuale
MService.QueUpdAliasMat.sendMessage($"{nKey}");
}
}
answ = fatto ? "OK" : "NO";
return answ;
}
#endregion Public Methods
#region Private Fields
private static JsonSerializerSettings? JSSettings;
/// <summary>
/// Classe per logging
/// </summary>
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
#endregion Private Fields
#region Private Properties
private MessageService MService { get; set; } = null!;
private MTAdminService MTAdmService { get; set; } = null!;
private TenantService TService { get; set; } = null!;
#endregion Private Properties
}
}
}
@@ -169,6 +169,8 @@ namespace MagMan.UI.Controllers
}
// resetto cache redis
await MTAdmService.FlushRedisCache();
// broadcast update via redis, indico nKey x update puntuale
MService.QueUpdProj.sendMessage($"{nKey}");
}
}
return answ;
+1 -1
View File
@@ -2,7 +2,7 @@
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<Version>1.0.2407.0115</Version>
<Version>1.0.2407.0116</Version>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
+1 -1
View File
@@ -1,6 +1,6 @@
<body>
<i>MagMan - Wood Warehouse Management System</i>
<h4>Versione: 1.0.2407.0115</h4>
<h4>Versione: 1.0.2407.0116</h4>
<br /> Note di rilascio:
<ul>
<li>
+1 -1
View File
@@ -1 +1 @@
1.0.2407.0115
1.0.2407.0116
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<item>
<version>1.0.2407.0115</version>
<version>1.0.2407.0116</version>
<url>http://nexus.steamware.net/repository/SWS/MagMan/stable/0/MagMan.UI.zip</url>
<changelog>http://nexus.steamware.net/repository/SWS/MagMan/stable/0/ChangeLog.html</changelog>
<mandatory>false</mandatory>