@using System.Collections.Generic @using System.Globalization
@if (!string.IsNullOrWhiteSpace(Title)) {
@Title @if (Total > 0) { Totale: @Total }
} @if (Total > 0) {
@if (ShowIcon) { ✅ OK: } @success
@if (ShowIcon) { ⚠️ Warning: } @warning
@if (ShowIcon) { 🚨 Danger: } @danger
} else {
Nessun record
}
@code { /// /// Dizionario valori dussiviso tra success/warning/danger /// [Parameter] public Dictionary? ParetoData { get; set; } /// /// Titolo del display /// [Parameter] public string Title { get; set; } = "Distribuzione"; /// /// Indica se mostrare icona insieme al numero dentro i blocchi /// [Parameter] public bool ShowIcon { get; set; } = false; /// /// Valore larghezza calcolata in % corretta /// /// /// private string CalcPctCss(double currVal) { var dblVal = Total > 0 ? currVal / (double)Total * 100 : 0; return $"{dblVal.ToString("F2", CultureInfo.InvariantCulture)}%"; } // Proprietà calcolate con fallback sicuro private int success => ParetoData?.GetValueOrDefault("success", 0) ?? 0; private int warning => ParetoData?.GetValueOrDefault("warning", 0) ?? 0; private int danger => ParetoData?.GetValueOrDefault("danger", 0) ?? 0; private int Total => success + warning + danger; private double SuccessPct => Total > 0 ? (success / (double)Total) * 100 : 0; private double WarningPct => Total > 0 ? (warning / (double)Total) * 100 : 0; private double DangerPct => Total > 0 ? (danger / (double)Total) * 100 : 0; }