Files
lux/Lux.UI/Components/Compo/WorkLoad/JobQueueDisplay.razor.cs
2026-03-25 09:05:06 +01:00

122 lines
2.9 KiB
C#

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 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
/// <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>? QueueDonePaged { get; set; } = null;
#endregion Private Properties
#region Private Methods
/// <summary>
/// Filtro e paginazione
/// </summary>
private void UpdateTable()
{
// fix paginazione
QueueDonePaged = QueueDone
.Skip(numRecord * (currPage - 1))
.Take(numRecord);
totalCount = QueueDone.Count();
}
#endregion Private Methods
/// <summary>
/// Esegue reset secondo tipo richiesta e coda
/// </summary>
/// <param name="qType"></param>
/// <returns></returns>
private async Task ResetQueue(string qType)
{
// reset secondo richiesta...
switch (qType)
{
case "Waiting":
await ResetWaitQueue();
break;
case "Running":
await ResetRunQueue();
break;
default:
break;
}
}
}
}