namespace Lux.UI.Components.Compo.WorkLoad { public partial class JobQueueDisplay { #region Public Properties [Parameter] public EventCallback EC_ReRunJob { get; set; } [Parameter] public EventCallback EC_ResetQueue { get; set; } [Parameter] public List QueueWait { get; set; } = new List(); [Parameter] public List QueueRun { get; set; } = new List(); [Parameter] public List QueueDone { get; set; } = new List(); #endregion Public Properties #region Protected Methods protected override void OnParametersSet() { UpdateTable(); } protected Task ReRunJob(string? JobCode) { return EC_ReRunJob.InvokeAsync(JobCode); } protected Task ResetRunQueue() { return EC_ResetQueue.InvokeAsync("Run"); } protected Task ResetWaitQueue() { return EC_ResetQueue.InvokeAsync("Wait"); } protected void SaveNumRec(int newNum) { numRecord = newNum; UpdateTable(); } protected void SavePage(int newNum) { currPage = newNum; UpdateTable(); } #endregion Protected Methods #region Private Fields /// /// pagina attuale /// private int currPage = 1; /// /// elementi per pagina /// private int numRecord = 10; /// /// Numero tot records /// private int totalCount = 0; #endregion Private Fields #region Private Properties private IEnumerable? QueueDonePaged { get; set; } = null; #endregion Private Properties #region Private Methods /// /// Filtro e paginazione /// private void UpdateTable() { // fix paginazione QueueDonePaged = QueueDone .Skip(numRecord * (currPage - 1)) .Take(numRecord); totalCount = QueueDone.Count(); } #endregion Private Methods /// /// Esegue reset secondo tipo richiesta e coda /// /// /// private async Task ResetQueue(string qType) { // reset secondo richiesta... switch (qType) { case "Waiting": await ResetWaitQueue(); break; case "Running": await ResetRunQueue(); break; default: break; } } } }