Files
mapo-mono/MP.MONO.UI/Components/ParamPlot.razor.cs
T
Samuele Locatelli 03f811de57 Revisione display
2022-04-28 17:29:41 +02:00

172 lines
4.4 KiB
C#

using Microsoft.AspNetCore.Components;
using MP.MONO.Data;
using MP.MONO.Data.DbModels;
namespace MP.MONO.UI.Components
{
public partial class ParamPlot
{
#region Private Fields
private List<DataLogModel>? ListRecords = null;
#endregion Private Fields
#region Protected Fields
protected DateTime lastRec = DateTime.Now.AddMinutes(-1);
protected List<chartJsData.chartJsTSerie> LevelVal = new List<chartJsData.chartJsTSerie>();
protected Dictionary<string, string> listMaxVal = new Dictionary<string, string>();
protected Dictionary<string, string> listMinVal = new Dictionary<string, string>();
#endregion Protected Fields
#region Private Properties
private bool isLoading { get; set; } = false;
#endregion Private Properties
#region Protected Properties
protected string _selParam { get; set; } = "";
protected DateTime DateFrom { get; set; } = DateTime.Today.AddDays(-1);
protected DateTime DateTo { get; set; } = DateTime.Today.AddDays(1);
protected string? MaxVal
{
get
{
string answ = "0";
if (listMaxVal != null && listMaxVal.Count > 0)
{
answ = listMaxVal[SelectedParam] ?? "0";
}
return answ;
}
}
protected string? MinVal
{
get
{
string answ = "0";
if (listMinVal != null && listMinVal.Count > 0)
{
answ = listMinVal[SelectedParam] ?? "0";
}
return answ;
}
}
#endregion Protected Properties
#region Public Properties
[Parameter]
public DateTime EndDate
{
get
{
return DateTo;
}
set
{
DateTo = value;
var pUpd = Task.Run(async () => await ReloadData());
pUpd.Wait();
}
}
[Parameter]
public int MachineId { get; set; } = 1;
public string ParamId
{
get => _selParam.Replace(" ", "_");
}
[Parameter]
public string SelectedParam
{
get
{
return _selParam;
}
set
{
// controllo se è variato
if (_selParam != value)
{
// salvo
_selParam = value;
var pUpd = Task.Run(async () => await ReloadData());
pUpd.Wait();
}
}
}
[Parameter]
public DateTime StartDate
{
get
{
return DateFrom;
}
set
{
DateFrom = value;
var pUpd = Task.Run(async () => await ReloadData());
pUpd.Wait();
}
}
#endregion Public Properties
#region Protected Methods
protected List<string> getFillColors(string alpha)
{
List<string> answ = new List<string>();
answ.Add($"rgba(108, 214, 164, {alpha})");
return answ;
}
protected List<string> getLineColors(string alpha)
{
List<string> answ = new List<string>();
answ.Add($"rgba(54, 204, 82, {alpha})");
return answ;
}
protected List<string> getPointColors(string alpha)
{
List<string> answ = new List<string>();
answ.Add($"rgba(108, 158, 118, {alpha})");
return answ;
}
protected override async Task OnInitializedAsync()
{
await ReloadData();
await Task.Delay(1);
}
protected async Task ReloadData()
{
isLoading = true;
ListRecords = null;
await Task.Delay(1);
ListRecords = await MMDataService.DataLogGetFilt(MachineId, SelectedParam, StartDate, EndDate);
// converto in plotdata
LevelVal = ListRecords.Select(l => new chartJsData.chartJsTSerie() { x = l.DtRif, y = l.ValNum }).ToList();
await Task.Delay(1);
isLoading = false;
}
#endregion Protected Methods
}
}