@if (RecMSE == null) {
} else { @if (FullMode) {
@RecMSE.CodMacchina
Art
@RecMSE.CodArticolo
@($"PODL{RecMSE.IdxPOdl:00000000}")
@($"ODL{RecMSE.IdxOdl:00000000}")

@RecMSE.Nome

@RecMSE.DescrizioneStato
@(formatDurata(RecMSE.Durata))
Confermati
Prodotti
Ordinati
@($"{RecMSE.PezziConf:N0}")
@($"{RecMSE.PezziProd:N0}")
@($"{RecMSE.NumPezzi:N0}")
} else { } } @code { [Parameter] public MappaStatoExpl? RecMSE { get; set; } = null; [Parameter] public int keepAliveMin { get; set; } = 5; [Parameter] public bool FullMode { get; set; } = true; [Inject] protected NavigationManager NavMan { get; set; } = null!; protected int kaFactor = 60 / 2; protected override void OnInitialized() { // se configurata uso cartella virtuale... altrimenti cartella processo imgBasePath = Environment.CurrentDirectory;// @"C:\Steamware\macchine"; } private string imgBasePath = ""; protected ProdAdvDispl.ProdCounter CurrCount { get { ProdAdvDispl.ProdCounter answ = new ProdAdvDispl.ProdCounter() { numPzConf = (int)RecMSE.PezziConf, numPzOrd= (int)RecMSE.NumPezzi, numPzProd= (int)RecMSE.PezziProd }; return answ; } } protected async Task ShowDetail() { NavMan.NavigateTo($"machine-detail/?IdxMacc={RecMSE!.IdxMacchina}"); } /// /// url completo immagine /// /// /// public string ImgUrlMacc(string url) { string answ = ""; if (string.IsNullOrEmpty(url.ToString())) { url = "Steamware.png"; } // verifico esistenza macchina SMALL... answ = $"images/macchine/small/{url}"; string fullPath = Path.Combine(imgBasePath, "wwwroot", answ); if (!File.Exists(fullPath)) { // se non ci fosse cerco immagine fullsize answ = $"images/macchine/{url}"; fullPath = Path.Combine(imgBasePath, "wwwroot", answ); } // altrimenti metto default Steamware if (!File.Exists(fullPath)) { answ = "images/macchine/Steamware.png"; } return answ; } /// /// formatta la durata in minuti in un modo "human readable" gg/ore/min /// /// minuti /// public static string formatDurata(double? minuti) { string answ = "??"; if (minuti != null) { DateTime tempo = new DateTime(); tempo = tempo.AddMinutes((double)minuti); if (minuti < 60) { answ = $"{tempo.Minute:00}:{tempo.Second:00}"; } else if (minuti < 1440) { answ = $"{tempo.Hour}h {tempo.Minute}m"; } else { answ = $"{tempo.DayOfYear}g {tempo.Hour}h"; } } return answ; } private string cssComStatus(string semaforo, DateTime? lastUpdateN) { DateTime lastUpdate = lastUpdateN.HasValue ? (DateTime)lastUpdateN : DateTime.Now.AddHours(-1); string answ = cssStatus(semaforo); if (DateTime.Now.Subtract(lastUpdate).TotalSeconds > (keepAliveMin * kaFactor)) { answ = $"{baseCss}Ro"; // blink se secondo pari... DateTime adesso = DateTime.Now; int resto = 0; Math.DivRem(adesso.Second, 2, out resto); if (resto == 0) { answ += "_b"; } } return answ; } private string cssStatus(string codSemaforo) { // se vuoto --> mostra nero! if (string.IsNullOrEmpty(codSemaforo)) { codSemaforo = "sNe"; } string codColore = codSemaforo.Substring(1, 2); string answ = $"{baseCss}{codColore}"; return answ; } protected string baseCss = "sem"; }