Files
mapo-core/MP.SPEC/Components/ListPARAMS.razor.cs
T
2022-09-14 17:38:16 +02:00

188 lines
4.7 KiB
C#

using Microsoft.AspNetCore.Components;
using Microsoft.JSInterop;
using MP.Data.DatabaseModels;
using MP.SPEC.Data;
namespace MP.SPEC.Components
{
public partial class ListPARAMS
{
#region Public Properties
[Parameter]
public int MaxRecord
{
get => _maxRecord;
set
{
if (_maxRecord != value)
{
_maxRecord = value;
var pUpd = Task.Run(async () => await reloadData(true));
pUpd.Wait();
}
}
}
[Parameter]
public EventCallback<bool> PagerResetReq { get; set; }
[Parameter]
public string SelFlux
{
get => _selFlux;
set
{
if (_selFlux != value)
{
_selFlux = value;
var pUpd = Task.Run(async () => await reloadData(false));
pUpd.Wait();
}
}
}
[Parameter]
public string SelMacchina
{
get => _selMacchina;
set
{
if (_selMacchina != value)
{
_selMacchina = value;
var pUpd = Task.Run(async () => await reloadData(false));
pUpd.Wait();
}
}
}
#endregion Public Properties
#region Public Methods
public string checkSelect(string IdxMacchina)
{
string answ = "";
if (currRecord != null)
{
try
{
answ = (currRecord.IdxMacchina == IdxMacchina) ? "table-info" : "";
}
catch
{ }
}
return answ;
}
public async Task reloadData(bool setChanged)
{
isLoading = true;
SearchRecords = await MDService.FluxLogGetLastFilt(SelMacchina, SelFlux, MaxRecord);
totalCount = SearchRecords.Count;
ListRecords = SearchRecords.Skip(numRecord * (currPage - 1)).Take(numRecord).ToList();
await Task.Delay(1);
if (setChanged)
{
await InvokeAsync(() => StateHasChanged());
}
isLoading = false;
}
#endregion Public Methods
#region Protected Properties
[Inject]
protected IJSRuntime JSRuntime { get; set; } = null!;
[Inject]
protected MpDataService MDService { get; set; } = null!;
[Inject]
protected MessageService MessageService { get; set; } = null!;
#endregion Protected Properties
#region Protected Methods
protected override async Task OnInitializedAsync()
{
MessageService.EA_PageUpdated += MessageService_EA_PageUpdated;
MessageService.EA_SearchUpdated += OnSeachUpdated;
await reloadData(true);
}
protected async void OnSeachUpdated()
{
await InvokeAsync(() =>
{
PagerResetReq.InvokeAsync(true);
//currPage = 1;
Task task = UpdateData();
StateHasChanged();
});
}
protected async Task UpdateData()
{
currRecord = null;
await reloadData(true);
}
#endregion Protected Methods
#region Private Fields
private int _maxRecord = 300;
private string _selFlux = "*";
private string _selMacchina = "*";
private FluxLog? currRecord = null;
private List<FluxLog>? ListRecords;
private List<FluxLog>? SearchRecords;
#endregion Private Fields
#region Private Properties
private int currPage
{
get => MessageService.currPage;
set => MessageService.currPage = value;
}
private bool isLoading { get; set; } = false;
private int numRecord
{
get => MessageService.numRecord;
set => MessageService.numRecord = value;
}
private string SearchVal
{
get => string.IsNullOrEmpty(MessageService.SearchVal) ? "*" : MessageService.SearchVal;
}
private int totalCount
{
get => MessageService.totalCount;
set => MessageService.totalCount = value;
}
#endregion Private Properties
#region Private Methods
private async void MessageService_EA_PageUpdated()
{
await reloadData(true);
}
#endregion Private Methods
}
}