e57f6a1326
- req/run/done state - modifica api
175 lines
5.1 KiB
C#
175 lines
5.1 KiB
C#
using LiMan.DB;
|
|
using LiMan.DB.DBModels;
|
|
using LiMan.DB.DTO;
|
|
using LiMan.UI.Data;
|
|
using Microsoft.AspNetCore.Components;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace LiMan.UI.Components
|
|
{
|
|
public partial class InstallInfoStats
|
|
{
|
|
#region Public Methods
|
|
|
|
public void Dispose()
|
|
{
|
|
LMDService.EnrollMessPipe.EA_NewMessage -= async (sender, e) => await EnrollMessPipe_EA_NewMessage(sender, e);
|
|
MServ.EA_InstDetail -= async () => await MServ_EA_InstDetail();
|
|
}
|
|
|
|
#endregion Public Methods
|
|
|
|
#region Protected Properties
|
|
|
|
[Inject]
|
|
protected LiManDataService LMDService { get; set; } = null!;
|
|
[Inject]
|
|
protected MessageService MServ { get; set; } = null!;
|
|
|
|
#endregion Protected Properties
|
|
|
|
#region Protected Methods
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
LMDService.EnrollMessPipe.EA_NewMessage += async (sender, e) => await EnrollMessPipe_EA_NewMessage(sender, e);
|
|
MServ.EA_InstDetail += async () => await MServ_EA_InstDetail();
|
|
await ReloadLicData();
|
|
await ReloadData();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Richiesta visualizzazione dettaglio installazione
|
|
/// </summary>
|
|
/// <exception cref="NotImplementedException"></exception>
|
|
private async Task MServ_EA_InstDetail()
|
|
{
|
|
isLoading = true;
|
|
// se trovo salvate in preferenze utente le info necessarie...
|
|
ShowInstallDetail = true;
|
|
DetailFilt.Clear();
|
|
CodImpSel = MServ.UsrParamGet("CodImp");
|
|
DetailFilt.Add("Cliente", MServ.UsrParamGet("Cliente"));
|
|
DetailFilt.Add("PC", MServ.UsrParamGet("PcInst"));
|
|
|
|
// esegue filtraggio sui dati... x mostrare SOLO app del cliente + dati accessori
|
|
|
|
isLoading = false;
|
|
await InvokeAsync(StateHasChanged);
|
|
}
|
|
|
|
private async Task CloseDetail()
|
|
{
|
|
isLoading = true;
|
|
await InvokeAsync(StateHasChanged);
|
|
ShowInstallDetail = false;
|
|
CodImpSel = "";
|
|
DetailFilt.Clear();
|
|
isLoading = false;
|
|
await InvokeAsync(StateHasChanged);
|
|
}
|
|
|
|
private string CodImpSel { get; set; } = "";
|
|
|
|
private Dictionary<string, string> DetailFilt = new Dictionary<string, string>();
|
|
|
|
private bool ShowInstallDetail { get; set; } = false;
|
|
|
|
#endregion Protected Methods
|
|
|
|
#region Private Fields
|
|
|
|
private bool doFiltClienti = false;
|
|
|
|
private List<InstallazioneModel> ListInstall;
|
|
|
|
/// <summary>
|
|
/// Codice installazione selezionata
|
|
/// </summary>
|
|
protected string CodInstSel
|
|
{
|
|
get => codInstSel;
|
|
set
|
|
{
|
|
if (codInstSel != value)
|
|
{
|
|
codInstSel = value;
|
|
isLoading = true;
|
|
var pUpd = Task.Run(async () =>
|
|
{
|
|
await ReloadData();
|
|
});
|
|
pUpd.Wait();
|
|
isLoading = false;
|
|
}
|
|
}
|
|
}
|
|
private string codInstSel = "";
|
|
|
|
#endregion Private Fields
|
|
|
|
#region Private Properties
|
|
|
|
private string cssBtnCli
|
|
{
|
|
get => doFiltClienti ? "btn-info" : "btn-primary";
|
|
}
|
|
|
|
private DateTime DtFine { get; set; } = DateTime.Today.AddHours(DateTime.Now.Hour);
|
|
|
|
private DateTime DtInizio { get; set; } = DateTime.Today.AddMonths(-1);
|
|
|
|
private InstallStatusDTO InfoStats { get; set; } = new InstallStatusDTO();
|
|
|
|
private bool isLoading { get; set; } = false;
|
|
|
|
#endregion Private Properties
|
|
|
|
#region Private Methods
|
|
|
|
/// <summary>
|
|
/// Evento refresh legato a ricezione evento da MessagePipe
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private async Task EnrollMessPipe_EA_NewMessage(object sender, EventArgs e)
|
|
{
|
|
PubSubEventArgs currArgs = (PubSubEventArgs)e;
|
|
// qualsiasi messaggio fa scattare reload data
|
|
if (!string.IsNullOrEmpty(currArgs.newMessage))
|
|
{
|
|
isLoading = true;
|
|
await InvokeAsync(StateHasChanged);
|
|
await ReloadLicData();
|
|
await ReloadData();
|
|
isLoading = false;
|
|
await InvokeAsync(StateHasChanged);
|
|
}
|
|
}
|
|
|
|
private async Task ReloadData()
|
|
{
|
|
isLoading = true;
|
|
InfoStats = await LMDService.InstallStatusGetInfo(DtInizio, DtFine, CodInstSel);
|
|
isLoading = false;
|
|
}
|
|
|
|
private async Task ReloadLicData()
|
|
{
|
|
ListInstall = await LMDService.InstallazioniNextGetAll();
|
|
}
|
|
|
|
private void TglFiltCli()
|
|
{
|
|
doFiltClienti = !doFiltClienti;
|
|
if (!doFiltClienti)
|
|
{
|
|
CodInstSel = "";
|
|
}
|
|
}
|
|
|
|
#endregion Private Methods
|
|
}
|
|
} |