diff --git a/Adaptation/FileHandlers/MoveMatchingFiles/FileRead.cs b/Adaptation/FileHandlers/MoveMatchingFiles/FileRead.cs index e81631a..2c3a6e5 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 = pcl.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 40f1037..17a4d7a 100644 --- a/Adaptation/FileHandlers/OpenInsight/FileRead.cs +++ b/Adaptation/FileHandlers/OpenInsight/FileRead.cs @@ -10,7 +10,6 @@ using System.Collections.ObjectModel; using System.Globalization; using System.IO; using System.Linq; -using System.Text; using System.Text.Json; namespace Adaptation.FileHandlers.OpenInsight; @@ -20,7 +19,6 @@ public class FileRead : Shared.FileRead, IFileRead private int _LastIndex; private readonly string _IqsConnectionString; - private readonly string _OpenInsightFilePattern; private readonly string _OpenInsightApiECDirectory; private readonly ReadOnlyCollection _IQSCopyCollection; @@ -39,7 +37,6 @@ public class FileRead : Shared.FileRead, IFileRead throw new Exception(cellInstanceConnectionName); _IQSCopyCollection = new(GetProperties(cellInstanceConnectionName, modelObjectParameters, "IQS.Copy.")); _IqsConnectionString = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "IQS.ConnectionString"); - _OpenInsightFilePattern = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "OpenInsight.FilePattern"); _OpenInsightApiECDirectory = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "OpenInsight.Api.EC.Directory"); } @@ -118,76 +115,6 @@ public class FileRead : Shared.FileRead, IFileRead return results; } - internal static string GetLines(Logistics logistics, List descriptions) - { - StringBuilder results = new(); - char del = '\t'; - pcl.Description x = descriptions[0]; - _ = results.Append(x.UniqueId).Append(del). - Append(logistics.MesEntity).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.Wafer).Append(del). - Append(x.Lot).Append(del). - Append(x.Plan).Append(del). - Append(x.Date).Append(del). - Append(x.WaferSize).Append(del). - Append(x.Ccomp).Append(del). - Append(x.Area).Append(del). - Append(x.CondType).Append(del). - Append(x.Model).Append(del). - Append(x.StartVoltage).Append(del). - Append(x.StopVoltage).Append(del). - Append(x.RampRate).Append(del). - Append(x.GLimit.Replace(" ยต", string.Empty)).Append(del). - Append(x.SetupFile).Append(del). - Append(x.SetupFile).Append(del). - Append(x.Folder).Append(del). - Append(x.Pattern).Append(del). - Append(x.RhoMethod).Append(del). - Append(x.NAvgMean).Append(del). - Append(x.NAvgStdDev).Append(del). - Append(x.NAvgRadialGradient).Append(del). - Append(x.NslMean).Append(del). - Append(x.NslStdDev).Append(del). - Append(x.NslRadialGradient).Append(del). - Append(x.VdMean).Append(del). - Append(x.VdStdDev).Append(del). - Append(x.VdRadialGradient).Append(del). - Append(x.FlatZMean).Append(del). - Append(x.FlatZStdDev).Append(del). - Append(x.FlatZRadialGradient).Append(del). - Append(x.RhoAvgMean).Append(del). - Append(x.RhoAvgStdDev).Append(del). - Append(x.RhoAvgRadialGradient).Append(del). - Append(x.RhoslMean).Append(del). - Append(x.RhoslStdDev).Append(del). - Append(x.RhoslRadialGradient).Append(del). - Append(x.PhaseMean).Append(del). - Append(x.PhaseStdDev).Append(del). - Append(x.PhaseRadialGradient).Append(del). - Append(x.GradeMean).Append(del). - Append(x.GradeStdDev).Append(del). - Append(x.GradeRadialGradient).Append(del). - Append(x.RsMean).Append(del). - Append(x.RsStdDev).Append(del). - Append(x.RsRadialGradient); - foreach (pcl.Description description in descriptions) - _ = results.Append(del).Append(description.Index + 1). - Append(del).Append(description.NAvg). - Append(del).Append(description.Nsl). - Append(del).Append(description.Vd). - Append(del).Append(description.FlatZ). - Append(del).Append(description.RhoAvg). - Append(del).Append(description.Rhosl). - Append(del).Append(description.Phase). - Append(del).Append(description.Grade); - return results.ToString(); - } - private Tuple > GetExtractResult(string reportFullPath, DateTime dateTime) { Tuple > results; @@ -223,47 +150,42 @@ public class FileRead : Shared.FileRead, IFileRead string duplicateFile = Path.Combine(duplicateDirectory, Path.GetFileName(reportFullPath)); if (descriptions.Count != 0 && tests.Length != 0) { - string lines = GetLines(_Logistics, descriptions); - if (!string.IsNullOrEmpty(lines)) + _LastIndex += 1; + long? subgroupId; + if (_LastIndex >= _IQSCopyCollection.Count) + _LastIndex = 0; + long breakAfter = dateTime.AddSeconds(_BreakAfterSeconds).Ticks; + ModelObjectParameterDefinition modelObjectParameterDefinition = _IQSCopyCollection[_LastIndex]; + 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)) { - _LastIndex += 1; - long? subgroupId; - if (_LastIndex >= _IQSCopyCollection.Count) - _LastIndex = 0; - long breakAfter = dateTime.AddSeconds(_BreakAfterSeconds).Ticks; - ModelObjectParameterDefinition modelObjectParameterDefinition = _IQSCopyCollection[_LastIndex]; - 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); + } + string weekOfYear = _Calendar.GetWeekOfYear(_Logistics.DateTimeFromSequence, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00"); + FromIQS.Save(_OpenInsightApiECDirectory, _Logistics, reportFullPath, processDataStandardFormat, descriptions.First(), subgroupId, weekOfYear); + try + { FromIQS.SaveCopy(_FileConnectorConfiguration.SourceFileLocation, _IqsConnectionString, modelObjectParameterDefinition.Name, modelObjectParameterDefinition.Value.Split('|')); } + catch (Exception exception) + { + string subject = string.Concat("Exception:", _CellInstanceConnectionName); + string body = string.Concat(exception.Message, Environment.NewLine, Environment.NewLine, exception.StackTrace); try - { FromIQS.SaveCopy(_FileConnectorConfiguration.SourceFileLocation, _IqsConnectionString, modelObjectParameterDefinition.Name, modelObjectParameterDefinition.Value.Split('|')); } - catch (Exception exception) - { - string subject = string.Concat("Exception:", _CellInstanceConnectionName); - string body = string.Concat(exception.Message, Environment.NewLine, Environment.NewLine, exception.StackTrace); - try - { _SMTP.SendHighPriorityEmailMessage(subject, body); } - catch (Exception) { } - } + { _SMTP.SendHighPriorityEmailMessage(subject, body); } + catch (Exception) { } } } if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0) + { + File.Copy(reportFullPath, duplicateFile, overwrite: true); WaitForFileConsumption(dateTime, descriptions, isDummyRun, successDirectory, duplicateDirectory, collection, duplicateFile); + } } } \ No newline at end of file diff --git a/Adaptation/FileHandlers/OpenInsight/FromIQS.cs b/Adaptation/FileHandlers/OpenInsight/FromIQS.cs index 6222ce8..ef7b059 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, pcl.Description description, string lines, long? subGroupId, string weekOfYear) + internal static void Save(string openInsightApiECDirectory, Logistics logistics, string reportFullPath, ProcessDataStandardFormat processDataStandardFormat, pcl.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) diff --git a/Adaptation/Shared/ProcessDataStandardFormat.cs b/Adaptation/Shared/ProcessDataStandardFormat.cs index 113ba5f..a86241d 100644 --- a/Adaptation/Shared/ProcessDataStandardFormat.cs +++ b/Adaptation/Shared/ProcessDataStandardFormat.cs @@ -462,6 +462,7 @@ internal class ProcessDataStandardFormat results.Add(string.Empty); List hyphens = new(); results.AddRange(processDataStandardFormat.InputPDSF.Header.Select(l => l.Replace('\t', '|'))); + results.Add(string.Empty); results.Add($"|{string.Join("|", processDataStandardFormat.InputPDSF.Columns)}|"); for (int i = 0; i < processDataStandardFormat.InputPDSF.Columns.Count; i++) hyphens.Add('-');