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 /// /// calcola num blocchi max data dimensione larghezza /// /// 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("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 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? 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 } }