using MP.MONO.Data.DbModels; namespace MP.MONO.UI.Components { public partial class SchedMaintTask { #region Protected Methods protected override async Task OnInitializedAsync() { await ReloadData(); } #endregion Protected Methods #region Private Fields private int _MaxRecord = 200; private bool _showCompleted = false; private List? ListRecords = null; // FARE!!! filtro macchina private int MachineId = 1; private List? SearchRecords = null; #endregion Private Fields #region Private Properties private int _currPage { get; set; } = 1; private int _numRecord { get; set; } = 10; private int currPage { get => _currPage; set { if (_currPage != value) { _currPage = value; var pUpd = Task.Run(async () => await ReloadData()); pUpd.Wait(); } } } private bool isLoading { get; set; } = false; private int MaxRecord { get { return _MaxRecord; } set { if (_MaxRecord != value) { _MaxRecord = value; var pUpd = Task.Run(async () => await ReloadData()); pUpd.Wait(); } } } private int numRecord { get => _numRecord; set { if (_numRecord != value) { _numRecord = value; var pUpd = Task.Run(async () => await ReloadData()); pUpd.Wait(); } } } private bool showCompleted { get { return _showCompleted; } set { _showCompleted = value; var pUpd = Task.Run(async () => await ReloadData()); pUpd.Wait(); } } private int totalCount { get { int answ = 0; if (SearchRecords != null) { answ = SearchRecords.Count; } return answ; } } #endregion Private Properties #region Private Methods private void ForceReload(int newNum) { numRecord = newNum; } private void ForceReloadPage(int newNum) { currPage = newNum; } private async Task RegenTask() { await MMDataService.createMissingSchedTask(MachineId); await ReloadData(); } private bool showTaskConf { get; set; } = false; private void ShowConfirm(int SMTaskId) { showTaskConf = !showTaskConf; currSMTaskId = SMTaskId; } private DateTime execDate { get; set; } = DateTime.Today.AddHours(DateTime.Now.Hour); private string execName { get; set; } = ""; private int currSMTaskId { get; set; } = 0; private string modalShow { get => showTaskConf ? "show" : "hide"; } private async Task ConfirmDone() { // se ho dataora ed esecutore... if (!string.IsNullOrEmpty(execName) && currSMTaskId > 0) { // salvo! bool fatto = await MMDataService.SchedMaintTaskSetDone(MachineId, currSMTaskId, execDate, execName); // rigenero! await RegenTask(); } } private async Task ReloadData() { isLoading = true; ListRecords = null; await Task.Delay(1); SearchRecords = await MMDataService.SchedMaintTaskGetFilt(MachineId, 0, MaxRecord, showCompleted); ListRecords = SearchRecords.Skip(numRecord * (currPage - 1)).Take(numRecord).ToList(); await Task.Delay(1); await Task.Delay(1); isLoading = false; } private async Task ToggleCompleted() { await Task.Delay(1); showCompleted = !showCompleted; await Task.Delay(1); } private int LimitDayPeriod { get; set; } = 7; /// /// Valore limite (in ore) per indicare come rosso una scadenza /// private int redLim = 24 * 2; /// /// Valore limite (in ore) per indicare come giallo una scadenza /// private int yelLim = 24 * 7; #endregion Private Methods } }