diff --git a/MP.FileData/Controllers/FileController.cs b/MP.FileData/Controllers/FileController.cs index 3d9cf039..3ca0e800 100644 --- a/MP.FileData/Controllers/FileController.cs +++ b/MP.FileData/Controllers/FileController.cs @@ -133,7 +133,7 @@ namespace MP.FileData.Controllers // salvo i NUOVI file if (fileNew != null && fileNew.Count > 0) { - FileInsert(idxMacchina, fileNew, 0, currRule); + FileInsert(idxMacchina, path, fileNew, 0, currRule); Log.Info($"CheckFileArchived S03 | insert {fileNew.Count} files"); } // aggiorno i file modificati @@ -276,7 +276,7 @@ namespace MP.FileData.Controllers /// /// /// - public bool FileInsert(string idxMacchina, List newFiles, int rev, SearchRules currRule) + public bool FileInsert(string idxMacchina, string basePath, List newFiles, int rev, SearchRules currRule) { // fare: lettura conf x macchina Log.Info($"FileInsert S01 per macchina {idxMacchina}: {newFiles.Count} files da valutare"); @@ -324,7 +324,14 @@ namespace MP.FileData.Controllers } } // cerco codice tag da configurazione - Tags = TagsUtils.searchProgComment(fileName, item.FileStringContent, currRule); + if (currRule.Mode == SearchMode.StringOnFile) + { + Tags = TagsUtils.searchProgComment(fileName, item.FileStringContent, currRule); + } + else + { + Tags = TagsUtils.searchPathName(fileName, basePath, currRule); + } foreach (var tag in Tags) { @@ -399,7 +406,7 @@ namespace MP.FileData.Controllers if (currRule.Name != "ND") { // inserisco come REVISIONE - FileInsert(currFile.IdxMacchina, listUpdate, currFile.Rev + 1, currRule); + FileInsert(currFile.IdxMacchina, currMacchina.BasePath, listUpdate, currFile.Rev + 1, currRule); // archivio vecchio file currFile.Active = false; diff --git a/MP.FileData/SearchRules.cs b/MP.FileData/SearchRules.cs index d928d5a2..bcf3c818 100644 --- a/MP.FileData/SearchRules.cs +++ b/MP.FileData/SearchRules.cs @@ -14,7 +14,7 @@ namespace MP.FileData StringOnFile, /// - /// Cerca da path relativo + nume file + /// Cerca da path relativo + nome file /// PathAndName } diff --git a/MP.FileData/TagsUtils.cs b/MP.FileData/TagsUtils.cs index 15dfb70c..9233efed 100644 --- a/MP.FileData/TagsUtils.cs +++ b/MP.FileData/TagsUtils.cs @@ -1,6 +1,7 @@ using NLog; using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Text; using System.Text.RegularExpressions; @@ -27,6 +28,53 @@ namespace MP.FileData #region Public Methods + /// + /// Cerca tag a aprtire da directory + nome file, ignorando delle stopword + /// + /// es: ...\BUSSOLE.WPD\172L_EST8.MPF --> "BUSSOLE", "172L_EST8" + /// + /// Nome del file (path completo) + /// Parametri analisi + /// + public static List searchPathName(string filePath, string basePath, SearchRules currRule) + { + List answ = new List(); + string fileName = Path.GetFileName(filePath); + // dal nome se richeisto estraggo... + if (!currRule.OutExcludeFileName) + { + // bonifico + foreach (var item in currRule.OutReplace) + { + fileName = fileName.Replace(item.Key, item.Value); + } + // aggiungo fileName + answ.Add(fileName); + } + // ora da path... escludo base e file... + string dirPath = filePath.Replace(fileName, "").Replace(basePath, ""); + // splitto per "/" + var pathTags = dirPath.Split(@"\"); + foreach (var segmenti in pathTags) + { + string rawData = segmenti; + // bonifico + foreach (var item in currRule.OutReplace) + { + rawData = rawData.Replace(item.Key, item.Value); + } + // fix replace filtro + answ.Add(rawData); + } + + // se nullo --> segnalo! + if (answ.Count == 0) + { + Log.Warn($"searchPathName Attenzione Tag non trovati | {filePath} | basePath: {basePath}"); + } + return answ; + } + /// /// Cerca tag di commento inseriti nel formato /// NOME_PROG(commento) diff --git a/MP.Prog/Components/ArchiveStatus.razor.cs b/MP.Prog/Components/ArchiveStatus.razor.cs index 3287dbf9..8ecffc3c 100644 --- a/MP.Prog/Components/ArchiveStatus.razor.cs +++ b/MP.Prog/Components/ArchiveStatus.razor.cs @@ -46,7 +46,7 @@ namespace MP.Prog.Components foreach (var item in listaMacchine.Where(x => !string.IsNullOrEmpty(x.BasePath)).ToList()) { percLoading += 100 / numMacchine; - numChecks += await DataService.updateMachineArchive(item.IdxMacchina, maxHour, false); + numChecks = await DataService.updateMachineArchive(item.IdxMacchina, maxHour, false); setupMessages.Add($"{item.IdxMacchina}: {numChecks} files"); StateHasChanged(); @@ -70,7 +70,7 @@ namespace MP.Prog.Components protected async Task ClearMessage() { - await Task.Delay(100); + await Task.Delay(500); setupMessages = new List(); } @@ -78,9 +78,10 @@ namespace MP.Prog.Components { setupMessages.Add("Inizio Analisi Archivio..."); ListRecords = null; + await Task.Delay(1); await ArchiveCheck(maxHour); - await ReloadData(); await ClearMessage(); + await ReloadData(); } protected override async Task OnInitializedAsync() diff --git a/MP.Prog/Components/LoadingData.razor b/MP.Prog/Components/LoadingData.razor index 7ba1bac5..2aa17997 100644 --- a/MP.Prog/Components/LoadingData.razor +++ b/MP.Prog/Components/LoadingData.razor @@ -1,5 +1,5 @@ @*

Working

*@ -
+

loading data