Files
mapo-mono/MP.MONO.UI/Components/ParamOverview.razor.cs
2022-03-18 18:37:58 +01:00

85 lines
2.3 KiB
C#

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<DisplayDataDTO>? ListRecords { get; set; } = null;
#endregion Private Properties
#region Private Methods
[Parameter]
public List<string> SelVal { get; set; } = new List<string>();
[Parameter]
public EventCallback<string> EC_SelValue { get; set; }
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<List<DisplayDataDTO>>(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<string>();
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
}