156 lines
4.3 KiB
C#
156 lines
4.3 KiB
C#
using Microsoft.AspNetCore.Components;
|
|
using MP.MONO.Core.DTO;
|
|
using MP.MONO.Data;
|
|
using MP.MONO.UI.Data;
|
|
using Newtonsoft.Json;
|
|
using System.Collections.Immutable;
|
|
|
|
namespace MP.MONO.UI.Components
|
|
{
|
|
public partial class AlarmsOverview : IDisposable
|
|
{
|
|
#region Public Properties
|
|
|
|
[Parameter]
|
|
public EventCallback<int> messageReceived { get; set; }
|
|
|
|
[Parameter]
|
|
public bool compMode { get; set; } = false;
|
|
|
|
#endregion Public Properties
|
|
|
|
#region Public Methods
|
|
|
|
public void Dispose()
|
|
{
|
|
MMDataService.alarmPipe.EA_NewMessage -= AlarmPipe_EA_NewMessage;
|
|
}
|
|
|
|
private string css()
|
|
{
|
|
string answ = "";
|
|
if (ListRecords != null)
|
|
{
|
|
if (ListRecords.Count == 0)
|
|
{
|
|
answ = "text-dark";
|
|
}
|
|
else
|
|
{
|
|
answ = "pulse-warning text-warning bg-danger ";
|
|
}
|
|
}
|
|
return answ;
|
|
}
|
|
private void showAalarms()
|
|
{
|
|
compMode = !compMode;
|
|
}
|
|
|
|
#endregion Public Methods
|
|
|
|
#region Protected Methods
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
await ReloadData();
|
|
MMDataService.alarmPipe.EA_NewMessage += AlarmPipe_EA_NewMessage;
|
|
}
|
|
|
|
protected async Task ReloadData()
|
|
{
|
|
var alarmList = await MMDataService.getAlarms();
|
|
ListRecords = alarmList.Select(x => new DisplayDataDTO()
|
|
{
|
|
IsNumeric = false,
|
|
Title = $"{DateTime.Now:yyyy-MM-dd HH:mm:ss}",
|
|
Value = x,
|
|
Order = ListRecords == null ? 0 : ListRecords.Count
|
|
}).ToList();
|
|
|
|
}
|
|
|
|
#endregion Protected Methods
|
|
|
|
#region Private Properties
|
|
|
|
private List<DisplayDataDTO>? ListRecords { get; set; } = new List<DisplayDataDTO>();
|
|
|
|
private selectGlobalToggle currFilter { get; set; } = new selectGlobalToggle();
|
|
|
|
private int numAlarm
|
|
{
|
|
get => currFilter.numAlarms;
|
|
set
|
|
{
|
|
if (ListRecords != null)
|
|
{
|
|
currFilter.numAlarms = value;
|
|
}
|
|
}
|
|
}
|
|
|
|
#endregion Private Properties
|
|
|
|
#region Private Methods
|
|
|
|
private void AlarmPipe_EA_NewMessage(object? sender, EventArgs e)
|
|
{
|
|
PubSubEventArgs currArgs = (PubSubEventArgs)e;
|
|
// conversione on-the-fly List<string> --> allarmi
|
|
if (!string.IsNullOrEmpty(currArgs.newMessage))
|
|
{
|
|
try
|
|
{
|
|
var alarmList = JsonConvert.DeserializeObject<List<string>>(currArgs.newMessage);
|
|
if (alarmList != null)
|
|
{
|
|
ListRecords = alarmList.Select(x => new DisplayDataDTO()
|
|
{
|
|
IsNumeric = false,
|
|
Title = $"{DateTime.Now:yyyy-MM-dd HH:mm:ss}",
|
|
Value = x,
|
|
Order = ListRecords == null ? 0 : ListRecords.Count
|
|
}).ToList();
|
|
messageReceived.InvokeAsync(alarmList.Count);
|
|
}
|
|
if (ListRecords == null || ListRecords.Count != 0)
|
|
{
|
|
//compMode = false;
|
|
trigger.show = false;
|
|
}
|
|
else
|
|
{
|
|
//compMode = true;
|
|
trigger.show = true;
|
|
}
|
|
}
|
|
catch
|
|
{ }
|
|
}
|
|
InvokeAsync(() =>
|
|
{
|
|
StateHasChanged();
|
|
});
|
|
|
|
if (ListRecords == null)
|
|
{
|
|
ListRecords = new List<DisplayDataDTO>();
|
|
}
|
|
|
|
if (ListRecords != null)
|
|
{
|
|
numAlarm = ListRecords.Count;
|
|
}
|
|
|
|
|
|
}
|
|
toolsTrigger trigger = new toolsTrigger();
|
|
|
|
protected string cardHeight
|
|
{
|
|
get => compMode ? "height: 30rem" : "";
|
|
}
|
|
#endregion Private Methods
|
|
}
|
|
} |