using Microsoft.AspNetCore.Components; using System.Runtime.CompilerServices; using System.Threading.Tasks; using WebWindowComplex.Models; using static WebWindowComplex.Json.WindowConst; namespace WebWindowComplex.Compo { public partial class AreaHwOption { /// /// Sash corrente rispetto alla lista Sash /// [CascadingParameter(Name = "CurrSashGroup")] public Sash CurrSashGroup { get; set; } = null!; /// /// Evento per aggiornare gli hardware option /// [Parameter] public EventCallback EC_UpdateHwOpt { get; set; } /// /// Evento per chiamare la prima volta la lista delle opzioni /// [Parameter] public EventCallback EC_FirstHwOptionList { get; set; } [CascadingParameter(Name = "IsLoading")] public List IsLoading { get; set; } = new List(); private bool hwOptCollapsed { get; set; } = true; protected override void OnAfterRender(bool firstRender) { if (firstRender) { hwOptCollapsed = true; } } /// /// Metodo per aprire/chiudere area per hw option /// /// private async Task changeCollapsed() { hwOptCollapsed = !hwOptCollapsed; if (CurrSashGroup.HwOptionList.Count == 0) { await EC_FirstHwOptionList.InvokeAsync(); } } private string hwIcon { get => hwOptCollapsed ? "fa-solid fa-chevron-down" : "fa-solid fa-chevron-up"; } /// /// Report aggiornamento Option Combo /// /// /// private Task RaiseOptCombo(AGBOptionCombo updRec) { var args = new DataUpdateHwOption { AGBOptCombo = updRec }; return EC_UpdateHwOpt.InvokeAsync(args); } /// /// Report aggiornamento Option Text /// /// /// private Task RaiseOptText(AGBOptionText updRec) { var args = new DataUpdateHwOption { AGBOptText = updRec }; return EC_UpdateHwOpt.InvokeAsync(args); } private bool IsLoadingHwOpt { get => IsLoading != null && IsLoading.Count > 0 && IsLoading.Contains("LoadHwOpt"); } } /// /// Classe per oggetto di aggiornamento delle opzioni /// public class DataUpdateHwOption { public AGBOptionText AGBOptText { get; set; } = null!; public AGBOptionCombo AGBOptCombo { get; set; } = null!; } }