diff --git a/Adaptation/FileHandlers/MoveMatchingFiles/FileRead.cs b/Adaptation/FileHandlers/MoveMatchingFiles/FileRead.cs index d7158a1..7bec41e 100644 --- a/Adaptation/FileHandlers/MoveMatchingFiles/FileRead.cs +++ b/Adaptation/FileHandlers/MoveMatchingFiles/FileRead.cs @@ -268,7 +268,7 @@ public class FileRead : Shared.FileRead, IFileRead } } - private static ReadOnlyCollection
GetPreCollection(int numberLength, string parentDirectory, ReadOnlyCollectionmatchingFiles, bool _) + private static ReadOnlyCollection GetPreCollection(int numberLength, string parentDirectory, ReadOnlyCollectionmatchingFiles) { List results = new(); Pre pre; @@ -366,10 +366,7 @@ public class FileRead : Shared.FileRead, IFileRead { CreatePointerFile(numberLength, parentParentDirectory, matchingFiles); } catch (Exception) { } } - JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(processDataStandardFormat); - Listdescriptions = QS408M.ProcessData.GetDescriptions(jsonElements); - bool mesEntityMatchesProcess = descriptions.Count > 0 && descriptions[0].MesEntity == descriptions[0].Reactor; - ReadOnlyCollection preCollection = GetPreCollection(numberLength, parentParentDirectory, matchingFiles, mesEntityMatchesProcess); + ReadOnlyCollectionpreCollection = GetPreCollection(numberLength, parentParentDirectory, matchingFiles); ReadOnlyCollectionpreWithCollection = GetPreWithCollection(preCollection); MoveCollection(dateTime, processDataStandardFormat, preWithCollection); return results; diff --git a/Adaptation/FileHandlers/OpenInsight/FileRead.cs b/Adaptation/FileHandlers/OpenInsight/FileRead.cs index 27ac683..19c45b7 100644 --- a/Adaptation/FileHandlers/OpenInsight/FileRead.cs +++ b/Adaptation/FileHandlers/OpenInsight/FileRead.cs @@ -9,7 +9,6 @@ using System.Collections.Generic; using System.Globalization; using System.IO; using System.Linq; -using System.Text; using System.Text.Json; namespace Adaptation.FileHandlers.OpenInsight; @@ -18,7 +17,6 @@ public class FileRead : Shared.FileRead, IFileRead { private readonly string _IqsConnectionString; - private readonly string _OpenInsightFilePattern; private readonly string _OpenInsightApiECDirectory; public FileRead(ISMTP smtp, Dictionary fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList modelObjectParameters, string equipmentDictionaryName, Dictionary > dummyRuns, Dictionary > staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : @@ -34,7 +32,6 @@ public class FileRead : Shared.FileRead, IFileRead if (!_IsDuplicator) throw new Exception(cellInstanceConnectionName); _IqsConnectionString = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "IQS.ConnectionString"); - _OpenInsightFilePattern = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "OpenInsight.FilePattern"); _OpenInsightApiECDirectory = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "OpenInsight.Api.EC.Directory"); } @@ -113,31 +110,9 @@ public class FileRead : Shared.FileRead, IFileRead return results; } - private static string GetLines(List descriptions) - { - StringBuilder results = new(); - char del = '\t'; - QS408M.Description x = descriptions[0]; - _ = results.Append("Bio-Rad ").Append(x.UniqueId).Append(del). - Append(x.Date).Append(del). - Append(x.ThicknessFourteenCriticalPointsAverage).Append(del). - Append(x.Recipe).Append(del). - Append(x.Reactor).Append(del). - Append(x.RDS).Append(del). - Append(x.PSN).Append(del). - Append(x.Layer).Append(del). - Append(x.Zone).Append(del). - Append(x.Cassette).Append(del). - Append(x.Wafer).Append(del). - Append(x.RVThickness); - for (int i = 0; i < descriptions.Count; i++) - _ = results.Append(del).Append(descriptions[i].Position). - Append(del).Append(descriptions[i].Thickness); - return results.ToString(); - } - private void SaveOpenInsightFile(string reportFullPath, DateTime dateTime, ProcessDataStandardFormat processDataStandardFormat, List descriptions, Test[] tests) { + string duplicateFile; bool isDummyRun = false; List<(Shared.Properties.IScopeInfo, string)> collection = new(); string duplicateDirectory = Path.Combine(_FileConnectorConfiguration.SourceFileLocation, _CellInstanceName); @@ -153,36 +128,37 @@ public class FileRead : Shared.FileRead, IFileRead if (!Directory.Exists(duplicateDirectory)) _ = Directory.CreateDirectory(duplicateDirectory); } - string duplicateFile = Path.Combine(duplicateDirectory, Path.GetFileName(reportFullPath)); - if (descriptions.Count != 0 && tests.Length != 0) + if (descriptions.Count == 0 || tests.Length == 0) + duplicateFile = Path.Combine(duplicateDirectory, Path.GetFileName(reportFullPath)); + else { - string lines = GetLines(descriptions); - if (!string.IsNullOrEmpty(lines)) + long? subgroupId; + string fileName = Path.GetFileName(reportFullPath); + long breakAfter = dateTime.AddSeconds(_BreakAfterSeconds).Ticks; + long preWait = _FileConnectorConfiguration?.FileHandleWaitTime is null ? dateTime.AddMilliseconds(1234).Ticks : dateTime.AddMilliseconds(_FileConnectorConfiguration.FileHandleWaitTime.Value).Ticks; + if (string.IsNullOrEmpty(descriptions[0].Reactor) || string.IsNullOrEmpty(descriptions[0].PSN)) + subgroupId = null; + else + (subgroupId, int? _, string _) = FromIQS.GetCommandText(_IqsConnectionString, _Logistics, descriptions[0], breakAfter, preWait); + if (_StaticRuns.TryGetValue(_Logistics.Sequence, out List wsResults)) { - long? subgroupId; - long breakAfter = dateTime.AddSeconds(_BreakAfterSeconds).Ticks; - long preWait = _FileConnectorConfiguration?.FileHandleWaitTime is null ? dateTime.AddMilliseconds(1234).Ticks : dateTime.AddMilliseconds(_FileConnectorConfiguration.FileHandleWaitTime.Value).Ticks; - if (string.IsNullOrEmpty(descriptions[0].Reactor) || string.IsNullOrEmpty(descriptions[0].PSN)) - subgroupId = null; - else - (subgroupId, int? _, string _) = FromIQS.GetCommandText(_IqsConnectionString, _Logistics, descriptions[0], breakAfter, preWait); - if (subgroupId is null) - collection.Add(new(new ScopeInfo(tests[0], _OpenInsightFilePattern), lines)); - else - collection.Add(new(new ScopeInfo(tests[0], $"{subgroupId.Value} {_OpenInsightFilePattern}"), lines)); - if (_StaticRuns.TryGetValue(_Logistics.Sequence, out List wsResults)) - { - if (wsResults is null || wsResults.Count != 1) - throw new NullReferenceException($"{nameof(wsResults)} {wsResults?.Count} != 1 {_Logistics.Sequence}!"); - lock (_StaticRuns) - wsResults[0] = WS.Results.Get(wsResults[0], subgroupId); - } - string weekOfYear = _Calendar.GetWeekOfYear(_Logistics.DateTimeFromSequence, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00"); - FromIQS.Save(_OpenInsightApiECDirectory, _Logistics, reportFullPath, processDataStandardFormat, descriptions.First(), lines, subgroupId, weekOfYear); + if (wsResults is null || wsResults.Count != 1) + throw new NullReferenceException($"{nameof(wsResults)} {wsResults?.Count} != 1 {_Logistics.Sequence}!"); + lock (_StaticRuns) + wsResults[0] = WS.Results.Get(wsResults[0], subgroupId); } + if (!fileName.StartsWith("Viewer")) + duplicateFile = Path.Combine(duplicateDirectory, $"{subgroupId} {fileName}".TrimStart()); + else + duplicateFile = Path.Combine(duplicateDirectory, $"{$"Viewer {subgroupId}".TrimEnd()} {fileName.Replace("Viewer", string.Empty)}"); + string weekOfYear = _Calendar.GetWeekOfYear(_Logistics.DateTimeFromSequence, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00"); + FromIQS.Save(_OpenInsightApiECDirectory, _Logistics, reportFullPath, processDataStandardFormat, descriptions.First(), subgroupId, weekOfYear); } if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0) + { + File.Copy(reportFullPath, duplicateFile, overwrite: true); WaitForFileConsumption(dateTime, descriptions, isDummyRun, successDirectory, duplicateDirectory, collection, duplicateFile); + } } private Tuple > GetExtractResult(string reportFullPath, DateTime dateTime) diff --git a/Adaptation/FileHandlers/OpenInsight/FromIQS.cs b/Adaptation/FileHandlers/OpenInsight/FromIQS.cs index e345ad0..dda3113 100644 --- a/Adaptation/FileHandlers/OpenInsight/FromIQS.cs +++ b/Adaptation/FileHandlers/OpenInsight/FromIQS.cs @@ -376,7 +376,7 @@ public class FromIQS return result; } - internal static void Save(string openInsightApiECDirectory, Logistics logistics, string reportFullPath, ProcessDataStandardFormat processDataStandardFormat, QS408M.Description description, string lines, long? subGroupId, string weekOfYear) + internal static void Save(string openInsightApiECDirectory, Logistics logistics, string reportFullPath, ProcessDataStandardFormat processDataStandardFormat, QS408M.Description description, long? subGroupId, string weekOfYear) { string checkFile; string fileName = Path.GetFileName(reportFullPath); @@ -390,15 +390,9 @@ public class FromIQS checkFile = Path.Combine(ecDirectory, fileName); if (ecExists && !File.Exists(checkFile)) File.Copy(reportFullPath, checkFile); - checkFile = Path.Combine(ecDirectory, $"{logistics.DateTimeFromSequence.Ticks}.txt"); - if (ecExists && !File.Exists(checkFile)) - File.WriteAllText(checkFile, lines); checkFile = Path.Combine(ecDirectory, $"{logistics.DateTimeFromSequence.Ticks}.json"); if (ecExists && !File.Exists(checkFile)) File.WriteAllText(checkFile, json); - checkFile = Path.Combine(ecDirectory, $"{logistics.DateTimeFromSequence.Ticks}.lbl"); - if (ecExists && !File.Exists(checkFile)) - File.WriteAllText(checkFile, processDataStandardFormat.Body[processDataStandardFormat.Body.Count - 1]); } private static string GetCommandText(string[] iqsCopyValues)