diff --git a/MP.FileData/Controllers/FileController.cs b/MP.FileData/Controllers/FileController.cs index 10accd55..3d9cf039 100644 --- a/MP.FileData/Controllers/FileController.cs +++ b/MP.FileData/Controllers/FileController.cs @@ -568,6 +568,23 @@ namespace MP.FileData.Controllers return ArchiveList; } + /// + /// Recupera singola macchina + /// + /// + public MacchinaModel MacchinaGetByKey(string idxMacchina) + { + MacchinaModel dbResult = new MacchinaModel(); + using (MoonPro_ProgContext localDbCtx = new MoonPro_ProgContext(_configuration)) + { + dbResult = localDbCtx + .DbSetMacchine + .Where(x => x.IdxMacchina == idxMacchina) + .SingleOrDefault(); + } + return dbResult; + } + /// /// Elenco tabella Macchine /// diff --git a/MP.Prog/Components/ArchiveStatus.razor b/MP.Prog/Components/ArchiveStatus.razor index 3c7fbc27..f35e8a8b 100644 --- a/MP.Prog/Components/ArchiveStatus.razor +++ b/MP.Prog/Components/ArchiveStatus.razor @@ -15,7 +15,29 @@
@if (ListRecords == null) { - +
+
+ @if (showProgress) + { +
+
+ @if (setupMessages.Count > 0) + { +
    + @foreach (var item in setupMessages) + { +
  • @item
  • + } +
+ } +
+
+ } +
+
+ +
+
} else if (totalCount == 0) { @@ -55,9 +77,6 @@ } -
- @lastMessage -
}
\ No newline at end of file diff --git a/MP.Prog/Components/ArchiveStatus.razor.cs b/MP.Prog/Components/ArchiveStatus.razor.cs index 2d0d455d..3287dbf9 100644 --- a/MP.Prog/Components/ArchiveStatus.razor.cs +++ b/MP.Prog/Components/ArchiveStatus.razor.cs @@ -16,22 +16,13 @@ namespace MP.Prog.Components private int numChecks = 0; + private int totalCount = 0; + #endregion Private Fields #region Private Properties - private string lastMessage { get; set; } = ""; - - private int totalCount - { - get - { - int answ = 0; - if (ListRecords != null) - answ = ListRecords.Count(); - return answ; - } - } + private List setupMessages { get; set; } = new List(); #endregion Private Properties @@ -41,33 +32,53 @@ namespace MP.Prog.Components protected FileArchDataService DataService { get; set; } protected int percLoading { get; set; } = 0; - protected bool showProgress { get; set; } = true; + protected bool showProgress { get; set; } = false; #endregion Protected Properties + #region Private Methods + + private async Task verificaTutte(int maxHour) + { + // recupero elenco macchine + var listaMacchine = await DataService.MacchineGetAll(); + int numMacchine = listaMacchine.Count(); + foreach (var item in listaMacchine.Where(x => !string.IsNullOrEmpty(x.BasePath)).ToList()) + { + percLoading += 100 / numMacchine; + numChecks += await DataService.updateMachineArchive(item.IdxMacchina, maxHour, false); + setupMessages.Add($"{item.IdxMacchina}: {numChecks} files"); + StateHasChanged(); + + await Task.Delay(1); + } + } + + #endregion Private Methods + #region Protected Methods protected async Task ArchiveCheck(int maxHour) { - numChecks = await DataService.updateAllArchive(maxHour); - lastMessage = $"Effettuata verifica e rilettura di {numChecks} files!"; - await Task.Delay(1); + showProgress = true; + percLoading = 0; + await verificaTutte(maxHour); + + setupMessages.Add($"Effettuata verifica e rilettura di {numChecks} files!"); await ReloadData(); } protected async Task ClearMessage() { await Task.Delay(100); - lastMessage = ""; + setupMessages = new List(); } protected async Task ForceCheck(int maxHour) { - lastMessage = "Inizio Analisi Archivio..."; + setupMessages.Add("Inizio Analisi Archivio..."); ListRecords = null; - //await Task.Delay(1); await ArchiveCheck(maxHour); - //await Task.Delay(1); await ReloadData(); await ClearMessage(); } @@ -80,11 +91,14 @@ namespace MP.Prog.Components protected async Task ReloadData() { - await Task.Delay(10); + await Task.Delay(1); numChecks = 0; ListRecords = await DataService.GetArchiveStatus(); - await Task.Delay(100); - lastMessage = ""; + totalCount = ListRecords.Count; + await Task.Delay(1); + setupMessages = new List(); + showProgress = false; + percLoading = 0; } #endregion Protected Methods diff --git a/MP.Prog/Components/LoadingData.razor b/MP.Prog/Components/LoadingData.razor index b0624468..7ba1bac5 100644 --- a/MP.Prog/Components/LoadingData.razor +++ b/MP.Prog/Components/LoadingData.razor @@ -1,5 +1,5 @@ -

