183 lines
4.6 KiB
C#
183 lines
4.6 KiB
C#
using Microsoft.AspNetCore.Components;
|
|
using MP.Data.DbModels;
|
|
using MP.SPEC.Data;
|
|
|
|
namespace MP.SPEC.Components
|
|
{
|
|
public partial class StatsOdl
|
|
{
|
|
#region Public Properties
|
|
|
|
[Parameter]
|
|
public List<StatODLModel>? ListOdlStats { get; set; }
|
|
|
|
protected List<StatODLModel>? ListOdlStatsNetto
|
|
{
|
|
get => ListOdlStats != null ? ListOdlStats.Where(x => x.Semaforo != "sGr").ToList() : null;
|
|
}
|
|
|
|
[Parameter]
|
|
public List<ListValuesModel>? ListStati { get; set; }
|
|
|
|
[Parameter]
|
|
public ODLExpModel statRecord { get; set; } = null!;
|
|
|
|
#endregion Public Properties
|
|
|
|
#region Protected Properties
|
|
|
|
[Inject]
|
|
protected MpDataService MDService { get; set; } = null!;
|
|
|
|
#endregion Protected Properties
|
|
|
|
#region Protected Methods
|
|
|
|
protected string colorChanger(string colorCSS)
|
|
{
|
|
string answ = "";
|
|
if (colorCSS == "yellow")
|
|
{
|
|
answ = "text-dark";
|
|
}
|
|
return answ;
|
|
}
|
|
|
|
protected string formDurata(double durataMin)
|
|
{
|
|
return MP.Data.Utils.FormDurata(durataMin);
|
|
}
|
|
|
|
protected void toggleSpenta()
|
|
{
|
|
hideSpenta = !hideSpenta;
|
|
}
|
|
|
|
#endregion Protected Methods
|
|
|
|
#region Private Properties
|
|
|
|
private string durataFilt
|
|
{
|
|
get
|
|
{
|
|
string answ = "ND";
|
|
if (statRecord != null)
|
|
{
|
|
if (hideSpenta)
|
|
{
|
|
if (ListOdlStatsNetto != null)
|
|
{
|
|
var tsDurata = TimeSpan.FromMinutes(ListOdlStatsNetto.Sum(x => x.TotDurata));
|
|
if (tsDurata.TotalDays < 1)
|
|
{
|
|
answ = $"{tsDurata.Hours:00}h {tsDurata.Minutes:00}'";
|
|
}
|
|
else
|
|
{
|
|
answ = $"{tsDurata.Days}gg {tsDurata.Hours:00}h";
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
answ = statRecord.DurataMinuti;
|
|
}
|
|
}
|
|
return answ;
|
|
}
|
|
}
|
|
|
|
private bool hideSpenta { get; set; } = false;
|
|
|
|
private string leftStringCSS
|
|
{
|
|
get => hideSpenta ? "text-secondary" : "text-dark fw-bold";
|
|
}
|
|
|
|
private List<StatODLModel>? ListOdlStatsAct
|
|
{
|
|
get
|
|
{
|
|
List<StatODLModel>? answ = new List<StatODLModel>();
|
|
if (hideSpenta)
|
|
{
|
|
answ = ListOdlStatsNetto;
|
|
}
|
|
else
|
|
{
|
|
answ = ListOdlStats;
|
|
}
|
|
return answ;
|
|
}
|
|
}
|
|
|
|
private string rightStringCSS
|
|
{
|
|
get => hideSpenta ? "text-dark fw-bold" : "text-secondary";
|
|
}
|
|
|
|
#endregion Private Properties
|
|
|
|
#region Private Methods
|
|
|
|
private double calcolaPerc(double durata)
|
|
{
|
|
double answ = 0;
|
|
|
|
double tot = 0;
|
|
if (ListOdlStatsAct != null)
|
|
{
|
|
tot = ListOdlStatsAct.Sum(x => x.TotDurata);
|
|
|
|
double perc = (durata / tot) * 100;
|
|
if (perc > 1)
|
|
{
|
|
answ = Math.Round(perc, 2);
|
|
}
|
|
else
|
|
{
|
|
answ = Math.Round(perc, 4);
|
|
}
|
|
}
|
|
return answ;
|
|
}
|
|
|
|
private string pbStyle(string css)
|
|
{
|
|
string answ = "";
|
|
if (ListOdlStats != null)
|
|
{
|
|
if (css == "yellow")
|
|
{
|
|
answ = "orange";
|
|
}
|
|
else if (css == "blue")
|
|
{
|
|
answ = "#2874A6";
|
|
}
|
|
else
|
|
{
|
|
answ = css;
|
|
}
|
|
}
|
|
return answ;
|
|
}
|
|
|
|
private string tradFase(string codFase)
|
|
{
|
|
string answ = codFase;
|
|
if (ListStati != null && ListStati.Count > 0)
|
|
{
|
|
var recSel = ListStati.FirstOrDefault(x => x.value == codFase);
|
|
if (recSel != null)
|
|
{
|
|
answ = recSel.label;
|
|
}
|
|
}
|
|
return answ;
|
|
}
|
|
|
|
#endregion Private Methods
|
|
}
|
|
} |