Files
lux/Lux.UI/Components/Compo/WorkLoad/JobQueueDisplay.razor.cs
T
2026-01-14 17:20:53 +01:00

106 lines
2.5 KiB
C#

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<string> EC_ReRunJob { get; set; }
[Parameter]
public EventCallback<string> EC_ResetQueue { get; set; }
[Parameter]
public List<string> QueueWait { get; set; } = new List<string>();
[Parameter]
public List<string> QueueRun { get; set; } = new List<string>();
[Parameter]
public List<string> QueueDone { get; set; } = new List<string>();
#endregion Public Properties
#region Protected Methods
protected override void OnParametersSet()
{
UpdateTable();
}
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");
}
protected void SaveNumRec(int newNum)
{
numRecord = newNum;
UpdateTable();
}
protected void SavePage(int newNum)
{
currPage = newNum;
UpdateTable();
}
#endregion Protected Methods
#region Private Fields
/// <summary>
/// pagina attuale
/// </summary>
private int currPage = 1;
/// <summary>
/// elementi per pagina
/// </summary>
private int numRecord = 10;
/// <summary>
/// Numero tot records
/// </summary>
private int totalCount = 0;
#endregion Private Fields
#region Private Properties
private IEnumerable<string>? QueueRunPaged { get; set; } = null;
private IEnumerable<string>? QueueDonePaged { get; set; } = null;
#endregion Private Properties
#region Private Methods
/// <summary>
/// Filtro e paginazione
/// </summary>
private void UpdateTable()
{
// fix paginazione
QueueRunPaged = QueueRun
.Skip(numRecord * (currPage - 1))
.Take(numRecord);
totalCount = QueueRun.Count();
}
#endregion Private Methods
}
}