Files
mapo-mono/MP.MONO.UI/Components/ParamPlot.razor.cs
T
2022-09-23 17:05:06 +02:00

165 lines
4.2 KiB
C#

using Microsoft.AspNetCore.Components;
using MP.MONO.Data;
using MP.MONO.UI.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 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
protected DataLogFilter _SelFilter { get; set; } = new DataLogFilter();
[Parameter]
public DataLogFilter SelFilter
{
get => _SelFilter;
set
{
if (!_SelFilter.Equals(value))
{
_SelFilter = value;
var pUpd = Task.Run(async () => await ReloadData());
pUpd.Wait();
}
}
}
//[Parameter]
//public DateTime EndDate
private DateTime EndDate
{
get => _SelFilter.DtEnd;
//set => _SelFilter.DtEnd = value;
}
[Parameter]
public int MachineId { get; set; } = 1;
public string ParamId
{
get => _selParam.Replace(" ", "_");
}
[Parameter]
public string SelectedParam
{
get => _selParam;
set => _selParam = value;
}
//[Parameter]
//public DateTime StartDate
private DateTime StartDate
{
get => _SelFilter.DtStart;
//set => _SelFilter.DtStart = value;
}
#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()
{
//isLoading = true;
//ListRecords = null;
//await Task.Delay(1);
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
}
}