Working

-
+@*

Working

*@ +

loading data

diff --git a/MP.Prog/Data/FileArchDataService.cs b/MP.Prog/Data/FileArchDataService.cs index 2d624808..5335a42e 100644 --- a/MP.Prog/Data/FileArchDataService.cs +++ b/MP.Prog/Data/FileArchDataService.cs @@ -259,6 +259,11 @@ namespace MP.Prog.Data return await Task.FromResult(dbResult); } + public Task MacchinaGetByKey(string idxMacchina) + { + return Task.FromResult(dbController.MacchinaGetByKey(idxMacchina)); + } + public Task> MacchineGetAll() { return Task.FromResult(dbController.MacchineGetAll().ToList()); @@ -288,6 +293,24 @@ namespace MP.Prog.Data /// Numero giorni x ricerca all'indietro da data corrente / 0 = nessun limite /// public async Task updateAllArchive(int numDayPre) + { + int checkDone = 0; + var listaMacchine = await MacchineGetAll(); + foreach (var item in listaMacchine.Where(x => !string.IsNullOrEmpty(x.BasePath)).ToList()) + { + checkDone += await updateMachineArchive(item.IdxMacchina, numDayPre, false); + } + + return await Task.FromResult(checkDone); + } + + /// + /// Aggiorna archivio di una amcchina scansionando path relativo + /// + /// Codice macchina + /// Numero giorni x ricerca all'indietro da data corrente / 0 = nessun limite + /// + public async Task updateMachineArchive(string idxMacchina, int numDayPre, bool fullLog) { int checkDone = 0; Stopwatch stopWatch = new Stopwatch(); @@ -295,12 +318,12 @@ namespace MP.Prog.Data string ruleName = "Rule01.json"; try { - var listaMacchine = await MacchineGetAll(); - foreach (var item in listaMacchine.Where(x => !string.IsNullOrEmpty(x.BasePath)).ToList()) + var macchina = MacchinaGetByKey(idxMacchina).Result; + if (macchina != null && !string.IsNullOrEmpty(macchina.BasePath)) { - if (!string.IsNullOrEmpty(item.RuleName)) + if (!string.IsNullOrEmpty(macchina.RuleName)) { - ruleName = item.RuleName; + ruleName = macchina.RuleName; // gestione confRule... SearchRules currRule = new SearchRules(); try @@ -340,24 +363,24 @@ namespace MP.Prog.Data OutReplace = confReplace, OutExcludeFileName = true }; - - // serializzo - - string rawRule = JsonConvert.SerializeObject(currRule, Formatting.Indented); - Log.Info($"Conf rule generato:{Environment.NewLine}{rawRule}"); + if (fullLog) + { + // serializzo + string rawRule = JsonConvert.SerializeObject(currRule, Formatting.Indented); + Log.Info($"Conf rule generato:{Environment.NewLine}{rawRule}"); + } } - - checkDone += dbController.CheckFileArchived(item.IdxMacchina, item.BasePath, numDayPre, "*.*", currRule); + checkDone = dbController.CheckFileArchived(macchina.IdxMacchina, macchina.BasePath, numDayPre, "*.*", currRule); } } } catch (Exception exc) { - Log.Error($"Eccezione in updateAllArchive{Environment.NewLine}{exc}{Environment.NewLine}{exc.InnerException}"); + Log.Error($"Eccezione in updateMachineArchive{Environment.NewLine}{exc}{Environment.NewLine}{exc.InnerException}"); } stopWatch.Stop(); TimeSpan ts = stopWatch.Elapsed; - Log.Info($"Effettuato update archivio file | last {numDayPre} days | {checkDone} checked | {ts.TotalMilliseconds} ms"); + Log.Info($"Effettuato update archivio file MACCHINA | last {numDayPre} days | {checkDone} checked | {ts.TotalMilliseconds} ms"); return await Task.FromResult(checkDone); }