Files
lux/Lux.UI/Components/Pages/JobRoute.razor.cs
T
2026-03-24 12:55:16 +01:00

138 lines
3.7 KiB
C#

using EgwCoreLib.Lux.Data.DbModel.Cost;
using EgwCoreLib.Lux.Data.DbModel.Job;
using EgwCoreLib.Lux.Data.Services.Cost;
using EgwCoreLib.Lux.Data.Services.General;
using EgwCoreLib.Lux.Data.Services.Job;
using EgwCoreLib.Lux.Data.Services.Utils;
using Microsoft.AspNetCore.Components;
namespace Lux.UI.Components.Pages
{
public partial class JobRoute
{
#region Protected Methods
protected override Task OnInitializedAsync()
{
return ReloadDataAsync();
}
#endregion Protected Methods
#region Private Fields
private JobTaskModel? editRecord = null;
private bool isLoading = false;
private List<CostDriverModel> ListCostDrivers = new List<CostDriverModel>();
private List<JobTaskModel> ListJobTask = new List<JobTaskModel>();
private List<PhaseModel> ListPhases = new List<PhaseModel>();
private List<ResourceModel> ListResources = new List<ResourceModel>();
private List<JobStepModel>? ListStep = null;
private List<string> ListTagsAvailable = new List<string>();
private JobTaskModel? selRecord = null;
#endregion Private Fields
#region Private Properties
[Inject]
private ICostDriverService CDService { get; set; } = null!;
[Inject]
private IDataLayerServices DLService { get; set; } = null!;
[Inject]
private IJobStepService JStService { get; set; } = null!;
[Inject]
private IJobTaskService JTaService { get; set; } = null!;
private string mainCss
{
get => selRecord == null ? "col-6" : "col-4";
}
[Inject]
private IPhaseService PhService { get; set; } = null!;
[Inject]
private IResourceService ResService { get; set; } = null!;
private string searchVal { get; set; } = string.Empty;
[Inject]
private ITagService TagService { get; set; } = null!;
#endregion Private Properties
#region Private Methods
private Task ForceReloadAsync()
{
return ReloadDataAsync();
}
private async Task ReloadDataAsync()
{
isLoading = true;
var rawTags = await TagService.GetAllAsync();
ListTagsAvailable = rawTags.Select(x => x.CodTag).ToList();
ListCostDrivers = await CDService.GetAllAsync();
ListPhases = await PhService.GetAllAsync();
ListResources = await ResService.GetAllAsync();
ListJobTask = await JTaService.GetAllAsync();
ListStep = null;
isLoading = false;
}
/// <summary>
/// Reload dettagli ciclo
/// </summary>
/// <param name="args"></param>
/// <returns></returns>
private async Task ReloadDetail(bool args)
{
if (selRecord != null)
{
ListStep = await JStService.GetByParentAsync(selRecord.JobID);
}
else
{
ListStep = null;
}
}
private void ResetSearch()
{
searchVal = "";
}
/// <summary>
/// Salva ID sel e mostra dettagli JobTask
/// </summary>
/// <param name="selRec"></param>
private async Task ShowDetail(JobTaskModel? selRec)
{
selRecord = selRec;
// ricarico dal DB
if (selRec != null)
{
ListStep = await JStService.GetByParentAsync(selRec.JobID);
}
else
{
ListStep = null;
}
}
#endregion Private Methods
}
}