241 lines
7.4 KiB
C#
241 lines
7.4 KiB
C#
using Microsoft.AspNetCore.Components;
|
|
using MP.Data.DatabaseModels;
|
|
using MP.Data.DTO;
|
|
using MP.Data.Services;
|
|
using MP_TAB3.Pages;
|
|
using Newtonsoft.Json;
|
|
using NLog;
|
|
using System.Diagnostics;
|
|
|
|
namespace MP_TAB3.Components
|
|
{
|
|
public partial class CmpTop
|
|
{
|
|
#region Public Properties
|
|
|
|
[Parameter]
|
|
public List<LinkMenu> CurrMenuItems { get; set; } = new List<LinkMenu>();
|
|
[Parameter]
|
|
public EventCallback<bool> EA_UserIsOk { get; set; }
|
|
|
|
#endregion Public Properties
|
|
|
|
#region Protected Fields
|
|
|
|
protected string ResetClass = "btn-primary";
|
|
|
|
#endregion Protected Fields
|
|
|
|
#region Protected Properties
|
|
|
|
protected string CurrOprTknLS { get; set; } = null!;
|
|
//protected Guid CurrDevGuid { get; set; }
|
|
protected string LastOpenedPage { get; set; } = null!;
|
|
protected string CurrMacc { get; set; } = null!;
|
|
|
|
protected string CurrOprTknRedis { get; set; } = null!;
|
|
|
|
protected int expLoginType { get; set; } = 0;
|
|
|
|
protected bool HideMenu
|
|
{
|
|
get => NavMan.Uri.Contains("reg-new-device");
|
|
}
|
|
|
|
[Inject]
|
|
protected ListSelectDataSrv MDataService { get; set; } = null!;
|
|
|
|
[Inject]
|
|
protected MessageService MsgServ { get; set; } = null!;
|
|
|
|
[Inject]
|
|
protected SharedMemService MStor { get; set; } = null!;
|
|
|
|
[Inject]
|
|
protected NavigationManager NavMan { get; set; } = null!;
|
|
|
|
[Inject]
|
|
protected SharedMemService SMServ { get; set; } = null!;
|
|
|
|
[Inject]
|
|
protected TabDataService TDService { get; set; } = null!;
|
|
|
|
#endregion Protected Properties
|
|
|
|
#region Protected Methods
|
|
|
|
protected async Task RefreshLogIn(string decodValue)
|
|
{
|
|
bool done = false;
|
|
if (expLoginType == 0)
|
|
{
|
|
done = await MsgServ.DoLogIn(decodValue, false);
|
|
}
|
|
else
|
|
{
|
|
done = await MsgServ.DoLogIn(decodValue, true);
|
|
}
|
|
if (done)
|
|
{
|
|
if (!string.IsNullOrEmpty(LastOpenedPage) && !string.IsNullOrEmpty(CurrMacc))
|
|
{
|
|
NavMan.NavigateTo(LastOpenedPage);
|
|
}
|
|
else
|
|
{
|
|
NavMan.NavigateTo("status-map");
|
|
}
|
|
}
|
|
}
|
|
|
|
protected async Task ForceReload()
|
|
{
|
|
Stopwatch sw = new Stopwatch();
|
|
sw.Start();
|
|
Log.Info("Start ForceReload");
|
|
ResetClass = "btn-warning";
|
|
await InvokeAsync(StateHasChanged);
|
|
var currToken = await MsgServ.GetCurrOperDtoLSAsync();
|
|
var lastOpr = await MsgServ.GetLastMatrOprAsync();
|
|
var devGuid = await MsgServ.GetCurrDevGuidLSAsync();
|
|
// reset cache varie
|
|
await MsgServ.ClearLocalStor();
|
|
await MsgServ.ClearSessionStor();
|
|
await MDataService.FlushCache();
|
|
// salvo di nuovo opr + GUID
|
|
await MsgServ.SetCurrDevGuidLSAsync(devGuid);
|
|
await MsgServ.SetLastMatrOprAsync(lastOpr);
|
|
await MsgServ.SetCurrOperDtoLSAsync(currToken);
|
|
// reload MStor
|
|
await ReloadMemStor();
|
|
// calcolo tempo esecuzione
|
|
sw.Stop();
|
|
int delta = 500 - (int)sw.ElapsedMilliseconds;
|
|
delta = delta > 0 ? delta : 50;
|
|
await Task.Delay(delta);
|
|
ResetClass = "btn-primary";
|
|
// await InvokeAsync(StateHasChanged);
|
|
Log.Info($"ForceReload completed in {sw.ElapsedMilliseconds}ms");
|
|
// ricarica pagina!
|
|
NavMan.NavigateTo("status-map");
|
|
}
|
|
|
|
protected async Task backToSM()
|
|
{
|
|
await Task.Delay(1);
|
|
if (!NavMan.Uri.Contains("reg-new-device"))
|
|
{
|
|
|
|
await MsgServ.IdxMaccSet("");
|
|
NavMan.NavigateTo("status-map");
|
|
}
|
|
}
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
await Task.Delay(1);
|
|
expLoginType = SMServ.GetConfInt("TAB_TypeScadLogin");
|
|
var CurrDevGuid = await MsgServ.GetCurrDevGuidLSAsync();
|
|
|
|
if (CurrDevGuid == Guid.Empty)
|
|
{
|
|
CurrDevGuid = Guid.NewGuid();
|
|
await MsgServ.SetCurrDevGuidLSAsync(CurrDevGuid);
|
|
}
|
|
|
|
LastOpenedPage = await MsgServ.LastOpenedPageGet();
|
|
CurrMacc = await MsgServ.IdxMaccGet();
|
|
|
|
CurrOprTknLS = await MsgServ.GetCurrOperDtoLSAsync();
|
|
var decodedUrl = Uri.UnescapeDataString(CurrOprTknLS);
|
|
if (!string.IsNullOrEmpty(CurrOprTknLS))
|
|
{
|
|
var decryptedData = MsgServ.DecryptData(CurrOprTknLS);
|
|
if (!string.IsNullOrEmpty(decryptedData))
|
|
{
|
|
var oprObj = JsonConvert.DeserializeObject<userTknDTO>(decryptedData);
|
|
if (oprObj != null)
|
|
{
|
|
MsgServ.RigaOper = oprObj.currOpr;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
CurrOprTknRedis = await TDService.OperatoreGetRedis(MatrOpr, CurrDevGuid);
|
|
|
|
|
|
if (string.IsNullOrEmpty(CurrOprTknRedis))
|
|
{
|
|
if (!NavMan.Uri.Contains("reg-new-device"))
|
|
{
|
|
NavMan.NavigateTo("reg-new-device", true);
|
|
}
|
|
}
|
|
else if (!string.IsNullOrEmpty(CurrOprTknRedis) && CurrOprTknRedis == CurrOprTknLS)
|
|
{
|
|
await RefreshLogIn(decodedUrl);
|
|
await EA_UserIsOk.InvokeAsync(true);
|
|
}
|
|
}
|
|
|
|
protected async Task ReloadMemStor()
|
|
{
|
|
// in primis svuoto...
|
|
MStor.ClearCache();
|
|
// rileggo link
|
|
var allData = await MDataService.ListLinkAll();
|
|
MStor.SetupMenu(allData);
|
|
// fix config...
|
|
var allConf = await MDataService.ConfigGetAll();
|
|
MStor.SetConfig(allConf);
|
|
// fix MSFD...
|
|
var allMSFD = await TDService.VMSFDGetAll();
|
|
MStor.SetMsfd(allMSFD);
|
|
// fix slave
|
|
var macSlave = await TDService.Macchine2Slave();
|
|
MStor.SetM2S(macSlave);
|
|
|
|
// fix elenco eventi
|
|
var allEvents = await TDService.AnagEventiGetAll();
|
|
MStor.SetEventi(allEvents);
|
|
// fix elenco stati
|
|
var allStati = await TDService.AnaStatiGetAll();
|
|
MStor.SetStati(allStati);
|
|
// non da farsi globalmente // fix macchine var allMach = await
|
|
// MDataService.MacchineByMatrOper(0); MStor.DictMacchine = allMach.ToDictionary(x =>
|
|
// x.IdxMacchina, x => $"{x.IdxMacchina} | {x.Nome}");
|
|
|
|
// fix vocabolario
|
|
var allVoc = TDService.VocabolarioGetAll();
|
|
MStor.SetVocab(allVoc);
|
|
|
|
// resetto il tabDServ
|
|
await TDService.FlushCache();
|
|
// ricarica la config...
|
|
TDService.SetupConfig();
|
|
}
|
|
|
|
#endregion Protected Methods
|
|
|
|
#region Private Fields
|
|
|
|
private static Logger Log = LogManager.GetCurrentClassLogger();
|
|
|
|
#endregion Private Fields
|
|
|
|
#region Private Properties
|
|
|
|
private int MatrOpr
|
|
{
|
|
get => MsgServ.MatrOpr;
|
|
}
|
|
|
|
private string UserName
|
|
{
|
|
get => MsgServ.CognomeNome;
|
|
}
|
|
|
|
#endregion Private Properties
|
|
}
|
|
} |