Files
mapo-core/MP-TAB3/Pages/StatusMap.razor.cs
T
2024-01-29 08:49:16 +01:00

193 lines
5.0 KiB
C#

using global::Microsoft.AspNetCore.Components;
using Microsoft.JSInterop;
using MP.Data.Conf;
using MP.Data.DatabaseModels;
using MP.Data.Services;
using MP_TAB3.Shared;
using NLog;
using System.Runtime.ExceptionServices;
namespace MP_TAB3.Pages
{
public partial class StatusMap : IDisposable
{
#region Public Methods
public void Dispose()
{
ListMSE = null;
GC.Collect();
}
#endregion Public Methods
#region Public Classes
public class WindowDimension
{
#region Public Properties
public int Height { get; set; }
public int Width { get; set; }
#endregion Public Properties
}
#endregion Public Classes
#region Protected Fields
protected bool _showCard = false;
protected int maxCol = 6;
protected string showArt = "";
#endregion Protected Fields
#region Protected Properties
[Inject]
protected IConfiguration config { get; set; } = null!;
protected int Height { get; set; } = 0;
protected bool isCalcSize { get; set; } = false;
[Inject]
protected IJSRuntime JSRuntime { get; set; } = null!;
[Inject]
protected StatusData MDataService { get; set; } = null!;
[Inject]
protected MessageService MsgServ { get; set; } = null!;
[Inject]
protected NavigationManager NavMan { get; set; } = null!;
protected bool ShowCard
{
get => _showCard;
set
{
_showCard = value;
StateHasChanged();
}
}
[Inject]
protected TabDataService TabDServ { get; set; } = null!;
protected int Width { get; set; } = 0;
#endregion Protected Properties
#region Protected Methods
/// <summary>
/// calcola num blocchi max data dimensione larghezza
/// </summary>
/// <returns></returns>
protected int calcMaxBlock()
{
int answ = 2;
if (Width > 450)
{
if (Width < 1024)
{
answ = (int)Math.Floor((decimal)Width / 200);
}
else
{
answ = (int)Math.Floor((decimal)Width / 220) - 1;
}
}
return answ;
}
protected async Task getWDim()
{
var dimension = await JSRuntime.InvokeAsync<WindowDimension>("getWindowDimensions");
Height = dimension.Height;
Width = dimension.Width;
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
await getWDim();
isCalcSize = false;
ListMSE = await MDataService.MseGetAll(true);
await InvokeAsync(StateHasChanged);
}
if (ListMSE != null)
{
// salvo in LocalStorage...
await MsgServ.SaveMse(ListMSE);
}
}
protected override async Task OnInitializedAsync()
{
setDefaults();
ListMSE = null;
SetupConf();
var LastOpenedPage = await MsgServ.LastOpenedPageGet();
var currMacc = await MsgServ.IdxMaccGet();
if (currMacc != "" && currMacc != null)
{
await MsgServ.IdxMaccSet(currMacc);
if (LastOpenedPage != "" && LastOpenedPage != null)
{
NavMan.NavigateTo(LastOpenedPage);
}
//NavMan.NavigateTo($"machine-detail");
}
}
protected void SaveData(List<MappaStatoExpl> newList)
{
ListMSE = newList;
}
#endregion Protected Methods
#region Private Fields
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
#endregion Private Fields
#region Private Properties
private string baseLang { get; set; } = "";
private List<MappaStatoExpl>? ListMSE { get; set; } = null;
private string tcMode { get; set; } = "";
#endregion Private Properties
#region Private Methods
private void setDefaults()
{
string df = MsgServ.UserPrefSetup("DefCardMode", "full");
baseLang = MsgServ.UserPrefSetup("Lang", "IT");
tcMode = MsgServ.UserPrefSetup("TcMode", "ms");
ShowCard = df == "shrink" ? false : true;
isCalcSize = true;
}
private void SetupConf()
{
// sistemo i parametri opzionali...
TabDServ.ConfigGetVal("MON_maxCol", ref maxCol);
TabDServ.ConfigGetVal("sART", ref showArt);
Log.Info($"setupConf | Effettuato setup parametri | MaxCol: {maxCol}");
}
#endregion Private Methods
}
}