using Microsoft.AspNetCore.Components; using Microsoft.JSInterop; using System.Reflection.Emit; 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 QueueRun { get; set; } = new List(); [Parameter] public List QueueWait { get; set; } = new List(); #endregion Public Properties #region Protected Methods protected async Task ReRunJob(string? JobCode) { await EC_ReRunJob.InvokeAsync(JobCode); } protected async Task ResetRunQueue() { await EC_ResetQueue.InvokeAsync("Run"); } protected async Task ResetWaitQueue() { await EC_ResetQueue.InvokeAsync("Wait"); } #endregion Protected Methods #region Private Properties private int NumRun { get => QueueRun.Count(); } /// /// elementi per pagina /// private int PageSize = 10; /// /// pagina attuale /// private int CurrentPage = 1; private IEnumerable PagedQueueRun => QueueRun .Skip((CurrentPage - 1) * PageSize) .Take(PageSize); private int TotalPages => (int)Math.Ceiling((double)QueueRun.Count / PageSize); private void GoToPage(int page) { if (page < 1) page = 1; if (page > TotalPages) page = TotalPages; CurrentPage = page; } #endregion Private Properties } }