Files
2025-04-14 18:25:13 +02:00

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
}
}