using Microsoft.AspNetCore.Components; using MP.MONO.Core.DTO; using MP.MONO.Data; using Newtonsoft.Json; namespace MP.MONO.UI.Components { public partial class ParamOverview { #region Private Properties private List? ListRecords { get; set; } = null; #endregion Private Properties #region Private Methods [Parameter] public List SelVal { get; set; } = new List(); [Parameter] public EventCallback EC_SelValue { get; set; } protected List LevelVal = new List(); protected string cssActive(string ParamName) { string answ = SelVal.Contains(ParamName) ? "bg-dark text-light": ""; return answ; } private void ParametersPipe_EA_NewMessage(object? sender, EventArgs e) { PubSubEventArgs currArgs = (PubSubEventArgs)e; if (!string.IsNullOrEmpty(currArgs.newMessage)) { try { ListRecords = JsonConvert.DeserializeObject>(currArgs.newMessage); } catch { } } InvokeAsync(() => { StateHasChanged(); }); } #endregion Private Methods #region Protected Methods protected override async Task OnInitializedAsync() { await ReloadData(); MMDataService.parametersPipe.EA_NewMessage += ParametersPipe_EA_NewMessage; } protected async Task ReloadData() { SelVal = new List(); ListRecords = await MMDataService.getParameters(); } protected string percProgress(double num, double minVal, double maxVal) { string answ = "width: 0%;"; double den = (maxVal - minVal) != 0 ? (maxVal - minVal) : 1; double ratio = ((double)num) / den; answ = $"width: {ratio:P0};"; return answ; } protected void raiseSelect(string SelectedValue) { if (!SelVal.Contains(SelectedValue)) { SelVal.Add(SelectedValue); } EC_SelValue.InvokeAsync(SelectedValue); } } #endregion Protected Methods }