Back to x64 to pass tests

Directory Trigger for OI
Remove extra .vscode files
Viewer support
tasks.json
kanbn initialize
WSRequest alignment
This commit is contained in:
Mike Phares 2023-07-24 10:46:33 -07:00
parent 530ab72604
commit aa08c676a8
12 changed files with 177 additions and 79 deletions

12
.gitignore vendored
View File

@ -331,11 +331,11 @@ ASALocalRun/
## ##
## Visual Studio Code ## Visual Studio Code
## ##
*/!.vscode/extensions.json **/.vscode/*
*/!.vscode/launch.json !**/.vscode/extensions.json
*/!.vscode/settings.json !**/.vscode/format-report.json
*/!.vscode/tasks.json !**/.vscode/launch.json
*/.vscode/* !**/.vscode/settings.json
*/.vscode/ReportGenerator/* !**/.vscode/tasks.json
*.lnk *.lnk

View File

@ -0,0 +1,7 @@
.kanbn-task-data-workload {
display: none;
}
.kanbn-task-data-relation {
display: block;
color: #198038;
}

View File

@ -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

View File

@ -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

View File

@ -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;
}

View File

@ -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;
}

View File

@ -1,4 +1,7 @@
{ {
"[markdown]": {
"editor.wordWrap": "off"
},
"cSpell.words": [ "cSpell.words": [
"BIORAD", "BIORAD",
"CICN", "CICN",

82
Adaptation/.vscode/tasks.json vendored Normal file
View File

@ -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": []
}
]
}

View File

@ -142,13 +142,19 @@ public class FileRead : Shared.FileRead, IFileRead
{ {
bool isDummyRun = false; bool isDummyRun = false;
List<(Shared.Properties.IScopeInfo, string)> collection = new(); List<(Shared.Properties.IScopeInfo, string)> collection = new();
string duplicateDirectory = Path.Combine(_FileConnectorConfiguration.SourceFileLocation, _CellInstanceName);
if (!Directory.Exists(duplicateDirectory))
_ = Directory.CreateDirectory(duplicateDirectory);
string successDirectory = _FileConnectorConfiguration.AlternateTargetFolder; string successDirectory = _FileConnectorConfiguration.AlternateTargetFolder;
if (!Directory.Exists(Path.Combine(duplicateDirectory, "1")))
{
string parentParent = GetParentParent(_FileConnectorConfiguration.SourceFileLocation); string parentParent = GetParentParent(_FileConnectorConfiguration.SourceFileLocation);
if (parentParent.Contains(_CellInstanceName)) if (parentParent.Contains(_CellInstanceName))
parentParent = Path.GetDirectoryName(parentParent); parentParent = Path.GetDirectoryName(parentParent);
string duplicateDirectory = Path.Combine(parentParent, "Data"); duplicateDirectory = Path.Combine(parentParent, "Data");
if (!Directory.Exists(duplicateDirectory)) if (!Directory.Exists(duplicateDirectory))
_ = Directory.CreateDirectory(duplicateDirectory); _ = Directory.CreateDirectory(duplicateDirectory);
}
string duplicateFile = Path.Combine(duplicateDirectory, Path.GetFileName(reportFullPath)); string duplicateFile = Path.Combine(duplicateDirectory, Path.GetFileName(reportFullPath));
if (descriptions.Any() && tests.Any()) if (descriptions.Any() && tests.Any())
{ {

View File

@ -11,7 +11,7 @@ public class WSRequest
public bool SentToMetrology { get; set; } public bool SentToMetrology { get; set; }
public bool SentToSPC { get; set; } public bool SentToSPC { get; set; }
// //
public long Id { get; set; } public int Id { get; set; }
public string Batch { get; set; } public string Batch { get; set; }
public string Cassette { get; set; } public string Cassette { get; set; }
public string CellName { get; set; } public string CellName { get; set; }
@ -41,7 +41,7 @@ public class WSRequest
#pragma warning restore IDE0060 #pragma warning restore IDE0060
{ {
ProcessDataStandardFormat = processDataStandardFormat; ProcessDataStandardFormat = processDataStandardFormat;
Id = 0; Id = -1;
FilePath = string.Empty; FilePath = string.Empty;
CellName = logistics.MesEntity; CellName = logistics.MesEntity;
if (descriptions[0] is not QS408M.Description x) if (descriptions[0] is not QS408M.Description x)

View File

@ -260,10 +260,11 @@ public class FileRead : Properties.IFileRead
return results; return results;
} }
protected static string GetTupleFile<T>(Logistics logistics, List<T> descriptions, Properties.IScopeInfo scopeInfo, string duplicateDirectory) where T : Properties.IDescription protected static string GetTupleFile<T>(Logistics logistics, List<T> descriptions, Properties.IScopeInfo scopeInfo, string duplicateDirectory, string duplicateFile) where T : Properties.IDescription
{ {
string result; string result;
string rds; string rds;
string fileName;
string dateValue; string dateValue;
string rdsPlaceholder = "%RDS%"; string rdsPlaceholder = "%RDS%";
string mesEntityPlaceholder = "%MesEntity%"; string mesEntityPlaceholder = "%MesEntity%";
@ -285,7 +286,11 @@ public class FileRead : Properties.IFileRead
continue; continue;
datePlaceholder = string.Concat('%', segment, '%'); 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('%')) if (result.Contains('%'))
throw new Exception("Placeholder exists!"); throw new Exception("Placeholder exists!");
@ -318,7 +323,7 @@ public class FileRead : Properties.IFileRead
else if (!scopeInfo.FileName.Contains('%')) else if (!scopeInfo.FileName.Contains('%'))
tupleFile = string.Concat(duplicateDirectory, @"\", fileName, "_", scopeInfo.FileNameWithoutExtension, ".pdsfc"); tupleFile = string.Concat(duplicateDirectory, @"\", fileName, "_", scopeInfo.FileNameWithoutExtension, ".pdsfc");
else else
tupleFile = GetTupleFile(logistics, descriptions, scopeInfo, duplicateDirectory); tupleFile = GetTupleFile(logistics, descriptions, scopeInfo, duplicateDirectory, duplicateFile);
tupleFileName = Path.GetFileNameWithoutExtension(tupleFile).Split('.')[0]; tupleFileName = Path.GetFileNameWithoutExtension(tupleFile).Split('.')[0];
duplicateFiles.Add(tupleFile); duplicateFiles.Add(tupleFile);
if (_IsEAFHosted) if (_IsEAFHosted)
@ -372,7 +377,7 @@ public class FileRead : Properties.IFileRead
_ = stringBuilder.Append('<').Append(duplicateFiles[i]).Append("> "); _ = 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); Thread.Sleep(250);
} }
@ -446,7 +451,7 @@ public class FileRead : Properties.IFileRead
foreach (KeyValuePair<string, string> keyValuePair in _FileParameter) foreach (KeyValuePair<string, string> keyValuePair in _FileParameter)
to = to.Replace(string.Concat('%', keyValuePair.Key, '%'), keyValuePair.Value); to = to.Replace(string.Concat('%', keyValuePair.Key, '%'), keyValuePair.Value);
if (to.Contains('%')) if (to.Contains('%'))
_Log.Debug("Can't debug without EAF Hosting"); _Log.Debug("Can'fileName debug without EAF Hosting");
else else
_ = Move(extractResults, to, _FileConnectorConfiguration.SourceFileLocation, resolvedFileLocation: string.Empty, exception: null); _ = 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); results = Directory.GetDirectories(jobIdDirectory, string.Concat(_Logistics.MID, '*', logisticsSequence, '*'), SearchOption.TopDirectoryOnly);
} }
if ((results is null) || results.Length != 1) 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; return results;
} }

View File

@ -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\\\")", "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\\\")", "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", "Alpha": "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
"nuget-clear": "dotnet nuget locals all --clear", "kanbn.board": "kanbn board",
"build": "dotnet build --runtime win-x64 --self-contained", "kanbn.board.json": "kanbn board -j > .kanbn/board.json",
"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",
"garbage-collect": "git gc" "garbage-collect": "git gc"
} }
} }