using Microsoft.AspNetCore.Components; using MP.FileData.DTO; using MP.Land.Data; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace MP.Land.Components { public partial class ArchiveStatus { #region Private Fields private List ListRecords; private int numChecks = 0; private int totalCount = 0; #endregion Private Fields #region Private Properties private List setupMessages { get; set; } = new List(); #endregion Private Properties #region Protected Properties [Inject] protected FileArchDataService DataService { get; set; } protected int percLoading { get; set; } = 0; protected bool showProgress { get; set; } = false; #endregion Protected Properties #region Private Methods private async Task verificaSingola(string idxMacchina, int numDays, int numMacchine) { // recupero elenco macchine percLoading += 100 / numMacchine; numChecks = await DataService.updateMachineArchive(idxMacchina, numDays, true, false); await Task.Delay(1); setupMessages.Add($"{idxMacchina}: {numChecks} files"); StateHasChanged(); await Task.Delay(1); } private async Task verificaTutte(int numDays) { // recupero elenco macchine var listaMacchine = await DataService.MacchineGetAll(); int numMacchine = listaMacchine.Count(); foreach (var item in listaMacchine.Where(x => !string.IsNullOrEmpty(x.BasePath)).ToList()) { await verificaSingola(item.IdxMacchina, numDays, numMacchine); } } #endregion Private Methods #region Protected Methods protected async Task ArchiveCheck(int maxHour) { showProgress = true; percLoading = 0; await verificaTutte(maxHour); setupMessages.Add($"Effettuata verifica e rilettura di {numChecks} files!"); await ReloadData(); } protected async Task ArchiveSingleCheck(string idxMacchina, int maxHour) { showProgress = true; percLoading = 0; await verificaSingola(idxMacchina, maxHour, 2); setupMessages.Add($"Effettuata verifica e rilettura di {numChecks} files!"); await ReloadData(); } protected async Task ClearMessage() { await Task.Delay(10); setupMessages = new List(); } protected async Task ForceCheck(int maxHour) { setupMessages.Add("Inizio Analisi Archivio..."); ListRecords = null; await Task.Delay(1); await ArchiveCheck(maxHour); await ClearMessage(); await ReloadData(); } protected async Task ForceCheckMacchina(string idxMacchina) { setupMessages.Add("Inizio Analisi Archivio..."); ListRecords = null; await Task.Delay(1); await ArchiveSingleCheck(idxMacchina, 0); await ClearMessage(); await ReloadData(); } protected override async Task OnInitializedAsync() { ListRecords = null; await ReloadData(); } protected async Task ReloadData() { await Task.Delay(1); numChecks = 0; ListRecords = await DataService.GetArchiveStatus(); totalCount = ListRecords.Count; await Task.Delay(1); setupMessages = new List(); showProgress = false; percLoading = 0; } #endregion Protected Methods } }