diff --git a/Adaptation/.vscode/settings.json b/Adaptation/.vscode/settings.json index 5bce68d..2b90b9a 100644 --- a/Adaptation/.vscode/settings.json +++ b/Adaptation/.vscode/settings.json @@ -2,9 +2,11 @@ "cSpell.words": [ "Ccomp", "EQPT", + "gpcl", "HGCV", "horiz", "IKVM", + "ipdsf", "ISMTP", "JOBID", "linc", @@ -14,8 +16,10 @@ "PDFC", "pdmodel", "PDSF", + "pdsfc", "RESIHGCV", - "Rhosl" + "Rhosl", + "Villach" ], "workbench.colorCustomizations": { "activityBar.activeBackground": "#79b2e4", diff --git a/Adaptation/FileHandlers/Dummy/FileRead.cs b/Adaptation/FileHandlers/Dummy/FileRead.cs index 13e1876..6ef5f81 100644 --- a/Adaptation/FileHandlers/Dummy/FileRead.cs +++ b/Adaptation/FileHandlers/Dummy/FileRead.cs @@ -220,61 +220,47 @@ public class FileRead : Shared.FileRead, IFileRead { try { - string pathSegment; - string monARessource; + string sourceParentDirectory; + string targetParentDirectory; DateTime dateTime = DateTime.Now; - if (!_FileConnectorConfiguration.TargetFileLocation.Contains(_FileConnectorConfiguration.SourceFileLocation)) - throw new Exception("Target must start with source"); + if (!string.IsNullOrEmpty(Path.GetFileName(_FileConnectorConfiguration.SourceFileLocation))) + sourceParentDirectory = Path.GetDirectoryName(_FileConnectorConfiguration.SourceFileLocation); + else + sourceParentDirectory = Path.GetDirectoryName(Path.GetDirectoryName(_FileConnectorConfiguration.SourceFileLocation)); + if (!string.IsNullOrEmpty(Path.GetFileName(_FileConnectorConfiguration.TargetFileLocation))) + targetParentDirectory = Path.GetDirectoryName(_FileConnectorConfiguration.TargetFileLocation); + else + targetParentDirectory = Path.GetDirectoryName(Path.GetDirectoryName(_FileConnectorConfiguration.TargetFileLocation)); + if (sourceParentDirectory != targetParentDirectory) + throw new Exception("Target and source must have the same parent for Si Dummy FileConnectorConfiguration!"); bool check = dateTime.Hour > 7 && dateTime.Hour < 18 && dateTime.DayOfWeek != DayOfWeek.Sunday && dateTime.DayOfWeek != DayOfWeek.Saturday; if (!_IsEAFHosted || check) { - string checkSegment; - string checkDirectory; + string monARessource; string sourceFileFilter; string sourceArchiveFile; - string sourceFileLocation; string weekOfYear = _Calendar.GetWeekOfYear(dateTime, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00"); string traceDummyDirectory = Path.Combine(Path.GetPathRoot(_TracePath), "TracesDummy", _CellInstanceName, "Source", $"{dateTime:yyyy}___Week_{weekOfYear}"); if (!Directory.Exists(traceDummyDirectory)) _ = Directory.CreateDirectory(traceDummyDirectory); string traceDummyFile = Path.Combine(traceDummyDirectory, $"{dateTime.Ticks} - {_CellInstanceName}.txt"); File.AppendAllText(traceDummyFile, string.Empty); - if (_FileConnectorConfiguration.SourceFileLocation.EndsWith("\\")) - sourceFileLocation = _FileConnectorConfiguration.SourceFileLocation; - else - sourceFileLocation = string.Concat(_FileConnectorConfiguration.SourceFileLocation, '\\'); for (int i = 0; i < _FileConnectorConfiguration.SourceFileFilters.Count; i++) { _LastDummyRunIndex += 1; if (_LastDummyRunIndex >= _FileConnectorConfiguration.SourceFileFilters.Count) _LastDummyRunIndex = 0; sourceFileFilter = _FileConnectorConfiguration.SourceFileFilters[_LastDummyRunIndex]; - sourceArchiveFile = Path.GetFullPath(string.Concat(sourceFileLocation, sourceFileFilter)); + sourceArchiveFile = Path.Combine(_FileConnectorConfiguration.SourceFileLocation, sourceFileFilter); if (File.Exists(sourceArchiveFile)) { - checkSegment = _FileConnectorConfiguration.TargetFileLocation.Substring(sourceFileLocation.Length); - checkDirectory = Path.GetDirectoryName(sourceArchiveFile); - for (int z = 0; z < int.MaxValue; z++) - { - if (checkDirectory.Length < sourceFileLocation.Length || !checkDirectory.StartsWith(sourceFileLocation)) - break; - checkDirectory = Path.GetDirectoryName(checkDirectory); - if (Directory.Exists(Path.Combine(checkDirectory, checkSegment))) - { - checkDirectory = Path.Combine(checkDirectory, checkSegment); - break; - } - } - if (!checkDirectory.EndsWith(checkSegment)) - throw new Exception("Could not determine dummy target directory for extract!"); if (!long.TryParse(Path.GetFileNameWithoutExtension(sourceArchiveFile).Replace("x", string.Empty), out long sequence)) throw new Exception("Invalid file name for source archive file!"); - pathSegment = checkDirectory.Substring(sourceFileLocation.Length); - monARessource = GetCellName(pathSegment); + monARessource = GetCellName(sourceArchiveFile); if (string.IsNullOrEmpty(monARessource)) throw new Exception("Could not determine which cell archive file is associated with!"); if (_IsEAFHosted) - CallbackFileExists(sourceArchiveFile, traceDummyFile, checkDirectory, monARessource, sequence); + CallbackFileExists(sourceArchiveFile, traceDummyFile, _FileConnectorConfiguration.TargetFileLocation, monARessource, sequence); break; } } diff --git a/Adaptation/FileHandlers/ToArchive/FileRead.cs b/Adaptation/FileHandlers/ToArchive/FileRead.cs index 0a20e26..05860a0 100644 --- a/Adaptation/FileHandlers/ToArchive/FileRead.cs +++ b/Adaptation/FileHandlers/ToArchive/FileRead.cs @@ -113,9 +113,9 @@ public class FileRead : Shared.FileRead, IFileRead { if (dateTime == DateTime.MinValue) { } - Tuple> results = new(string.Empty, null, null, new List()); + Tuple> results = new(string.Empty, null, null, new List()); Tuple pdsf = ProcessDataStandardFormat.GetLogisticsColumnsAndBody(reportFullPath); - _Logistics = new Logistics(reportFullPath, pdsf.Item1); + _Logistics = new Logistics(reportFullPath, pdsf.Item1); SetFileParameterLotIDToLogisticsMID(); return results; } diff --git a/Adaptation/FileHandlers/pcl/FileRead.cs b/Adaptation/FileHandlers/pcl/FileRead.cs index 6f44af1..5288908 100644 --- a/Adaptation/FileHandlers/pcl/FileRead.cs +++ b/Adaptation/FileHandlers/pcl/FileRead.cs @@ -20,7 +20,7 @@ public class FileRead : Shared.FileRead, IFileRead public FileRead(ISMTP smtp, Dictionary fileParameter, string cellInstanceName, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList modelObjectParameters, string equipmentDictionaryName, Dictionary> dummyRuns, bool useCyclicalForDescription, bool isEAFHosted) : base(new Description(), true, smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, useCyclicalForDescription, isEAFHosted) { - _MinFileLength = 10; + _MinFileLength = 15; _NullData = string.Empty; _Logistics = new Logistics(this); if (_FileParameter is null) diff --git a/Adaptation/MET08RESIHGCV.Tests.csproj b/Adaptation/MET08RESIHGCV.Tests.csproj index 7e40ac1..845136e 100644 --- a/Adaptation/MET08RESIHGCV.Tests.csproj +++ b/Adaptation/MET08RESIHGCV.Tests.csproj @@ -6,6 +6,10 @@ SAK + enable + 10.0 + disable + win-x64 net6.0 false diff --git a/Adaptation/_Tests/Extract/Staging/v2.39.0/HGCV3.cs b/Adaptation/_Tests/Extract/Staging/v2.39.0/HGCV3.cs index d52c1a7..996da4b 100644 --- a/Adaptation/_Tests/Extract/Staging/v2.39.0/HGCV3.cs +++ b/Adaptation/_Tests/Extract/Staging/v2.39.0/HGCV3.cs @@ -29,4 +29,28 @@ public class HGCV3 [TestMethod] public void Staging__v2_39_0__HGCV3__pcl() => _HGCV3.Staging__v2_39_0__HGCV3__pcl(); + [TestMethod] + public void Staging__v2_39_0__HGCV3__pcl637812984345592512__MinFileLength() + { + string check = "*.pcl"; + _HGCV3.Staging__v2_39_0__HGCV3__pcl(); + MethodBase methodBase = new StackFrame().GetMethod(); + string[] variables = _HGCV3.AdaptationTesting.GetVariables(methodBase, check); + IFileRead fileRead = _HGCV3.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); + Logistics logistics = new(fileRead); + _ = Helpers.Metrology.ReExtractComapareUpdatePassDirectory(variables, fileRead, logistics); + } + + [TestMethod] + public void Staging__v2_39_0__HGCV3__pcl637816384579205568__Normal() + { + string check = "*.pcl"; + _HGCV3.Staging__v2_39_0__HGCV3__pcl(); + MethodBase methodBase = new StackFrame().GetMethod(); + string[] variables = _HGCV3.AdaptationTesting.GetVariables(methodBase, check); + IFileRead fileRead = _HGCV3.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); + Logistics logistics = new(fileRead); + _ = Helpers.Metrology.ReExtractComapareUpdatePassDirectory(variables, fileRead, logistics); + } + } \ No newline at end of file diff --git a/Adaptation/_Tests/Extract/Staging/v2.39.0/MET08RESIHGCV.cs b/Adaptation/_Tests/Extract/Staging/v2.39.0/MET08RESIHGCV.cs index 152c384..ffb61c9 100644 --- a/Adaptation/_Tests/Extract/Staging/v2.39.0/MET08RESIHGCV.cs +++ b/Adaptation/_Tests/Extract/Staging/v2.39.0/MET08RESIHGCV.cs @@ -65,4 +65,7 @@ public class MET08RESIHGCV [TestMethod] public void Staging__v2_39_0__MET08RESIHGCV__MET08RESIHGCV________() => _MET08RESIHGCV.Staging__v2_39_0__MET08RESIHGCV__MET08RESIHGCV________(); + [TestMethod] + public void Staging__v2_39_0__MET08RESIHGCV__MET08RESIHGCV________637816296802048814__Normal() => _MET08RESIHGCV.Staging__v2_39_0__MET08RESIHGCV__MET08RESIHGCV________(); + } \ No newline at end of file diff --git a/Adaptation/package.json b/Adaptation/package.json index 6d9f480..4a4fd25 100644 --- a/Adaptation/package.json +++ b/Adaptation/package.json @@ -10,6 +10,9 @@ "AW-CreateSelfDescription.Staging.v2_39_0-HGCV2": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~_Tests.CreateSelfDescription.Staging.v2_39_0 & ClassName~HGCV2\" --% -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")", "AY-CreateSelfDescription.Staging.v2_39_0-HGCV3": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~_Tests.CreateSelfDescription.Staging.v2_39_0 & ClassName~HGCV3\" --% -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")", "AZ-CreateSelfDescription.Staging.v2_39_0": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~_Tests.CreateSelfDescription.Staging.v2_39_0\" --% -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")", + "BA-Extract.Staging.v2_39_0-HGCV3-Staging__v2_39_0__HGCV3__pcl637812984345592512__MinFileLength": "dotnet test --filter \"FullyQualifiedName~_Tests.Extract.Staging.v2_39_0 & ClassName~HGCV3 & Staging__v2_39_0__HGCV3__pcl637812984345592512__MinFileLength\" --% -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")", + "BB-Extract.Staging.v2_39_0-HGCV3-Staging__v2_39_0__HGCV3__pcl637816384579205568__Normal": "dotnet test --filter \"FullyQualifiedName~_Tests.Extract.Staging.v2_39_0 & ClassName~HGCV3 & Staging__v2_39_0__HGCV3__pcl637816384579205568__Normal\" --% -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")", + "BC-Extract.Staging.v2_39_0-MET08RESIHGCV-Staging__v2_39_0__MET08RESIHGCV__MET08RESIHGCV________637816296802048814__Normal": "dotnet test --filter \"FullyQualifiedName~_Tests.Extract.Staging.v2_39_0 & ClassName~MET08RESIHGCV & Staging__v2_39_0__MET08RESIHGCV__MET08RESIHGCV________637816296802048814__Normal\" --% -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")", "BS-Extract.Staging.v2_39_0-MET08RESIHGCV": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~_Tests.Extract.Staging.v2_39_0 & ClassName~MET08RESIHGCV\" --% -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")", "BU-Extract.Staging.v2_39_0-HGCV1": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~_Tests.Extract.Staging.v2_39_0 & ClassName~HGCV1\" --% -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")", "BW-Extract.Staging.v2_39_0-HGCV2": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~_Tests.Extract.Staging.v2_39_0 & ClassName~HGCV2\" --% -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")",