diff --git a/.gitignore b/.gitignore index c19d760..e85055c 100644 --- a/.gitignore +++ b/.gitignore @@ -331,11 +331,11 @@ ASALocalRun/ ## ## Visual Studio Code ## -*/!.vscode/extensions.json -*/!.vscode/launch.json -*/!.vscode/settings.json -*/!.vscode/tasks.json -*/.vscode/* -*/.vscode/ReportGenerator/* +**/.vscode/* +!**/.vscode/extensions.json +!**/.vscode/format-report.json +!**/.vscode/launch.json +!**/.vscode/settings.json +!**/.vscode/tasks.json *.lnk diff --git a/Adaptation/.kanbn/board.css b/Adaptation/.kanbn/board.css new file mode 100644 index 0000000..8bc14b6 --- /dev/null +++ b/Adaptation/.kanbn/board.css @@ -0,0 +1,7 @@ +.kanbn-task-data-workload { + display: none; +} +.kanbn-task-data-relation { + display: block; + color: #198038; +} diff --git a/Adaptation/.kanbn/index.md b/Adaptation/.kanbn/index.md new file mode 100644 index 0000000..b2dc563 --- /dev/null +++ b/Adaptation/.kanbn/index.md @@ -0,0 +1,23 @@ +--- +type: "kanbn" +created: 2023-07-07T15:37:56.040Z +updated: 2023-07-18T19:52:59.668Z +startedColumns: + - 'In Progress' +completedColumns: + - Done +dateFormat: mm/dd +taskTemplate: '^+^_${overdue ? ''^R'' : ''''}${name}^: ${relations ? (''\n^-^/^g'' + relations.reduce((accumulator, currentValue) => accumulator.task + currentValue.task + '' '', '''')) : ''''}' +--- + +# MET08THFTIRQS408M + +## Backlog + +- [input](tasks/input.md) + +## Todo + +## In Progress + +## Done diff --git a/Adaptation/.kanbn/tasks/input.md b/Adaptation/.kanbn/tasks/input.md new file mode 100644 index 0000000..a7c3693 --- /dev/null +++ b/Adaptation/.kanbn/tasks/input.md @@ -0,0 +1,30 @@ +--- +type: "kanbn" +created: 2023-07-07T15:37:56.040Z +updated: 2023-07-18T19:52:59.668Z +--- + +# input + +- ![HgCV](-1054372370.jpg) +- ![HgCV](-1501789803.jpg) +- ![HgCV](723017053.jpg) +- ![CDE](-837599302.jpg) +- Normal + - Batch Id) BioRad #2 + - Wafer) {Reactor}-{RDS}-{PSN}.{layer}-{Zone}-{Employee} +- WMO + - Batch Id) {WMO} example O172125.1.20 + - Wafer) {Slot} example 1 +- Employee + - Batch Id) BioRad #2 + - Wafer) {Employee Initials} +- WMO Epi Pro Helper + - Batch Id) BioRad #2 + - Wafer) {Key} example A56 +- Reactor + - Batch Id) BioRad #2 + - Wafer) {Reactor} ^[0-9]{2}[.][0-9]{1}[.]?[0-9]{0,1} example 37.1.1 +- Barcode Host + - Batch Id) BioRad #2 + - Wafer) {Reactor} ^[0-9]{2}[.][0-9]{1}[.]?[0-9]{0,1} example 37.1.1 diff --git a/Adaptation/.vscode/Reactor.js b/Adaptation/.vscode/Reactor.js deleted file mode 100644 index 5c6aaef..0000000 --- a/Adaptation/.vscode/Reactor.js +++ /dev/null @@ -1,26 +0,0 @@ -// (self.length != 0) ? -// self : -// (getContextData('2', 'cds.PROCESS_JOBID', '') == '-') ? -// self : -// getContextData('2', 'cds.PROCESS_JOBID', '') - -getValue(self, self.length, $('dcp.BIORAD2/QS408M/MesEntity', ''), $('dcp.BIORAD2/QS408M/Recipe', ''), getContextData('2', 'cds.PROCESS_JOBID', '')); - -function getValue(value, length, mesEntity, recipe, processJobId) { - if (recipe.toUpperCase() === 'T-LOW') - return mesEntity; - else if (recipe.toUpperCase() === 'T-MID') - return mesEntity; - else if (recipe.toUpperCase() === 'T-HIGH') - return mesEntity; - else if (recipe.toUpperCase() === 'T_LOW') - return mesEntity; - else if (recipe.toUpperCase() === 'T_MID') - return mesEntity; - else if (recipe.toUpperCase() === 'T_HIGH') - return mesEntity; - else if (length === 0) - return processJobId; - else - return value; -} \ No newline at end of file diff --git a/Adaptation/.vscode/psn.js b/Adaptation/.vscode/psn.js deleted file mode 100644 index 54fac6b..0000000 --- a/Adaptation/.vscode/psn.js +++ /dev/null @@ -1,26 +0,0 @@ -// (self.length != 0) ? -// self : -// (getContextData('2', 'cds.PRODUCT', '') == '-') ? -// self : -// getContextData('2', 'cds.PRODUCT', '') - -getValue(self, self.length, getContextData('2', 'cds.PRODUCT', ''), $('dcp.BIORAD2/QS408M/Recipe', '')); - -function getValue(value, length, product, recipe) { - if (recipe.toUpperCase() === 'T-LOW') - return 'T-Low'; - else if (recipe.toUpperCase() === 'T-MID') - return 'T-Mid'; - else if (recipe.toUpperCase() === 'T-HIGH') - return 'T-High'; - else if (recipe.toUpperCase() === 'T_LOW') - return 'T-Low'; - else if (recipe.toUpperCase() === 'T_MID') - return 'T-Mid'; - else if (recipe.toUpperCase() === 'T_HIGH') - return 'T-High'; - else if (length === 0) - return product; - else - return value; -} \ No newline at end of file diff --git a/Adaptation/.vscode/settings.json b/Adaptation/.vscode/settings.json index 584bf04..b9d0502 100644 --- a/Adaptation/.vscode/settings.json +++ b/Adaptation/.vscode/settings.json @@ -1,4 +1,7 @@ { + "[markdown]": { + "editor.wordWrap": "off" + }, "cSpell.words": [ "BIORAD", "CICN", diff --git a/Adaptation/.vscode/tasks.json b/Adaptation/.vscode/tasks.json new file mode 100644 index 0000000..7cab43c --- /dev/null +++ b/Adaptation/.vscode/tasks.json @@ -0,0 +1,82 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "Build", + "command": "dotnet", + "type": "process", + "args": [ + "build", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "Format", + "command": "dotnet", + "type": "process", + "args": [ + "format", + "--report", + ".vscode", + "--verbosity", + "detailed", + "--severity", + "warn" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "Nuget Clear", + "command": "dotnet", + "type": "process", + "args": [ + "nuget", + "locals", + "all", + "--clear" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "MSBuild for EAF Deployment Packages", + "command": "C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe", + "type": "process", + "args": [ + "/target:Build", + "/restore:True", + "/p:RestoreSources=https://api.nuget.org/v3/index.json%3Bhttps://packagemanagement.eu.infineon.com:4430/api/v2/%3Bhttps://tfs.intra.infineon.com/tfs/ManufacturingIT/_packaging/eaf/nuget/v3/index.json%3Bhttps://localhost/v3/index.json", + "/detailedsummary", + "/consoleloggerparameters:PerformanceSummary;ErrorsOnly;", + "/property:Configuration=Debug;TargetFrameworkVersion=v4.8", + "../MET08THFTIRQS408M.csproj" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "File-Folder-Helper AOT s M .Kanbn Tasks", + "type": "shell", + "command": "& L:/DevOps/Mesa_FI/File-Folder-Helper/bin/Release/net7.0/win-x64/publish/File-Folder-Helper.exe s M T:/MET08THFTIRQS408M/06_SourceCode/MET08THFTIRQS408M/Adaptation -s T:/MET08THFTIRQS408M/06_SourceCode/MET08THFTIRQS408M/Adaptation/.kanbn/tasks", + "problemMatcher": [] + }, + { + "label": "Kanbn Console", + "type": "npm", + "script": "kanbn.board", + "problemMatcher": [] + }, + { + "label": "Kanbn Write Boad", + "type": "shell", + "command": "& kanbn board -j | L:/Git/kanbn2md/kanbn2md.exe >.kanbn/board.md", + "problemMatcher": [] + }, + { + "label": "Kanbn Write json", + "type": "npm", + "script": "kanbn.board.json", + "problemMatcher": [] + } + ] +} \ No newline at end of file diff --git a/Adaptation/FileHandlers/OpenInsight/FileRead.cs b/Adaptation/FileHandlers/OpenInsight/FileRead.cs index f7f3705..4181068 100644 --- a/Adaptation/FileHandlers/OpenInsight/FileRead.cs +++ b/Adaptation/FileHandlers/OpenInsight/FileRead.cs @@ -142,13 +142,19 @@ public class FileRead : Shared.FileRead, IFileRead { bool isDummyRun = false; List<(Shared.Properties.IScopeInfo, string)> collection = new(); - string successDirectory = _FileConnectorConfiguration.AlternateTargetFolder; - string parentParent = GetParentParent(_FileConnectorConfiguration.SourceFileLocation); - if (parentParent.Contains(_CellInstanceName)) - parentParent = Path.GetDirectoryName(parentParent); - string duplicateDirectory = Path.Combine(parentParent, "Data"); + string duplicateDirectory = Path.Combine(_FileConnectorConfiguration.SourceFileLocation, _CellInstanceName); if (!Directory.Exists(duplicateDirectory)) _ = Directory.CreateDirectory(duplicateDirectory); + string successDirectory = _FileConnectorConfiguration.AlternateTargetFolder; + if (!Directory.Exists(Path.Combine(duplicateDirectory, "1"))) + { + string parentParent = GetParentParent(_FileConnectorConfiguration.SourceFileLocation); + if (parentParent.Contains(_CellInstanceName)) + parentParent = Path.GetDirectoryName(parentParent); + duplicateDirectory = Path.Combine(parentParent, "Data"); + if (!Directory.Exists(duplicateDirectory)) + _ = Directory.CreateDirectory(duplicateDirectory); + } string duplicateFile = Path.Combine(duplicateDirectory, Path.GetFileName(reportFullPath)); if (descriptions.Any() && tests.Any()) { diff --git a/Adaptation/FileHandlers/OpenInsightMetrologyViewer/WSRequest.cs b/Adaptation/FileHandlers/OpenInsightMetrologyViewer/WSRequest.cs index 101378d..1d1d361 100644 --- a/Adaptation/FileHandlers/OpenInsightMetrologyViewer/WSRequest.cs +++ b/Adaptation/FileHandlers/OpenInsightMetrologyViewer/WSRequest.cs @@ -11,7 +11,7 @@ public class WSRequest public bool SentToMetrology { get; set; } public bool SentToSPC { get; set; } // - public long Id { get; set; } + public int Id { get; set; } public string Batch { get; set; } public string Cassette { get; set; } public string CellName { get; set; } @@ -41,7 +41,7 @@ public class WSRequest #pragma warning restore IDE0060 { ProcessDataStandardFormat = processDataStandardFormat; - Id = 0; + Id = -1; FilePath = string.Empty; CellName = logistics.MesEntity; if (descriptions[0] is not QS408M.Description x) diff --git a/Adaptation/Shared/FileRead.cs b/Adaptation/Shared/FileRead.cs index f8bd716..a6c12ef 100644 --- a/Adaptation/Shared/FileRead.cs +++ b/Adaptation/Shared/FileRead.cs @@ -260,10 +260,11 @@ public class FileRead : Properties.IFileRead return results; } - protected static string GetTupleFile(Logistics logistics, List descriptions, Properties.IScopeInfo scopeInfo, string duplicateDirectory) where T : Properties.IDescription + protected static string GetTupleFile(Logistics logistics, List descriptions, Properties.IScopeInfo scopeInfo, string duplicateDirectory, string duplicateFile) where T : Properties.IDescription { string result; string rds; + string fileName; string dateValue; string rdsPlaceholder = "%RDS%"; string mesEntityPlaceholder = "%MesEntity%"; @@ -285,7 +286,11 @@ public class FileRead : Properties.IFileRead continue; datePlaceholder = string.Concat('%', segment, '%'); } - result = string.Concat(duplicateDirectory, @"\", scopeInfo.FileName.Replace(rdsPlaceholder, rds).Replace(mesEntityPlaceholder, logistics.MesEntity).Replace(datePlaceholder, dateValue)); + fileName = scopeInfo.FileName.Replace(rdsPlaceholder, rds).Replace(mesEntityPlaceholder, logistics.MesEntity).Replace(datePlaceholder, dateValue); + if (!duplicateFile.Contains("Viewer")) + result = Path.Combine(duplicateDirectory, fileName); + else + result = Path.Combine(duplicateDirectory, $"Viewer_{fileName}"); } if (result.Contains('%')) throw new Exception("Placeholder exists!"); @@ -318,7 +323,7 @@ public class FileRead : Properties.IFileRead else if (!scopeInfo.FileName.Contains('%')) tupleFile = string.Concat(duplicateDirectory, @"\", fileName, "_", scopeInfo.FileNameWithoutExtension, ".pdsfc"); else - tupleFile = GetTupleFile(logistics, descriptions, scopeInfo, duplicateDirectory); + tupleFile = GetTupleFile(logistics, descriptions, scopeInfo, duplicateDirectory, duplicateFile); tupleFileName = Path.GetFileNameWithoutExtension(tupleFile).Split('.')[0]; duplicateFiles.Add(tupleFile); if (_IsEAFHosted) @@ -372,7 +377,7 @@ public class FileRead : Properties.IFileRead _ = stringBuilder.Append('<').Append(duplicateFiles[i]).Append("> "); } } - throw new Exception(string.Concat("After {", _BreakAfterSeconds, "} seconds, right side of {", sourceDirectoryCloaking, "} didn't consume file(s) ", stringBuilder)); + throw new Exception(string.Concat("After {", _BreakAfterSeconds, "} seconds, right side of {", sourceDirectoryCloaking, "} didn'fileName consume file(s) ", stringBuilder)); } Thread.Sleep(250); } @@ -446,7 +451,7 @@ public class FileRead : Properties.IFileRead foreach (KeyValuePair keyValuePair in _FileParameter) to = to.Replace(string.Concat('%', keyValuePair.Key, '%'), keyValuePair.Value); if (to.Contains('%')) - _Log.Debug("Can't debug without EAF Hosting"); + _Log.Debug("Can'fileName debug without EAF Hosting"); else _ = Move(extractResults, to, _FileConnectorConfiguration.SourceFileLocation, resolvedFileLocation: string.Empty, exception: null); } @@ -651,7 +656,7 @@ public class FileRead : Properties.IFileRead results = Directory.GetDirectories(jobIdDirectory, string.Concat(_Logistics.MID, '*', logisticsSequence, '*'), SearchOption.TopDirectoryOnly); } if ((results is null) || results.Length != 1) - throw new Exception("Didn't find directory by logistics sequence"); + throw new Exception("Didn'fileName find directory by logistics sequence"); return results; } diff --git a/Adaptation/package.json b/Adaptation/package.json index 96d2d6f..739eda6 100644 --- a/Adaptation/package.json +++ b/Adaptation/package.json @@ -14,14 +14,8 @@ "HA-Extract.Staging.v2_47_1-BIORAD2-Staging__v2_47_1__BIORAD2__pcl637812984345592512__MinFileLength": "dotnet test --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_47_1 & ClassName~BIORAD2 & Name~Staging__v2_47_1__BIORAD2__pcl637812984345592512__MinFileLength\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")", "HB-Extract.Staging.v2_47_1-MET08THFTIRQS408M-Staging__v2_47_1__MET08THFTIRQS408M__OpenInsight638042558563679143__IqsSql": "dotnet test --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_47_1 & ClassName~MET08THFTIRQS408M & Name~Staging__v2_47_1__MET08THFTIRQS408M__OpenInsight638042558563679143__IqsSql\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")", "Alpha": "ABCDEFGHIJKLMNOPQRSTUVWXYZ", - "nuget-clear": "dotnet nuget locals all --clear", - "build": "dotnet build --runtime win-x64 --self-contained", - "build-Package-Management": "dotnet build --runtime win-x64 --self-contained --source https://packagemanagement.eu.infineon.com:4430/api/v2/", - "build-nuget-And-Package-Management": "dotnet build --runtime win-x64 --self-contained --source https://api.nuget.org/v3/index.json --source https://packagemanagement.eu.infineon.com:4430/api/v2/", - "build-All-Sources": "dotnet build --runtime win-x64 --self-contained --source https://api.nuget.org/v3/index.json --source https://packagemanagement.eu.infineon.com:4430/api/v2/ --source https://tfs.intra.infineon.com/tfs/ManufacturingIT/_packaging/eaf/nuget/v3/index.json --source http://192.168.0.73:5002/v3/index.json", - "dotnet-format": "dotnet format --report .vscode --verbosity detailed --severity warn", - "MSBuild": "\"C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe\" /target:Build /restore:True /p:RestoreSources=https://api.nuget.org/v3/index.json%3Bhttps://packagemanagement.eu.infineon.com:4430/api/v2/%3Bhttps://tfs.intra.infineon.com/tfs/ManufacturingIT/_packaging/eaf/nuget/v3/index.json /detailedsummary /consoleloggerparameters:PerformanceSummary;ErrorsOnly; /property:Configuration=Debug;TargetFrameworkVersion=v4.8 ../MET08THFTIRQS408M.csproj", - "pull": "git pull", + "kanbn.board": "kanbn board", + "kanbn.board.json": "kanbn board -j > .kanbn/board.json", "garbage-collect": "git gc" } } \ No newline at end of file