Compare commits
24 Commits
29dd3c3559
...
10-17-a
| Author | SHA1 | Date | |
|---|---|---|---|
| ea0c145d4a | |||
| 72cc064f56 | |||
| ec90b4fbbd | |||
| ddf12e5ec0 | |||
| 5c2a3c97e9 | |||
| e6533e152f | |||
| 19b54a7cc8 | |||
| 43024c6c30 | |||
| e3910d700f | |||
| e651c2804c | |||
| 823a31e48a | |||
| 552f0137df | |||
| 538bd194ae | |||
| 0ed6d17774 | |||
| 46844029b1 | |||
| e81ae34f8f | |||
| 5a3469baa1 | |||
| 4d41e545b3 | |||
| 959bf66fa9 | |||
| 0788998e09 | |||
| ba22cebdf2 | |||
| 750af1fae8 | |||
| 1cabd838a1 | |||
| d2a14d03f5 |
@ -110,7 +110,7 @@ dotnet_diagnostic.CA2254.severity = none # CA2254: The logging message template
|
|||||||
dotnet_diagnostic.IDE0001.severity = warning # IDE0001: Simplify name
|
dotnet_diagnostic.IDE0001.severity = warning # IDE0001: Simplify name
|
||||||
dotnet_diagnostic.IDE0002.severity = warning # Simplify (member access) - System.Version.Equals("1", "2"); Version.Equals("1", "2");
|
dotnet_diagnostic.IDE0002.severity = warning # Simplify (member access) - System.Version.Equals("1", "2"); Version.Equals("1", "2");
|
||||||
dotnet_diagnostic.IDE0004.severity = warning # IDE0004: Cast is redundant.
|
dotnet_diagnostic.IDE0004.severity = warning # IDE0004: Cast is redundant.
|
||||||
dotnet_diagnostic.IDE0005.severity = warning # Using directive is unnecessary
|
dotnet_diagnostic.IDE0005.severity = none # Using directive is unnecessary
|
||||||
dotnet_diagnostic.IDE0028.severity = none # IDE0028: Collection initialization can be simplified
|
dotnet_diagnostic.IDE0028.severity = none # IDE0028: Collection initialization can be simplified
|
||||||
dotnet_diagnostic.IDE0031.severity = warning # Use null propagation (IDE0031)
|
dotnet_diagnostic.IDE0031.severity = warning # Use null propagation (IDE0031)
|
||||||
dotnet_diagnostic.IDE0047.severity = warning # IDE0047: Parentheses can be removed
|
dotnet_diagnostic.IDE0047.severity = warning # IDE0047: Parentheses can be removed
|
||||||
@ -122,6 +122,8 @@ dotnet_diagnostic.IDE0290.severity = none # Use primary constructor [Distance]cs
|
|||||||
dotnet_diagnostic.IDE0300.severity = none # IDE0300: Collection initialization can be simplified
|
dotnet_diagnostic.IDE0300.severity = none # IDE0300: Collection initialization can be simplified
|
||||||
dotnet_diagnostic.IDE0301.severity = none #IDE0301: Collection initialization can be simplified
|
dotnet_diagnostic.IDE0301.severity = none #IDE0301: Collection initialization can be simplified
|
||||||
dotnet_diagnostic.IDE0305.severity = none # IDE0305: Collection initialization can be simplified
|
dotnet_diagnostic.IDE0305.severity = none # IDE0305: Collection initialization can be simplified
|
||||||
|
dotnet_diagnostic.MSTEST0015.severity = none # MSTEST0015: Test method {method} should not be ignored
|
||||||
|
dotnet_diagnostic.MSTEST0037.severity = error # MSTEST0037: Use proper 'Assert' methods
|
||||||
dotnet_diagnostic.SYSLIB1045.severity = none # SYSLIB1045: diagnostics for regex source generation
|
dotnet_diagnostic.SYSLIB1045.severity = none # SYSLIB1045: diagnostics for regex source generation
|
||||||
dotnet_naming_rule.abstract_method_should_be_pascal_case.severity = warning
|
dotnet_naming_rule.abstract_method_should_be_pascal_case.severity = warning
|
||||||
dotnet_naming_rule.abstract_method_should_be_pascal_case.style = pascal_case
|
dotnet_naming_rule.abstract_method_should_be_pascal_case.style = pascal_case
|
||||||
|
|||||||
39
Adaptation/.vscode/launch.json
vendored
39
Adaptation/.vscode/launch.json
vendored
@ -1,10 +1,43 @@
|
|||||||
{
|
{
|
||||||
"configurations": [
|
"configurations": [
|
||||||
|
{
|
||||||
|
"mode": "debug",
|
||||||
|
"name": "Go launch file",
|
||||||
|
"program": "${file}",
|
||||||
|
"request": "launch",
|
||||||
|
"type": "go"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "node Launch Current Opened File",
|
||||||
|
"program": "${file}",
|
||||||
|
"request": "launch",
|
||||||
|
"type": "node"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cwd": "${workspaceFolder}",
|
||||||
|
"internalConsoleOptions": "neverOpen",
|
||||||
|
"name": "Debug File",
|
||||||
|
"program": "${file}",
|
||||||
|
"request": "launch",
|
||||||
|
"stopOnEntry": false,
|
||||||
|
"type": "bun",
|
||||||
|
"watchMode": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cwd": "${workspaceFolder}",
|
||||||
|
"internalConsoleOptions": "neverOpen",
|
||||||
|
"name": "Run File",
|
||||||
|
"noDebug": true,
|
||||||
|
"program": "${file}",
|
||||||
|
"request": "launch",
|
||||||
|
"type": "bun",
|
||||||
|
"watchMode": false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": ".NET Core Attach",
|
"name": ".NET Core Attach",
|
||||||
"type": "coreclr",
|
"processId": 32760,
|
||||||
"request": "attach",
|
"request": "attach",
|
||||||
"processId": 8912
|
"type": "coreclr"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
4
Adaptation/.vscode/settings.json
vendored
4
Adaptation/.vscode/settings.json
vendored
@ -5,7 +5,9 @@
|
|||||||
"cSpell.words": [
|
"cSpell.words": [
|
||||||
"BIORAD",
|
"BIORAD",
|
||||||
"CASS",
|
"CASS",
|
||||||
|
"CEPIEPSILON",
|
||||||
"CUST",
|
"CUST",
|
||||||
|
"DDUPSFS",
|
||||||
"DDUPSP",
|
"DDUPSP",
|
||||||
"EQPT",
|
"EQPT",
|
||||||
"GETJOBS",
|
"GETJOBS",
|
||||||
@ -30,6 +32,8 @@
|
|||||||
"substr",
|
"substr",
|
||||||
"SUSCEPTOR",
|
"SUSCEPTOR",
|
||||||
"targ",
|
"targ",
|
||||||
|
"TENCOR",
|
||||||
|
"THFTIRQS",
|
||||||
"TIBCO",
|
"TIBCO",
|
||||||
"Wafr"
|
"Wafr"
|
||||||
],
|
],
|
||||||
|
|||||||
153
Adaptation/.vscode/tasks.json
vendored
153
Adaptation/.vscode/tasks.json
vendored
@ -1,19 +1,134 @@
|
|||||||
{
|
{
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"default": "Development",
|
||||||
|
"description": "Which ASP Net Core Environment?",
|
||||||
|
"id": "ASPNETCORE_ENVIRONMENT",
|
||||||
|
"options": [
|
||||||
|
"Development",
|
||||||
|
"Production"
|
||||||
|
],
|
||||||
|
"type": "pickString"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "{AssemblyTitle}",
|
||||||
|
"description": "What Assembly Title?",
|
||||||
|
"id": "AssemblyTitle",
|
||||||
|
"type": "promptString"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "{Build.BuildId}",
|
||||||
|
"description": "Which Build BuildId?",
|
||||||
|
"id": "Build.BuildId",
|
||||||
|
"type": "promptString"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "{Build.Reason}",
|
||||||
|
"description": "Which Build Reason?",
|
||||||
|
"id": "Build.Reason",
|
||||||
|
"type": "promptString"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "{Build.Repository.Id}",
|
||||||
|
"description": "Which Build Repository Id?",
|
||||||
|
"id": "Build.Repository.Id",
|
||||||
|
"type": "promptString"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "{Build.Repository.Name}",
|
||||||
|
"description": "Which Build Repository Name?",
|
||||||
|
"id": "Build.Repository.Name",
|
||||||
|
"type": "promptString"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "{Build.SourceVersion}",
|
||||||
|
"description": "Which Build Source Version?",
|
||||||
|
"id": "Build.SourceVersion",
|
||||||
|
"type": "promptString"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "Debug",
|
||||||
|
"description": "Which Configuration?",
|
||||||
|
"id": "Configuration",
|
||||||
|
"options": [
|
||||||
|
"Debug",
|
||||||
|
"Release"
|
||||||
|
],
|
||||||
|
"type": "pickString"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "net8.0",
|
||||||
|
"description": "Which Core Version?",
|
||||||
|
"id": "CoreVersion",
|
||||||
|
"options": [
|
||||||
|
"net8.0"
|
||||||
|
],
|
||||||
|
"type": "pickString"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe",
|
||||||
|
"description": "Which MS Build?",
|
||||||
|
"id": "MSBuild",
|
||||||
|
"type": "promptString"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "https://artifactory.intra.infineon.com/artifactory/api/nuget/ngt-fi-package-main-vir/",
|
||||||
|
"description": "Which Nuget Source?",
|
||||||
|
"id": "NugetSource",
|
||||||
|
"type": "promptString"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "win-x64",
|
||||||
|
"description": "Which Runtime?",
|
||||||
|
"id": "Runtime",
|
||||||
|
"options": [
|
||||||
|
"win-x64",
|
||||||
|
"win-x32",
|
||||||
|
"linux-x64",
|
||||||
|
"linux-x32"
|
||||||
|
],
|
||||||
|
"type": "pickString"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "L:/",
|
||||||
|
"description": "Which System DefaultWorkingDirectory?",
|
||||||
|
"id": "System.DefaultWorkingDirectory",
|
||||||
|
"options": [
|
||||||
|
"L:/",
|
||||||
|
"D:/",
|
||||||
|
"C:/"
|
||||||
|
],
|
||||||
|
"type": "pickString"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "v4.8",
|
||||||
|
"description": "Which Core Target Framework Version?",
|
||||||
|
"id": "TargetFrameworkVersion",
|
||||||
|
"options": [
|
||||||
|
"v4.8"
|
||||||
|
],
|
||||||
|
"type": "pickString"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "{UserSecretsId}",
|
||||||
|
"description": "Which Core User Secrets Id?",
|
||||||
|
"id": "UserSecretsId",
|
||||||
|
"type": "promptString"
|
||||||
|
}
|
||||||
|
],
|
||||||
"tasks": [
|
"tasks": [
|
||||||
{
|
{
|
||||||
"label": "Build",
|
"label": "Build",
|
||||||
"command": "dotnet",
|
"command": "dotnet",
|
||||||
"type": "process",
|
"type": "process",
|
||||||
"args": [
|
"args": [
|
||||||
"build",
|
"build"
|
||||||
"/property:GenerateFullPaths=true",
|
|
||||||
"/consoleloggerparameters:NoSummary"
|
|
||||||
],
|
],
|
||||||
"problemMatcher": "$msCompile"
|
"problemMatcher": "$msCompile"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "Test-Debug",
|
"label": "Test Debug",
|
||||||
"command": "dotnet",
|
"command": "dotnet",
|
||||||
"type": "process",
|
"type": "process",
|
||||||
"args": [
|
"args": [
|
||||||
@ -24,7 +139,7 @@
|
|||||||
"problemMatcher": "$msCompile"
|
"problemMatcher": "$msCompile"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "Test-Release",
|
"label": "Test Release",
|
||||||
"command": "dotnet",
|
"command": "dotnet",
|
||||||
"type": "process",
|
"type": "process",
|
||||||
"args": [
|
"args": [
|
||||||
@ -50,7 +165,7 @@
|
|||||||
"problemMatcher": "$msCompile"
|
"problemMatcher": "$msCompile"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "Format-Whitespaces",
|
"label": "Format Whitespaces",
|
||||||
"command": "dotnet",
|
"command": "dotnet",
|
||||||
"type": "process",
|
"type": "process",
|
||||||
"args": [
|
"args": [
|
||||||
@ -78,7 +193,7 @@
|
|||||||
"args": [
|
"args": [
|
||||||
"/target:Build",
|
"/target:Build",
|
||||||
"/restore:True",
|
"/restore:True",
|
||||||
"/p:RestoreSources=https://artifactory.intra.infineon.com/artifactory/api/nuget/ngt-fi-package-main-vir/%3Bhttps://packagemanagement.eu.infineon.com:4430/api/v2/%3Bhttps://tfs.intra.infineon.com/tfs/FactoryIntegration/_packaging/EAF/nuget/v3/index.json%3Bhttps://tfs.intra.infineon.com/tfs/FactoryIntegration/_packaging/EAF%40Local/nuget/v3/index.json%3Bhttps://api.nuget.org/v3/index.json",
|
"/p:RestoreSources=https://artifactory.intra.infineon.com/artifactory/api/nuget/ngt-fi-package-main-vir/%3Bhttps://tfs.intra.infineon.com/tfs/FactoryIntegration/_packaging/EAF/nuget/v3/index.json%3Bhttps://tfs.intra.infineon.com/tfs/FactoryIntegration/_packaging/EAF%40Local/nuget/v3/index.json%3Bhttps://api.nuget.org/v3/index.json",
|
||||||
"/detailedsummary",
|
"/detailedsummary",
|
||||||
"/consoleloggerparameters:PerformanceSummary;ErrorsOnly;",
|
"/consoleloggerparameters:PerformanceSummary;ErrorsOnly;",
|
||||||
"/property:Configuration=Debug;TargetFrameworkVersion=v4.8",
|
"/property:Configuration=Debug;TargetFrameworkVersion=v4.8",
|
||||||
@ -87,13 +202,33 @@
|
|||||||
"problemMatcher": "$msCompile"
|
"problemMatcher": "$msCompile"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "Project",
|
"label": "Code Project",
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
"command": "code ../MET08DDUPSP1TBI.csproj",
|
"command": "code ../MET08DDUPSP1TBI.csproj",
|
||||||
"problemMatcher": []
|
"problemMatcher": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "Git Config",
|
"label": "Code Read Me",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "code ../README.md",
|
||||||
|
"problemMatcher": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "File-Folder-Helper AOT s X Day-Helper-2025-03-20",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "L:/DevOps/Mesa_FI/File-Folder-Helper/bin/Release/net8.0/win-x64/publish/File-Folder-Helper.exe",
|
||||||
|
"args": [
|
||||||
|
"s",
|
||||||
|
"X",
|
||||||
|
"L:/DevOps/EAF-Mesa-Integration/met08ddupsp1tbi",
|
||||||
|
"Day-Helper-2025-03-20",
|
||||||
|
"false",
|
||||||
|
"4"
|
||||||
|
],
|
||||||
|
"problemMatcher": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Code Git Config",
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
"command": "code ../.git/config",
|
"command": "code ../.git/config",
|
||||||
"problemMatcher": []
|
"problemMatcher": []
|
||||||
|
|||||||
@ -14,7 +14,7 @@ namespace Adaptation.FileHandlers.APC;
|
|||||||
public class FileRead : Shared.FileRead, IFileRead
|
public class FileRead : Shared.FileRead, IFileRead
|
||||||
{
|
{
|
||||||
|
|
||||||
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<Shared.Metrology.WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
||||||
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
||||||
{
|
{
|
||||||
_MinFileLength = 10;
|
_MinFileLength = 10;
|
||||||
@ -120,15 +120,15 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
||||||
{
|
{
|
||||||
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
||||||
Tuple<string, string[], string[]> pdsf = ProcessDataStandardFormat.GetLogisticsColumnsAndBody(reportFullPath);
|
ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath);
|
||||||
_Logistics = new Logistics(reportFullPath, pdsf.Item1);
|
_Logistics = new Logistics(reportFullPath, processDataStandardFormat);
|
||||||
SetFileParameterLotIDToLogisticsMID();
|
SetFileParameterLotIDToLogisticsMID();
|
||||||
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(pdsf);
|
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(processDataStandardFormat);
|
||||||
List<Shared.Properties.IDescription> descriptions = GetDuplicatorDescriptions(jsonElements);
|
List<Shared.Properties.IDescription> descriptions = GetDuplicatorDescriptions(jsonElements);
|
||||||
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
||||||
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
||||||
FileCopy(reportFullPath, dateTime, descriptions);
|
FileCopy(reportFullPath, dateTime, descriptions);
|
||||||
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(pdsf.Item1, tests, jsonElements, new List<FileInfo>());
|
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(string.Join(Environment.NewLine, processDataStandardFormat.Logistics), tests, jsonElements, new List<FileInfo>());
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -18,7 +18,7 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
private readonly string _JobIdParentDirectory;
|
private readonly string _JobIdParentDirectory;
|
||||||
private readonly string _JobIdArchiveParentDirectory;
|
private readonly string _JobIdArchiveParentDirectory;
|
||||||
|
|
||||||
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<Shared.Metrology.WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
||||||
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
||||||
{
|
{
|
||||||
_MinFileLength = 10;
|
_MinFileLength = 10;
|
||||||
@ -120,9 +120,10 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
if (dateTime == DateTime.MinValue)
|
if (dateTime == DateTime.MinValue)
|
||||||
throw new ArgumentNullException(nameof(dateTime));
|
throw new ArgumentNullException(nameof(dateTime));
|
||||||
string logisticsSequence = _Logistics.Sequence.ToString();
|
string logisticsSequence = _Logistics.Sequence.ToString();
|
||||||
|
string day = $"{_Logistics.DateTimeFromSequence:yyyy-MM-dd}";
|
||||||
string weekOfYear = _Calendar.GetWeekOfYear(_Logistics.DateTimeFromSequence, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00");
|
string weekOfYear = _Calendar.GetWeekOfYear(_Logistics.DateTimeFromSequence, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00");
|
||||||
string weekDirectory = $"{_Logistics.DateTimeFromSequence:yyyy}_Week_{weekOfYear}{@"\"}{_Logistics.DateTimeFromSequence:yyyy-MM-dd}";
|
string weekDirectory = $"{_Logistics.DateTimeFromSequence:yyyy}_Week_{weekOfYear}";
|
||||||
string destinationArchiveDirectory = Path.Combine(_JobIdArchiveParentDirectory, _Logistics.JobID, weekDirectory);
|
string destinationArchiveDirectory = Path.Combine(_JobIdArchiveParentDirectory, _Logistics.JobID, weekDirectory, day);
|
||||||
if (!Directory.Exists(destinationArchiveDirectory))
|
if (!Directory.Exists(destinationArchiveDirectory))
|
||||||
_ = Directory.CreateDirectory(destinationArchiveDirectory);
|
_ = Directory.CreateDirectory(destinationArchiveDirectory);
|
||||||
string jobIdDirectory = Path.Combine(_JobIdParentDirectory, _Logistics.JobID);
|
string jobIdDirectory = Path.Combine(_JobIdParentDirectory, _Logistics.JobID);
|
||||||
@ -144,15 +145,15 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
||||||
{
|
{
|
||||||
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
||||||
Tuple<string, string[], string[]> pdsf = ProcessDataStandardFormat.GetLogisticsColumnsAndBody(reportFullPath);
|
ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath);
|
||||||
_Logistics = new Logistics(reportFullPath, pdsf.Item1);
|
_Logistics = new Logistics(reportFullPath, processDataStandardFormat);
|
||||||
SetFileParameterLotIDToLogisticsMID();
|
SetFileParameterLotIDToLogisticsMID();
|
||||||
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(pdsf);
|
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(processDataStandardFormat);
|
||||||
List<Shared.Properties.IDescription> descriptions = GetDuplicatorDescriptions(jsonElements);
|
List<Shared.Properties.IDescription> descriptions = GetDuplicatorDescriptions(jsonElements);
|
||||||
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
||||||
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
||||||
MoveArchive(reportFullPath, dateTime);
|
MoveArchive(reportFullPath, dateTime);
|
||||||
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(pdsf.Item1, tests, jsonElements, new List<FileInfo>());
|
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(string.Join(Environment.NewLine, processDataStandardFormat.Logistics), tests, jsonElements, new List<FileInfo>());
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -9,7 +9,7 @@ namespace Adaptation.FileHandlers;
|
|||||||
public class CellInstanceConnectionName
|
public class CellInstanceConnectionName
|
||||||
{
|
{
|
||||||
|
|
||||||
internal static IFileRead Get(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, int? connectionCount)
|
internal static IFileRead Get(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<Shared.Metrology.WS.Results>> staticRuns, bool useCyclicalForDescription, int? connectionCount)
|
||||||
{
|
{
|
||||||
IFileRead result = cellInstanceConnectionName switch
|
IFileRead result = cellInstanceConnectionName switch
|
||||||
{
|
{
|
||||||
|
|||||||
@ -23,7 +23,7 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
private int _LastDummyRunIndex;
|
private int _LastDummyRunIndex;
|
||||||
private readonly string[] _CellNames;
|
private readonly string[] _CellNames;
|
||||||
|
|
||||||
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<Shared.Metrology.WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
||||||
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
||||||
{
|
{
|
||||||
_MinFileLength = 10;
|
_MinFileLength = 10;
|
||||||
|
|||||||
@ -8,6 +8,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
|
|
||||||
namespace Adaptation.FileHandlers.IQSSi;
|
namespace Adaptation.FileHandlers.IQSSi;
|
||||||
@ -18,7 +19,7 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
private string _LastLines;
|
private string _LastLines;
|
||||||
private readonly string _IQSFile;
|
private readonly string _IQSFile;
|
||||||
|
|
||||||
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
||||||
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
||||||
{
|
{
|
||||||
_MinFileLength = 10;
|
_MinFileLength = 10;
|
||||||
@ -109,6 +110,59 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static Tuple<string, string> GetLines(Logistics logistics, List<txt.Description> descriptions)
|
||||||
|
{
|
||||||
|
StringBuilder result = new();
|
||||||
|
char del = '\t';
|
||||||
|
txt.Description x = descriptions[0];
|
||||||
|
_ = result.Append(x.DcnLpdMin).Append(del). // 001 -
|
||||||
|
Append(x.DcnLpdMax).Append(del). // 002 -
|
||||||
|
Append(x.DcnLpdMean).Append(del). // 003 - DCN LPD
|
||||||
|
Append(x.DcnAreaCountMin).Append(del). // 004 -
|
||||||
|
Append(x.DcnAreaCountMax).Append(del). // 005 -
|
||||||
|
Append(x.DcnAreaCountMean).Append(del).// 006 - DCN Area
|
||||||
|
Append(x.DcnAreaMin).Append(del). // 007 -
|
||||||
|
Append(x.DcnAreaMax).Append(del). // 008 -
|
||||||
|
Append(x.Date).Append(del). // 009 -
|
||||||
|
Append(x.DcnHazeAvgMean).Append(del). // 010 - Haze Average
|
||||||
|
Append(string.Empty).Append(del). // 011 -
|
||||||
|
Append(string.Empty).Append(del). // 012 -
|
||||||
|
Append(string.Empty).Append(del). // 013 -
|
||||||
|
Append(string.Empty).Append(del). // 014 -
|
||||||
|
Append(string.Empty).Append(del). // 015 -
|
||||||
|
Append(string.Empty).Append(del). // 016 -
|
||||||
|
Append(string.Empty).Append(del). // 017 -
|
||||||
|
Append(string.Empty).Append(del). // 018 -
|
||||||
|
Append(string.Empty).Append(del). // 019 -
|
||||||
|
Append(string.Empty).Append(del). // 020 -
|
||||||
|
Append(string.Empty).Append(del). // 021 -
|
||||||
|
Append(string.Empty).Append(del). // 022 -
|
||||||
|
Append(string.Empty).Append(del). // 023 -
|
||||||
|
Append(string.Empty).Append(del). // 024 -
|
||||||
|
Append(string.Empty).Append(del). // 025 -
|
||||||
|
Append(string.Empty).Append(del). // 026 -
|
||||||
|
Append(string.Empty).Append(del). // 027 -
|
||||||
|
Append(x.RDS).Append(del). // 028 - Lot
|
||||||
|
Append(x.Reactor).Append(del). // 029 - Process
|
||||||
|
Append(x.Recipe).Append(del). // 030 - Part
|
||||||
|
Append(x.DcnScrMean).Append(del). // 031 - Scratch Count
|
||||||
|
Append(string.Empty).Append(del). // 032 -
|
||||||
|
Append(string.Empty).Append(del). // 033 -
|
||||||
|
Append(string.Empty).Append(del). // 034 -
|
||||||
|
Append(x.DcnMicroScrMean).Append(del). // 035 - Scratch Length
|
||||||
|
Append(string.Empty).Append(del). // 036 -
|
||||||
|
Append(string.Empty).Append(del). // 037 -
|
||||||
|
Append(string.Empty).Append(del). // 038 -
|
||||||
|
Append(x.DcnAllMean).Append(del). // 039 - Average Sum of Defects
|
||||||
|
Append(x.DcnAllMax).Append(del). // 040 - Max Sum of defects
|
||||||
|
Append(x.DcnAllMin).Append(del). // 041 - Min Sum of Defects
|
||||||
|
Append(string.Empty).Append(del). // 042 -
|
||||||
|
Append(logistics.MesEntity).Append(del). // 043 -
|
||||||
|
Append(x.DcnAreaMean).Append(del). // 044 - DCN MM2
|
||||||
|
AppendLine();
|
||||||
|
return new Tuple<string, string>(result.ToString(), x.Date);
|
||||||
|
}
|
||||||
|
|
||||||
private void SaveIQSFile(string reportFullPath, DateTime dateTime, List<txt.Description> descriptions, Test[] tests)
|
private void SaveIQSFile(string reportFullPath, DateTime dateTime, List<txt.Description> descriptions, Test[] tests)
|
||||||
{
|
{
|
||||||
if (tests.Length == 0)
|
if (tests.Length == 0)
|
||||||
@ -116,7 +170,7 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
bool isDummyRun = false;
|
bool isDummyRun = false;
|
||||||
Tuple<string, string> lines = OpenInsight.FileRead.GetLines(_Logistics, descriptions);
|
Tuple<string, string> lines = GetLines(_Logistics, descriptions);
|
||||||
string check = lines.Item1.Replace(lines.Item2, "$Date$");
|
string check = lines.Item1.Replace(lines.Item2, "$Date$");
|
||||||
ScopeInfo scopeInfo = new(tests[0], _IQSFile);
|
ScopeInfo scopeInfo = new(tests[0], _IQSFile);
|
||||||
List<(Shared.Properties.IScopeInfo, string)> collection = new();
|
List<(Shared.Properties.IScopeInfo, string)> collection = new();
|
||||||
@ -132,7 +186,7 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FileCopy<T>(string reportFullPath, DateTime dateTime, List<T> descriptions) where T : Shared.Properties.IDescription
|
private void WriteFile<T>(string reportFullPath, DateTime dateTime, List<T> descriptions) where T : Shared.Properties.IDescription
|
||||||
{
|
{
|
||||||
bool isDummyRun = false;
|
bool isDummyRun = false;
|
||||||
string successDirectory = string.Empty;
|
string successDirectory = string.Empty;
|
||||||
@ -140,25 +194,27 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
string duplicateDirectory = Path.Combine(_FileConnectorConfiguration.SourceFileLocation, _CellInstanceName);
|
string duplicateDirectory = Path.Combine(_FileConnectorConfiguration.SourceFileLocation, _CellInstanceName);
|
||||||
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)}.xml");
|
||||||
File.Copy(reportFullPath, duplicateFile, overwrite: true);
|
string xml = ProcessDataStandardFormat.GetXml(reportFullPath);
|
||||||
|
File.WriteAllText(duplicateFile, xml);
|
||||||
WaitForFileConsumption(dateTime, descriptions, isDummyRun, successDirectory, duplicateDirectory, collection, duplicateFile);
|
WaitForFileConsumption(dateTime, descriptions, isDummyRun, successDirectory, duplicateDirectory, collection, duplicateFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
||||||
{
|
{
|
||||||
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
||||||
Tuple<string, string[], string[]> pdsf = ProcessDataStandardFormat.GetLogisticsColumnsAndBody(reportFullPath);
|
string[] lines = File.ReadAllLines(reportFullPath);
|
||||||
_Logistics = new Logistics(reportFullPath, pdsf.Item1);
|
ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath, lines);
|
||||||
|
_Logistics = new Logistics(reportFullPath, processDataStandardFormat);
|
||||||
SetFileParameterLotIDToLogisticsMID();
|
SetFileParameterLotIDToLogisticsMID();
|
||||||
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(pdsf);
|
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(reportFullPath, lines, processDataStandardFormat);
|
||||||
List<txt.Description> descriptions = txt.ProcessData.GetDescriptions(jsonElements);
|
List<txt.Description> descriptions = txt.ProcessData.GetDescriptions(jsonElements);
|
||||||
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
||||||
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
||||||
SaveIQSFile(reportFullPath, dateTime, descriptions, tests);
|
SaveIQSFile(reportFullPath, dateTime, descriptions, tests);
|
||||||
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
||||||
FileCopy(reportFullPath, dateTime, descriptions);
|
WriteFile(reportFullPath, dateTime, descriptions);
|
||||||
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(pdsf.Item1, tests, jsonElements, new List<FileInfo>());
|
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(string.Join(Environment.NewLine, processDataStandardFormat.Logistics), tests, jsonElements, new List<FileInfo>());
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -17,7 +17,7 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
|
|
||||||
private long? _TickOffset;
|
private long? _TickOffset;
|
||||||
|
|
||||||
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<Shared.Metrology.WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
||||||
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
||||||
{
|
{
|
||||||
_MinFileLength = 10;
|
_MinFileLength = 10;
|
||||||
|
|||||||
@ -5,17 +5,75 @@ using Adaptation.Shared.Duplicator;
|
|||||||
using Adaptation.Shared.Methods;
|
using Adaptation.Shared.Methods;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
|
||||||
namespace Adaptation.FileHandlers.MoveMatchingFiles;
|
namespace Adaptation.FileHandlers.MoveMatchingFiles;
|
||||||
|
|
||||||
|
#nullable enable
|
||||||
|
|
||||||
public class FileRead : Shared.FileRead, IFileRead
|
public class FileRead : Shared.FileRead, IFileRead
|
||||||
{
|
{
|
||||||
|
|
||||||
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
internal class PreWith
|
||||||
|
{
|
||||||
|
|
||||||
|
internal string ErrFile { get; private set; }
|
||||||
|
internal string CheckFile { get; private set; }
|
||||||
|
internal string MatchingFile { get; private set; }
|
||||||
|
internal string CheckDirectory { get; private set; }
|
||||||
|
internal string NoWaitDirectory { get; private set; }
|
||||||
|
|
||||||
|
internal PreWith(string checkDirectory,
|
||||||
|
string checkFile,
|
||||||
|
string errFile,
|
||||||
|
string matchingFile,
|
||||||
|
string noWaitDirectory)
|
||||||
|
{
|
||||||
|
ErrFile = errFile;
|
||||||
|
CheckFile = checkFile;
|
||||||
|
MatchingFile = matchingFile;
|
||||||
|
CheckDirectory = checkDirectory;
|
||||||
|
NoWaitDirectory = noWaitDirectory;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
internal class Pre
|
||||||
|
{
|
||||||
|
|
||||||
|
internal string MatchingFile { get; private set; }
|
||||||
|
internal string CheckFile { get; private set; }
|
||||||
|
|
||||||
|
internal Pre(string matchingFile, string checkFile)
|
||||||
|
{
|
||||||
|
MatchingFile = matchingFile;
|
||||||
|
CheckFile = checkFile;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
internal class Post
|
||||||
|
{
|
||||||
|
|
||||||
|
internal string ErrFile { get; private set; }
|
||||||
|
internal string CheckFile { get; private set; }
|
||||||
|
|
||||||
|
internal Post(string checkFile, string errFile)
|
||||||
|
{
|
||||||
|
ErrFile = errFile;
|
||||||
|
CheckFile = checkFile;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private readonly ProcessDataStandardFormatMapping _ProcessDataStandardFormatMapping;
|
||||||
|
|
||||||
|
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<Shared.Metrology.WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
||||||
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
||||||
{
|
{
|
||||||
_MinFileLength = 10;
|
_MinFileLength = 10;
|
||||||
@ -27,6 +85,12 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
throw new Exception(cellInstanceConnectionName);
|
throw new Exception(cellInstanceConnectionName);
|
||||||
if (!_IsDuplicator)
|
if (!_IsDuplicator)
|
||||||
throw new Exception(cellInstanceConnectionName);
|
throw new Exception(cellInstanceConnectionName);
|
||||||
|
string processDataStandardFormatMappingOldColumnNames = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "Process.Data.Standard.Format.Mapping.Old.Column.Names");
|
||||||
|
string processDataStandardFormatMappingNewColumnNames = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "Process.Data.Standard.Format.Mapping.New.Column.Names");
|
||||||
|
string processDataStandardFormatMappingColumnIndices = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "Process.Data.Standard.Format.Mapping.Column.Indices");
|
||||||
|
_ProcessDataStandardFormatMapping = ProcessDataStandardFormatMapping.Get(processDataStandardFormatMappingOldColumnNames,
|
||||||
|
processDataStandardFormatMappingNewColumnNames,
|
||||||
|
processDataStandardFormatMappingColumnIndices);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IFileRead.Move(Tuple<string, Test[], JsonElement[], List<FileInfo>> extractResults, Exception exception)
|
void IFileRead.Move(Tuple<string, Test[], JsonElement[], List<FileInfo>> extractResults, Exception exception)
|
||||||
@ -41,7 +105,8 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
Move(extractResults);
|
Move(extractResults);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IFileRead.WaitForThread() => WaitForThread(thread: null, threadExceptions: null);
|
void IFileRead.WaitForThread() =>
|
||||||
|
WaitForThread(thread: null, threadExceptions: null);
|
||||||
|
|
||||||
string IFileRead.GetEventDescription()
|
string IFileRead.GetEventDescription()
|
||||||
{
|
{
|
||||||
@ -88,7 +153,7 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
DateTime dateTime = DateTime.Now;
|
DateTime dateTime = DateTime.Now;
|
||||||
results = GetExtractResult(reportFullPath, dateTime);
|
results = GetExtractResult(reportFullPath, dateTime);
|
||||||
if (results.Item3 is null)
|
if (results.Item3 is null)
|
||||||
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(results.Item1, Array.Empty<Test>(), JsonSerializer.Deserialize<JsonElement[]>("[]"), results.Item4);
|
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(results.Item1, Array.Empty<Test>(), JsonSerializer.Deserialize<JsonElement[]>("[]") ?? throw new Exception(), results.Item4);
|
||||||
if (results.Item3.Length > 0 && _IsEAFHosted)
|
if (results.Item3.Length > 0 && _IsEAFHosted)
|
||||||
WritePDSF(this, results.Item3);
|
WritePDSF(this, results.Item3);
|
||||||
UpdateLastTicksDuration(DateTime.Now.Ticks - dateTime.Ticks);
|
UpdateLastTicksDuration(DateTime.Now.Ticks - dateTime.Ticks);
|
||||||
@ -104,7 +169,33 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<string> GetSearchDirectories(int numberLength, string parentDirectory)
|
private static ReadOnlyCollection<PreWith> GetPreWithCollection(ReadOnlyCollection<Pre> preCollection)
|
||||||
|
{
|
||||||
|
List<PreWith> results = new();
|
||||||
|
string errFile;
|
||||||
|
PreWith preWith;
|
||||||
|
string? checkDirectory;
|
||||||
|
string noWaitDirectory;
|
||||||
|
foreach (Pre pre in preCollection)
|
||||||
|
{
|
||||||
|
errFile = string.Concat(pre.CheckFile, ".err");
|
||||||
|
checkDirectory = Path.GetDirectoryName(pre.CheckFile);
|
||||||
|
if (string.IsNullOrEmpty(checkDirectory))
|
||||||
|
continue;
|
||||||
|
if (!Directory.Exists(checkDirectory))
|
||||||
|
_ = Directory.CreateDirectory(checkDirectory);
|
||||||
|
noWaitDirectory = Path.Combine(checkDirectory, "NoWaitDirectory");
|
||||||
|
preWith = new(checkDirectory: checkDirectory,
|
||||||
|
checkFile: pre.CheckFile,
|
||||||
|
errFile: errFile,
|
||||||
|
matchingFile: pre.MatchingFile,
|
||||||
|
noWaitDirectory: noWaitDirectory);
|
||||||
|
results.Add(preWith);
|
||||||
|
}
|
||||||
|
return results.AsReadOnly();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static ReadOnlyCollection<string> GetSearchDirectories(int numberLength, string parentDirectory)
|
||||||
{
|
{
|
||||||
List<string> results = new();
|
List<string> results = new();
|
||||||
string[] directories = Directory.GetDirectories(parentDirectory, "*", SearchOption.TopDirectoryOnly);
|
string[] directories = Directory.GetDirectories(parentDirectory, "*", SearchOption.TopDirectoryOnly);
|
||||||
@ -115,10 +206,138 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
results.Add(directory);
|
results.Add(directory);
|
||||||
}
|
}
|
||||||
results.Sort();
|
results.Sort();
|
||||||
|
return results.AsReadOnly();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void CreatePointerFile(int numberLength, string parentDirectory, ReadOnlyCollection<string> matchingFiles)
|
||||||
|
{
|
||||||
|
string checkFile;
|
||||||
|
string writeFile;
|
||||||
|
string? directoryName;
|
||||||
|
int parentDirectoryLength = parentDirectory.Length;
|
||||||
|
foreach (string matchingFile in matchingFiles)
|
||||||
|
{
|
||||||
|
directoryName = Path.GetDirectoryName(matchingFile);
|
||||||
|
if (directoryName is null)
|
||||||
|
continue;
|
||||||
|
checkFile = $"{matchingFile[0]}{directoryName.Substring(parentDirectoryLength + numberLength + 1)}";
|
||||||
|
writeFile = Path.Combine(parentDirectory, $"{directoryName.Substring(parentDirectory.Length + 1, numberLength)}.txt");
|
||||||
|
if (File.Exists(writeFile))
|
||||||
|
continue;
|
||||||
|
File.AppendAllLines(writeFile, new string[] { parentDirectory, matchingFile, directoryName, checkFile });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static ReadOnlyCollection<Pre> GetPreCollection(int numberLength, string parentDirectory, ReadOnlyCollection<string> matchingFiles)
|
||||||
|
{
|
||||||
|
List<Pre> results = new();
|
||||||
|
Pre pre;
|
||||||
|
string checkFile;
|
||||||
|
int parentDirectoryLength = parentDirectory.Length;
|
||||||
|
foreach (string matchingFile in matchingFiles)
|
||||||
|
{
|
||||||
|
checkFile = $"{matchingFile[0]}{matchingFile.Substring(parentDirectoryLength + numberLength + 1)}";
|
||||||
|
pre = new(matchingFile, checkFile);
|
||||||
|
results.Add(pre);
|
||||||
|
}
|
||||||
|
return results.AsReadOnly();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MoveCollection(DateTime dateTime, ProcessDataStandardFormat processDataStandardFormat, ReadOnlyCollection<PreWith> preWithCollection)
|
||||||
|
{
|
||||||
|
ReadOnlyCollection<Post> postCollection = GetPostCollection(dateTime, processDataStandardFormat, preWithCollection);
|
||||||
|
if (postCollection.Count != 0)
|
||||||
|
{
|
||||||
|
Thread.Sleep(500);
|
||||||
|
StringBuilder stringBuilder = new();
|
||||||
|
foreach (Post post in postCollection)
|
||||||
|
{
|
||||||
|
if (File.Exists(post.ErrFile))
|
||||||
|
_ = stringBuilder.AppendLine(File.ReadAllText(post.ErrFile));
|
||||||
|
if (File.Exists(post.CheckFile))
|
||||||
|
_ = stringBuilder.AppendLine($"<{post.CheckFile}> was not consumed by the end!");
|
||||||
|
}
|
||||||
|
if (stringBuilder.Length > 0)
|
||||||
|
throw new Exception(stringBuilder.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private ReadOnlyCollection<Post> GetPostCollection(DateTime dateTime, ProcessDataStandardFormat processDataStandardFormat, ReadOnlyCollection<PreWith> preWithCollection)
|
||||||
|
{
|
||||||
|
List<Post> results = new();
|
||||||
|
Post post;
|
||||||
|
long preWait;
|
||||||
|
foreach (PreWith preWith in preWithCollection)
|
||||||
|
{
|
||||||
|
if (!_IsEAFHosted)
|
||||||
|
continue;
|
||||||
|
if (!_StaticRuns.TryGetValue(_Logistics.Sequence, out List<Shared.Metrology.WS.Results>? wsResults))
|
||||||
|
wsResults = null;
|
||||||
|
if (processDataStandardFormat.InputPDSF is null)
|
||||||
|
File.Move(preWith.MatchingFile, preWith.CheckFile);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ProcessDataStandardFormat.Write(preWith.CheckFile, processDataStandardFormat, wsResults);
|
||||||
|
File.Delete(preWith.MatchingFile);
|
||||||
|
}
|
||||||
|
if (Directory.Exists(preWith.NoWaitDirectory))
|
||||||
|
{
|
||||||
|
post = new(preWith.CheckFile, preWith.ErrFile);
|
||||||
|
results.Add(post);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (_FileConnectorConfiguration?.FileHandleWaitTime is null)
|
||||||
|
preWait = DateTime.Now.AddMilliseconds(1234).Ticks;
|
||||||
|
else
|
||||||
|
preWait = DateTime.Now.AddMilliseconds(_FileConnectorConfiguration.FileHandleWaitTime.Value).Ticks;
|
||||||
|
for (short i = 0; i < short.MaxValue; i++)
|
||||||
|
{
|
||||||
|
if (DateTime.Now.Ticks > preWait)
|
||||||
|
break;
|
||||||
|
Thread.Sleep(500);
|
||||||
|
}
|
||||||
|
for (int i = 0; i < int.MaxValue; i++)
|
||||||
|
{
|
||||||
|
if (File.Exists(preWith.ErrFile))
|
||||||
|
throw new Exception(File.ReadAllText(preWith.ErrFile));
|
||||||
|
if (!File.Exists(preWith.CheckFile))
|
||||||
|
break;
|
||||||
|
if (new TimeSpan(DateTime.Now.Ticks - dateTime.Ticks).TotalSeconds > _BreakAfterSeconds)
|
||||||
|
throw new Exception($"Not all files were consumed after {_BreakAfterSeconds} second(s)!");
|
||||||
|
Thread.Sleep(500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return results.AsReadOnly();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
||||||
|
{
|
||||||
|
Tuple<string, Test[], JsonElement[], List<FileInfo>> results = new(string.Empty, Array.Empty<Test>(), Array.Empty<JsonElement>(), new List<FileInfo>());
|
||||||
|
ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath, _ProcessDataStandardFormatMapping);
|
||||||
|
_Logistics = new Logistics(reportFullPath, processDataStandardFormat);
|
||||||
|
if (!_IsEAFHosted)
|
||||||
|
ProcessDataStandardFormat.Write("../../.pdsf", processDataStandardFormat, wsResults: null);
|
||||||
|
SetFileParameterLotIDToLogisticsMID();
|
||||||
|
int numberLength = 2;
|
||||||
|
long ticks = dateTime.Ticks;
|
||||||
|
string parentParentDirectory = GetParentParent(reportFullPath);
|
||||||
|
ReadOnlyCollection<string> searchDirectories = GetSearchDirectories(numberLength, parentParentDirectory);
|
||||||
|
ReadOnlyCollection<string> matchingFiles = GetMatchingFiles(ticks, reportFullPath, searchDirectories);
|
||||||
|
if (matchingFiles.Count != searchDirectories.Count)
|
||||||
|
throw new Exception($"Didn't find all files after {_BreakAfterSeconds} second(s)!");
|
||||||
|
if (_IsEAFHosted)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{ CreatePointerFile(numberLength, parentParentDirectory, matchingFiles); }
|
||||||
|
catch (Exception) { }
|
||||||
|
}
|
||||||
|
ReadOnlyCollection<Pre> preCollection = GetPreCollection(numberLength, parentParentDirectory, matchingFiles);
|
||||||
|
ReadOnlyCollection<PreWith> preWithCollection = GetPreWithCollection(preCollection);
|
||||||
|
MoveCollection(dateTime, processDataStandardFormat, preWithCollection);
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<string> GetMatchingFiles(long ticks, string reportFullPath, List<string> searchDirectories)
|
private ReadOnlyCollection<string> GetMatchingFiles(long ticks, string reportFullPath, ReadOnlyCollection<string> searchDirectories)
|
||||||
{
|
{
|
||||||
List<string> results = new();
|
List<string> results = new();
|
||||||
string[] found;
|
string[] found;
|
||||||
@ -137,129 +356,7 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return results;
|
return results.AsReadOnly();
|
||||||
}
|
|
||||||
|
|
||||||
private static List<(string matchingFile, string checkFile)> GetCollection(int numberLength, string parentDirectory, List<string> matchingFiles)
|
|
||||||
{
|
|
||||||
List<(string matchingFile, string checkFile)> results = new();
|
|
||||||
string checkFile;
|
|
||||||
int parentDirectoryLength = parentDirectory.Length;
|
|
||||||
foreach (string matchingFile in matchingFiles)
|
|
||||||
{
|
|
||||||
checkFile = $"{matchingFile[0]}{matchingFile.Substring(parentDirectoryLength + numberLength + 1)}";
|
|
||||||
results.Add(new(matchingFile, checkFile));
|
|
||||||
}
|
|
||||||
return results;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static List<(string, string, string, string, string)> GetCollection(List<(string matchingFile, string checkFile)> collection)
|
|
||||||
{
|
|
||||||
List<(string, string, string, string, string)> results = new();
|
|
||||||
string errFile;
|
|
||||||
string checkDirectory;
|
|
||||||
string noWaitDirectory;
|
|
||||||
foreach ((string matchingFile, string checkFile) in collection)
|
|
||||||
{
|
|
||||||
errFile = string.Concat(checkFile, ".err");
|
|
||||||
checkDirectory = Path.GetDirectoryName(checkFile);
|
|
||||||
if (!Directory.Exists(checkDirectory))
|
|
||||||
_ = Directory.CreateDirectory(checkDirectory);
|
|
||||||
noWaitDirectory = Path.Combine(checkDirectory, "NoWaitDirectory");
|
|
||||||
results.Add(new(matchingFile, checkFile, errFile, checkDirectory, noWaitDirectory));
|
|
||||||
}
|
|
||||||
return results;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void MoveCollection(DateTime dateTime, List<(string matchingFile, string checkFile)> collection)
|
|
||||||
{
|
|
||||||
long preWait;
|
|
||||||
List<(string checkFile, string errFile)> postCollection = new();
|
|
||||||
foreach ((string matchingFile, string checkFile, string errFile, string checkDirectory, string noWaitDirectory) in GetCollection(collection))
|
|
||||||
{
|
|
||||||
File.Move(matchingFile, checkFile);
|
|
||||||
if (Directory.Exists(noWaitDirectory))
|
|
||||||
{
|
|
||||||
postCollection.Add(new(checkFile, errFile));
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (_FileConnectorConfiguration?.FileHandleWaitTime is null)
|
|
||||||
preWait = DateTime.Now.AddMilliseconds(1234).Ticks;
|
|
||||||
else
|
|
||||||
preWait = DateTime.Now.AddMilliseconds(_FileConnectorConfiguration.FileHandleWaitTime.Value).Ticks;
|
|
||||||
for (short i = 0; i < short.MaxValue; i++)
|
|
||||||
{
|
|
||||||
if (DateTime.Now.Ticks > preWait)
|
|
||||||
break;
|
|
||||||
Thread.Sleep(500);
|
|
||||||
}
|
|
||||||
for (int i = 0; i < int.MaxValue; i++)
|
|
||||||
{
|
|
||||||
if (File.Exists(errFile))
|
|
||||||
throw new Exception(File.ReadAllText(errFile));
|
|
||||||
if (!File.Exists(checkFile))
|
|
||||||
break;
|
|
||||||
if (new TimeSpan(DateTime.Now.Ticks - dateTime.Ticks).TotalSeconds > _BreakAfterSeconds)
|
|
||||||
throw new Exception($"Not all files were consumed after {_BreakAfterSeconds} second(s)!");
|
|
||||||
Thread.Sleep(500);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (postCollection.Count != 0)
|
|
||||||
{
|
|
||||||
Thread.Sleep(500);
|
|
||||||
StringBuilder stringBuilder = new();
|
|
||||||
foreach ((string checkFile, string errFile) in postCollection)
|
|
||||||
{
|
|
||||||
if (File.Exists(errFile))
|
|
||||||
_ = stringBuilder.AppendLine(File.ReadAllText(errFile));
|
|
||||||
if (File.Exists(checkFile))
|
|
||||||
_ = stringBuilder.AppendLine($"<{checkFile}> was not consumed by the end!");
|
|
||||||
}
|
|
||||||
if (stringBuilder.Length > 0)
|
|
||||||
throw new Exception(stringBuilder.ToString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void CreatePointerFile(int numberLength, string parentDirectory, List<string> matchingFiles)
|
|
||||||
{
|
|
||||||
#nullable enable
|
|
||||||
string checkFile;
|
|
||||||
string writeFile;
|
|
||||||
string? directoryName;
|
|
||||||
int parentDirectoryLength = parentDirectory.Length;
|
|
||||||
foreach (string matchingFile in matchingFiles)
|
|
||||||
{
|
|
||||||
directoryName = Path.GetDirectoryName(matchingFile);
|
|
||||||
if (directoryName is null)
|
|
||||||
continue;
|
|
||||||
checkFile = $"{matchingFile[0]}{directoryName.Substring(parentDirectoryLength + numberLength + 1)}";
|
|
||||||
writeFile = Path.Combine(parentDirectory, $"{directoryName.Substring(parentDirectory.Length + 1, numberLength)}.txt");
|
|
||||||
if (File.Exists(writeFile))
|
|
||||||
continue;
|
|
||||||
File.AppendAllLines(writeFile, new string[] { parentDirectory, matchingFile, directoryName, checkFile });
|
|
||||||
}
|
|
||||||
#nullable disable
|
|
||||||
}
|
|
||||||
|
|
||||||
private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
|
||||||
{
|
|
||||||
Tuple<string, Test[], JsonElement[], List<FileInfo>> results = new(string.Empty, null, null, new List<FileInfo>());
|
|
||||||
Tuple<string, string[], string[]> pdsf = ProcessDataStandardFormat.GetLogisticsColumnsAndBody(reportFullPath);
|
|
||||||
_Logistics = new Logistics(reportFullPath, pdsf.Item1);
|
|
||||||
SetFileParameterLotIDToLogisticsMID();
|
|
||||||
int numberLength = 2;
|
|
||||||
long ticks = dateTime.Ticks;
|
|
||||||
string parentParentDirectory = GetParentParent(reportFullPath);
|
|
||||||
List<string> searchDirectories = GetSearchDirectories(numberLength, parentParentDirectory);
|
|
||||||
List<string> matchingFiles = GetMatchingFiles(ticks, reportFullPath, searchDirectories);
|
|
||||||
if (matchingFiles.Count != searchDirectories.Count)
|
|
||||||
throw new Exception($"Didn't find all files after {_BreakAfterSeconds} second(s)!");
|
|
||||||
try
|
|
||||||
{ CreatePointerFile(numberLength, parentParentDirectory, matchingFiles); }
|
|
||||||
catch (Exception) { }
|
|
||||||
List<(string matchingFile, string checkFile)> collection = GetCollection(numberLength, parentParentDirectory, matchingFiles);
|
|
||||||
MoveCollection(dateTime, collection);
|
|
||||||
return results;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -9,7 +9,6 @@ using System.Collections.Generic;
|
|||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
|
|
||||||
namespace Adaptation.FileHandlers.OpenInsight;
|
namespace Adaptation.FileHandlers.OpenInsight;
|
||||||
@ -17,12 +16,10 @@ namespace Adaptation.FileHandlers.OpenInsight;
|
|||||||
public class FileRead : Shared.FileRead, IFileRead
|
public class FileRead : Shared.FileRead, IFileRead
|
||||||
{
|
{
|
||||||
|
|
||||||
private string _LastLines;
|
|
||||||
private readonly string _IqsConnectionString;
|
private readonly string _IqsConnectionString;
|
||||||
private readonly string _OpenInsightFilePattern;
|
|
||||||
private readonly string _OpenInsightApiECDirectory;
|
private readonly string _OpenInsightApiECDirectory;
|
||||||
|
|
||||||
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
||||||
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
||||||
{
|
{
|
||||||
_MinFileLength = 10;
|
_MinFileLength = 10;
|
||||||
@ -34,10 +31,8 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
throw new Exception(cellInstanceConnectionName);
|
throw new Exception(cellInstanceConnectionName);
|
||||||
if (!_IsDuplicator)
|
if (!_IsDuplicator)
|
||||||
throw new Exception(cellInstanceConnectionName);
|
throw new Exception(cellInstanceConnectionName);
|
||||||
_LastLines = string.Empty;
|
|
||||||
_IqsConnectionString = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "IQS.ConnectionString");
|
_IqsConnectionString = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "IQS.ConnectionString");
|
||||||
_OpenInsightApiECDirectory = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "API.EC.Directory");
|
_OpenInsightApiECDirectory = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "API.EC.Directory");
|
||||||
_OpenInsightFilePattern = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "OpenInsight.FilePattern");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void IFileRead.Move(Tuple<string, Test[], JsonElement[], List<FileInfo>> extractResults, Exception exception)
|
void IFileRead.Move(Tuple<string, Test[], JsonElement[], List<FileInfo>> extractResults, Exception exception)
|
||||||
@ -115,120 +110,61 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static Tuple<string, string> GetLines(Logistics logistics, List<txt.Description> descriptions)
|
private void SaveOpenInsightFile(string reportFullPath, DateTime dateTime, List<txt.Description> descriptions, Test[] tests)
|
||||||
{
|
|
||||||
StringBuilder result = new();
|
|
||||||
char del = '\t';
|
|
||||||
txt.Description x = descriptions[0];
|
|
||||||
_ = result.Append(x.DcnLpdMin).Append(del). // 001 -
|
|
||||||
Append(x.DcnLpdMax).Append(del). // 002 -
|
|
||||||
Append(x.DcnLpdMean).Append(del). // 003 - DCN LPD
|
|
||||||
Append(x.DcnAreaCountMin).Append(del). // 004 -
|
|
||||||
Append(x.DcnAreaCountMax).Append(del). // 005 -
|
|
||||||
Append(x.DcnAreaCountMean).Append(del).// 006 - DCN Area
|
|
||||||
Append(x.DcnAreaMin).Append(del). // 007 -
|
|
||||||
Append(x.DcnAreaMax).Append(del). // 008 -
|
|
||||||
Append(x.Date).Append(del). // 009 -
|
|
||||||
Append(x.DcnHazeAvgMean).Append(del). // 010 - Haze Average
|
|
||||||
Append(string.Empty).Append(del). // 011 -
|
|
||||||
Append(string.Empty).Append(del). // 012 -
|
|
||||||
Append(string.Empty).Append(del). // 013 -
|
|
||||||
Append(string.Empty).Append(del). // 014 -
|
|
||||||
Append(string.Empty).Append(del). // 015 -
|
|
||||||
Append(string.Empty).Append(del). // 016 -
|
|
||||||
Append(string.Empty).Append(del). // 017 -
|
|
||||||
Append(string.Empty).Append(del). // 018 -
|
|
||||||
Append(string.Empty).Append(del). // 019 -
|
|
||||||
Append(string.Empty).Append(del). // 020 -
|
|
||||||
Append(string.Empty).Append(del). // 021 -
|
|
||||||
Append(string.Empty).Append(del). // 022 -
|
|
||||||
Append(string.Empty).Append(del). // 023 -
|
|
||||||
Append(string.Empty).Append(del). // 024 -
|
|
||||||
Append(string.Empty).Append(del). // 025 -
|
|
||||||
Append(string.Empty).Append(del). // 026 -
|
|
||||||
Append(string.Empty).Append(del). // 027 -
|
|
||||||
Append(x.RDS).Append(del). // 028 - Lot
|
|
||||||
Append(x.Reactor).Append(del). // 029 - Process
|
|
||||||
Append(x.Recipe).Append(del). // 030 - Part
|
|
||||||
Append(x.DcnScrMean).Append(del). // 031 - Scratch Count
|
|
||||||
Append(string.Empty).Append(del). // 032 -
|
|
||||||
Append(string.Empty).Append(del). // 033 -
|
|
||||||
Append(string.Empty).Append(del). // 034 -
|
|
||||||
Append(x.DcnMicroScrMean).Append(del). // 035 - Scratch Length
|
|
||||||
Append(string.Empty).Append(del). // 036 -
|
|
||||||
Append(string.Empty).Append(del). // 037 -
|
|
||||||
Append(string.Empty).Append(del). // 038 -
|
|
||||||
Append(x.DcnAllMean).Append(del). // 039 - Average Sum of Defects
|
|
||||||
Append(x.DcnAllMax).Append(del). // 040 - Max Sum of defects
|
|
||||||
Append(x.DcnAllMin).Append(del). // 041 - Min Sum of Defects
|
|
||||||
Append(string.Empty).Append(del). // 042 -
|
|
||||||
Append(logistics.MesEntity).Append(del). // 043 -
|
|
||||||
Append(x.DcnAreaMean).Append(del). // 044 - DCN MM2
|
|
||||||
AppendLine();
|
|
||||||
return new Tuple<string, string>(result.ToString(), x.Date);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void SaveOpenInsightFile(string reportFullPath, DateTime dateTime, string logistics, List<txt.Description> descriptions, Test[] tests)
|
|
||||||
{
|
{
|
||||||
|
string duplicateFile;
|
||||||
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);
|
string duplicateDirectory = Path.Combine(_FileConnectorConfiguration.SourceFileLocation, _CellInstanceName);
|
||||||
if (!Directory.Exists(duplicateDirectory))
|
if (!Directory.Exists(duplicateDirectory))
|
||||||
_ = Directory.CreateDirectory(duplicateDirectory);
|
_ = Directory.CreateDirectory(duplicateDirectory);
|
||||||
string successDirectory = _FileConnectorConfiguration.AlternateTargetFolder;
|
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.Count == 0 || tests.Length == 0)
|
if (descriptions.Count == 0 || tests.Length == 0)
|
||||||
_LastLines = string.Empty;
|
duplicateFile = Path.Combine(duplicateDirectory, Path.GetFileName(reportFullPath));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Tuple<string, string> lines = GetLines(_Logistics, descriptions);
|
long? subgroupId;
|
||||||
string check = lines.Item1.Replace(lines.Item2, "$Date$");
|
string fileName = Path.GetFileName(reportFullPath);
|
||||||
bool save = string.IsNullOrEmpty(_LastLines) || check != _LastLines;
|
long breakAfter = dateTime.AddSeconds(_BreakAfterSeconds).Ticks;
|
||||||
if (save && !string.IsNullOrEmpty(check))
|
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<WS.Results> wsResults))
|
||||||
{
|
{
|
||||||
long? subGroupId;
|
if (wsResults is null || wsResults.Count != 1)
|
||||||
_LastLines = check;
|
throw new NullReferenceException($"{nameof(wsResults)} {wsResults?.Count} != 1 {_Logistics.Sequence}!");
|
||||||
long breakAfter = dateTime.AddSeconds(_BreakAfterSeconds).Ticks;
|
lock (_StaticRuns)
|
||||||
long preWait = _FileConnectorConfiguration?.FileHandleWaitTime is null ? dateTime.AddMilliseconds(1234).Ticks : dateTime.AddMilliseconds(_FileConnectorConfiguration.FileHandleWaitTime.Value).Ticks;
|
wsResults[0] = WS.Results.Get(wsResults[0], subgroupId);
|
||||||
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.Item1));
|
|
||||||
else
|
|
||||||
collection.Add(new(new ScopeInfo(tests[0], $"{subGroupId.Value} {_OpenInsightFilePattern}"), lines.Item1));
|
|
||||||
string weekOfYear = _Calendar.GetWeekOfYear(_Logistics.DateTimeFromSequence, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00");
|
|
||||||
FromIQS.Save(_OpenInsightApiECDirectory, _Logistics, reportFullPath, logistics, descriptions.First(), lines.Item1, subGroupId, weekOfYear);
|
|
||||||
}
|
}
|
||||||
if (!Directory.Exists(duplicateDirectory))
|
if (!fileName.StartsWith("Viewer"))
|
||||||
_ = Directory.CreateDirectory(duplicateDirectory);
|
duplicateFile = Path.Combine(duplicateDirectory, $"{subgroupId} {fileName}".TrimStart());
|
||||||
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
else
|
||||||
WaitForFileConsumption(dateTime, descriptions, isDummyRun, successDirectory, duplicateDirectory, collection, duplicateFile);
|
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, 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<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
||||||
{
|
{
|
||||||
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
||||||
Tuple<string, string[], string[]> pdsf = ProcessDataStandardFormat.GetLogisticsColumnsAndBody(reportFullPath);
|
string[] lines = File.ReadAllLines(reportFullPath);
|
||||||
_Logistics = new Logistics(reportFullPath, pdsf.Item1);
|
ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath, lines);
|
||||||
|
_Logistics = new Logistics(reportFullPath, processDataStandardFormat);
|
||||||
SetFileParameterLotIDToLogisticsMID();
|
SetFileParameterLotIDToLogisticsMID();
|
||||||
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(pdsf);
|
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(reportFullPath, lines, processDataStandardFormat);
|
||||||
List<txt.Description> descriptions = txt.ProcessData.GetDescriptions(jsonElements);
|
List<txt.Description> descriptions = txt.ProcessData.GetDescriptions(jsonElements);
|
||||||
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
||||||
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
||||||
SaveOpenInsightFile(reportFullPath, dateTime, pdsf.Item1, descriptions, tests);
|
SaveOpenInsightFile(reportFullPath, dateTime, descriptions, tests);
|
||||||
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(pdsf.Item1, tests, jsonElements, new List<FileInfo>());
|
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(string.Join(Environment.NewLine, processDataStandardFormat.Logistics), tests, jsonElements, new List<FileInfo>());
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -325,77 +325,18 @@ public class FromIQS
|
|||||||
return new(result, count, commandText);
|
return new(result, count, commandText);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string GetJson(Logistics logistics, string logisticLines, txt.Description description)
|
internal static void Save(string openInsightApiECDirectory, Logistics logistics, string reportFullPath, txt.Description description, long? subGroupId, string weekOfYear)
|
||||||
{
|
{
|
||||||
string result;
|
|
||||||
StringBuilder stringBuilder = new();
|
|
||||||
var @object = new
|
|
||||||
{
|
|
||||||
description.MesEntity,
|
|
||||||
description.Employee,
|
|
||||||
// description.Layer,
|
|
||||||
description.PSN,
|
|
||||||
description.RDS,
|
|
||||||
description.Reactor,
|
|
||||||
description.Recipe,
|
|
||||||
// description.Zone,
|
|
||||||
logistics.DateTimeFromSequence.Ticks
|
|
||||||
};
|
|
||||||
string[] pair;
|
|
||||||
string safeValue;
|
|
||||||
string[] segments;
|
|
||||||
string serializerValue;
|
|
||||||
foreach (string line in logisticLines.Split(new string[] { Environment.NewLine }, StringSplitOptions.None))
|
|
||||||
{
|
|
||||||
segments = line.Split('\t');
|
|
||||||
if (segments.Length < 2)
|
|
||||||
continue;
|
|
||||||
segments = segments[1].Split(';');
|
|
||||||
_ = stringBuilder.Append('{');
|
|
||||||
foreach (string segment in segments)
|
|
||||||
{
|
|
||||||
pair = segment.Split('=');
|
|
||||||
if (pair.Length != 2 || pair[0].Length < 3)
|
|
||||||
continue;
|
|
||||||
serializerValue = JsonSerializer.Serialize(pair[1]);
|
|
||||||
safeValue = serializerValue.Substring(1, serializerValue.Length - 2);
|
|
||||||
_ = stringBuilder.Append('"').Append(pair[0].Substring(2)).Append('"').Append(':').Append('"').Append(safeValue).Append('"').Append(',');
|
|
||||||
}
|
|
||||||
if (stringBuilder.Length > 0)
|
|
||||||
_ = stringBuilder.Remove(stringBuilder.Length - 1, 1);
|
|
||||||
_ = stringBuilder.Append('}').Append(',');
|
|
||||||
}
|
|
||||||
if (stringBuilder.Length > 0)
|
|
||||||
_ = stringBuilder.Remove(stringBuilder.Length - 1, 1);
|
|
||||||
_ = stringBuilder.Append(']').Append('}');
|
|
||||||
_ = stringBuilder.Insert(0, ",\"Logistics\":[");
|
|
||||||
string json = JsonSerializer.Serialize(@object);
|
|
||||||
_ = stringBuilder.Insert(0, json.Substring(0, json.Length - 1));
|
|
||||||
JsonElement? jsonElement = JsonSerializer.Deserialize<JsonElement>(stringBuilder.ToString());
|
|
||||||
result = jsonElement is null ? "{}" : JsonSerializer.Serialize(jsonElement, new JsonSerializerOptions { WriteIndented = true });
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
internal static void Save(string openInsightApiECDirectory, Logistics logistics, string reportFullPath, string logisticLines, txt.Description description, string lines, long? subGroupId, string weekOfYear)
|
|
||||||
{
|
|
||||||
string checkFile;
|
|
||||||
string fileName = Path.GetFileName(reportFullPath);
|
string fileName = Path.GetFileName(reportFullPath);
|
||||||
string json = GetJson(logistics, logisticLines, description);
|
|
||||||
string? ecPathRoot = Path.GetPathRoot(openInsightApiECDirectory);
|
string? ecPathRoot = Path.GetPathRoot(openInsightApiECDirectory);
|
||||||
bool ecExists = ecPathRoot is not null && Directory.Exists(ecPathRoot);
|
bool ecExists = ecPathRoot is not null && Directory.Exists(ecPathRoot);
|
||||||
string weekYear = $"{logistics.DateTimeFromSequence:yyyy}_Week_{weekOfYear}";
|
string weekYear = $"{logistics.DateTimeFromSequence:yyyy}_Week_{weekOfYear}";
|
||||||
string ecDirectory = Path.Combine(openInsightApiECDirectory, weekYear, $"-{description.PSN}", $"-{description.Reactor}", $"-{description.RDS}", $"-{subGroupId}");
|
string ecDirectory = Path.Combine(openInsightApiECDirectory, weekYear, $"-{description.PSN}", $"-{description.Reactor}", $"-{description.RDS}", $"-{subGroupId}");
|
||||||
if (ecExists && !Directory.Exists(ecDirectory))
|
if (ecExists && !Directory.Exists(ecDirectory))
|
||||||
_ = Directory.CreateDirectory(ecDirectory);
|
_ = Directory.CreateDirectory(ecDirectory);
|
||||||
checkFile = Path.Combine(ecDirectory, fileName);
|
string checkFile = Path.Combine(ecDirectory, fileName);
|
||||||
if (ecExists && !File.Exists(checkFile))
|
if (ecExists && !File.Exists(checkFile))
|
||||||
File.Copy(reportFullPath, 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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string GetCommandText(string[] iqsCopyValues)
|
private static string GetCommandText(string[] iqsCopyValues)
|
||||||
|
|||||||
@ -19,7 +19,7 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
private readonly string _OpenInsightMetrologyViewerAPI;
|
private readonly string _OpenInsightMetrologyViewerAPI;
|
||||||
private readonly string _OpenInsightMetrologyViewerFileShare;
|
private readonly string _OpenInsightMetrologyViewerFileShare;
|
||||||
|
|
||||||
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
||||||
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
||||||
{
|
{
|
||||||
_MinFileLength = 10;
|
_MinFileLength = 10;
|
||||||
@ -110,10 +110,10 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SendData(string reportFullPath, DateTime dateTime, List<txt.Description> descriptions)
|
private void SendData(string reportFullPath, DateTime dateTime, JsonElement[] jsonElements, List<txt.Description> descriptions)
|
||||||
{
|
{
|
||||||
string checkDirectory;
|
string checkDirectory;
|
||||||
WSRequest wsRequest = new(this, _Logistics, descriptions);
|
WSRequest wsRequest = new(this, _Logistics, jsonElements, descriptions);
|
||||||
int weekOfYear = _Calendar.GetWeekOfYear(dateTime, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
|
int weekOfYear = _Calendar.GetWeekOfYear(dateTime, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
|
||||||
string directory = Path.Combine(_OpenInsightMetrologyViewerFileShare, dateTime.Year.ToString(), $"WW{weekOfYear:00}");
|
string directory = Path.Combine(_OpenInsightMetrologyViewerFileShare, dateTime.Year.ToString(), $"WW{weekOfYear:00}");
|
||||||
checkDirectory = Path.Combine(directory, _Logistics.Sequence.ToString());
|
checkDirectory = Path.Combine(directory, _Logistics.Sequence.ToString());
|
||||||
@ -121,16 +121,16 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
_ = Directory.CreateDirectory(checkDirectory);
|
_ = Directory.CreateDirectory(checkDirectory);
|
||||||
File.Copy(reportFullPath, Path.Combine(checkDirectory, Path.GetFileName(reportFullPath)), overwrite: true);
|
File.Copy(reportFullPath, Path.Combine(checkDirectory, Path.GetFileName(reportFullPath)), overwrite: true);
|
||||||
(string jsonResults, WS.Results wsResults) = WS.SendData(_OpenInsightMetrologyViewerAPI, _Logistics.Sequence, directory, wsRequest);
|
(string jsonResults, WS.Results wsResults) = WS.SendData(_OpenInsightMetrologyViewerAPI, _Logistics.Sequence, directory, wsRequest);
|
||||||
if (!wsResults.Success)
|
if (wsResults.Success is null || !wsResults.Success.Value)
|
||||||
throw new Exception(wsResults.ToString());
|
throw new Exception(jsonResults);
|
||||||
_Log.Debug(wsResults.HeaderID);
|
_Log.Debug(wsResults.HeaderId);
|
||||||
lock (_StaticRuns)
|
lock (_StaticRuns)
|
||||||
{
|
{
|
||||||
if (!_StaticRuns.ContainsKey(_Logistics.Sequence))
|
if (!_StaticRuns.ContainsKey(_Logistics.Sequence))
|
||||||
_StaticRuns.Add(_Logistics.Sequence, new());
|
_StaticRuns.Add(_Logistics.Sequence, new());
|
||||||
_StaticRuns[_Logistics.Sequence].Add(jsonResults);
|
_StaticRuns[_Logistics.Sequence].Add(wsResults);
|
||||||
}
|
}
|
||||||
checkDirectory = Path.Combine(directory, $"-{wsResults.HeaderID}");
|
checkDirectory = Path.Combine(directory, $"-{wsResults.HeaderId}");
|
||||||
if (!Directory.Exists(checkDirectory))
|
if (!Directory.Exists(checkDirectory))
|
||||||
_ = Directory.CreateDirectory(checkDirectory);
|
_ = Directory.CreateDirectory(checkDirectory);
|
||||||
File.Copy(reportFullPath, Path.Combine(checkDirectory, Path.GetFileName(reportFullPath)), overwrite: true);
|
File.Copy(reportFullPath, Path.Combine(checkDirectory, Path.GetFileName(reportFullPath)), overwrite: true);
|
||||||
@ -139,15 +139,16 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
||||||
{
|
{
|
||||||
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
||||||
Tuple<string, string[], string[]> pdsf = ProcessDataStandardFormat.GetLogisticsColumnsAndBody(reportFullPath);
|
string[] lines = File.ReadAllLines(reportFullPath);
|
||||||
_Logistics = new Logistics(reportFullPath, pdsf.Item1);
|
ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath, lines);
|
||||||
|
_Logistics = new Logistics(reportFullPath, processDataStandardFormat);
|
||||||
SetFileParameterLotIDToLogisticsMID();
|
SetFileParameterLotIDToLogisticsMID();
|
||||||
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(pdsf);
|
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(reportFullPath, lines, processDataStandardFormat);
|
||||||
List<txt.Description> descriptions = txt.ProcessData.GetDescriptions(jsonElements);
|
List<txt.Description> descriptions = txt.ProcessData.GetDescriptions(jsonElements);
|
||||||
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
||||||
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
||||||
SendData(reportFullPath, dateTime, descriptions);
|
SendData(reportFullPath, dateTime, jsonElements, descriptions);
|
||||||
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(pdsf.Item1, tests, jsonElements, new List<FileInfo>());
|
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(string.Join(Environment.NewLine, processDataStandardFormat.Logistics), tests, jsonElements, new List<FileInfo>());
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -17,8 +17,17 @@ public class WSRequest
|
|||||||
//
|
//
|
||||||
|
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
public string AttemptCounter { get; set; }
|
||||||
public string CellName { get; set; }
|
public string CellName { get; set; }
|
||||||
public string Date { get; set; }
|
public string Date { get; set; }
|
||||||
|
public string DcnAllMax { get; set; }
|
||||||
|
public string DcnAllMean { get; set; }
|
||||||
|
public string DcnAllMin { get; set; }
|
||||||
|
public string DcnAllStDev { get; set; }
|
||||||
|
public string DcnAreaCntMax { get; set; }
|
||||||
|
public string DcnAreaCntMean { get; set; }
|
||||||
|
public string DcnAreaCntMin { get; set; }
|
||||||
|
public string IndexOf { get; set; }
|
||||||
public string LotID { get; set; }
|
public string LotID { get; set; }
|
||||||
public string Operator { get; set; }
|
public string Operator { get; set; }
|
||||||
public string PSN { get; set; }
|
public string PSN { get; set; }
|
||||||
@ -27,13 +36,6 @@ public class WSRequest
|
|||||||
public string Recipe { get; set; }
|
public string Recipe { get; set; }
|
||||||
public string Session { get; set; }
|
public string Session { get; set; }
|
||||||
public string UniqueID { get; set; }
|
public string UniqueID { get; set; }
|
||||||
public string DcnAllMax { get; set; }
|
|
||||||
public string DcnAllMean { get; set; }
|
|
||||||
public string DcnAllMin { get; set; }
|
|
||||||
public string DcnAllStDev { get; set; }
|
|
||||||
public string DcnAreaCntMax { get; set; }
|
|
||||||
public string DcnAreaCntMean { get; set; }
|
|
||||||
public string DcnAreaCntMin { get; set; }
|
|
||||||
public string DcnAreaCntStDev { get; set; }
|
public string DcnAreaCntStDev { get; set; }
|
||||||
public string DcnAreaMax { get; set; }
|
public string DcnAreaMax { get; set; }
|
||||||
public string DcnAreaMean { get; set; }
|
public string DcnAreaMean { get; set; }
|
||||||
@ -272,7 +274,7 @@ public class WSRequest
|
|||||||
[Obsolete("For json")] public WSRequest() { }
|
[Obsolete("For json")] public WSRequest() { }
|
||||||
|
|
||||||
#pragma warning disable IDE0060
|
#pragma warning disable IDE0060
|
||||||
internal WSRequest(IFileRead fileRead, Logistics logistics, List<txt.Description> descriptions, string processDataStandardFormat = null)
|
internal WSRequest(IFileRead fileRead, Logistics logistics, JsonElement[] jsonElements, List<txt.Description> descriptions, string processDataStandardFormat = null)
|
||||||
#pragma warning restore IDE0060
|
#pragma warning restore IDE0060
|
||||||
{
|
{
|
||||||
Id = -1;
|
Id = -1;
|
||||||
@ -284,252 +286,254 @@ public class WSRequest
|
|||||||
UniqueID = x.UniqueId;
|
UniqueID = x.UniqueId;
|
||||||
Date = x.Date;
|
Date = x.Date;
|
||||||
Reactor = x.Reactor;
|
Reactor = x.Reactor;
|
||||||
LotID = x.Lot;
|
LotID = x.Lot; // different name
|
||||||
Session = x.Session;
|
Session = x.Session;
|
||||||
|
AttemptCounter = x.AttemptCounter;
|
||||||
|
IndexOf = x.IndexOf;
|
||||||
DcnAllMin = x.DcnAllMin;
|
DcnAllMin = x.DcnAllMin;
|
||||||
DcnAllMax = x.DcnAllMax;
|
DcnAllMax = x.DcnAllMax;
|
||||||
DcnAllMean = x.DcnAllMean;
|
DcnAllMean = x.DcnAllMean;
|
||||||
DcnAllStDev = x.DcnAllStdDev;
|
DcnAllStDev = x.DcnAllStdDev; // different name
|
||||||
DcnLpdMin = x.DcnLpdMin;
|
DcnLpdMin = x.DcnLpdMin;
|
||||||
DcnLpdMax = x.DcnLpdMax;
|
DcnLpdMax = x.DcnLpdMax;
|
||||||
DcnLpdMean = x.DcnLpdMean;
|
DcnLpdMean = x.DcnLpdMean;
|
||||||
DcnLpdStDev = x.DcnLpdStdDev;
|
DcnLpdStDev = x.DcnLpdStdDev; // different name
|
||||||
DcnLpdNMin = x.DcnLpdNMin;
|
DcnLpdNMin = x.DcnLpdNMin;
|
||||||
DcnLpdNMax = x.DcnLpdNMax;
|
DcnLpdNMax = x.DcnLpdNMax;
|
||||||
DcnLpdNMean = x.DcnLpdNMean;
|
DcnLpdNMean = x.DcnLpdNMean;
|
||||||
DcnLpdNStDev = x.DcnLpdNStdDev;
|
DcnLpdNStDev = x.DcnLpdNStdDev; // different name
|
||||||
DcnLpdESMin = x.DcnLpdESMin;
|
DcnLpdESMin = x.DcnLpdESMin;
|
||||||
DcnLpdESMax = x.DcnLpdESMax;
|
DcnLpdESMax = x.DcnLpdESMax;
|
||||||
DcnLpdESMean = x.DcnLpdESMean;
|
DcnLpdESMean = x.DcnLpdESMean;
|
||||||
DcnLpdESStDev = x.DcnLpdESStdDev;
|
DcnLpdESStDev = x.DcnLpdESStdDev; // different name
|
||||||
DcnMicroScrMin = x.DcnMicroScrMin;
|
DcnMicroScrMin = x.DcnMicroScrMin;
|
||||||
DcnMicroScrMax = x.DcnMicroScrMax;
|
DcnMicroScrMax = x.DcnMicroScrMax;
|
||||||
DcnMicroScrMean = x.DcnMicroScrMean;
|
DcnMicroScrMean = x.DcnMicroScrMean;
|
||||||
DcnMicroScrStDev = x.DcnMicroScrStdDev;
|
DcnMicroScrStDev = x.DcnMicroScrStdDev; // different name
|
||||||
DcnScrMin = x.DcnScrMin;
|
DcnScrMin = x.DcnScrMin;
|
||||||
DcnScrMax = x.DcnScrMax;
|
DcnScrMax = x.DcnScrMax;
|
||||||
DcnScrMean = x.DcnScrMean;
|
DcnScrMean = x.DcnScrMean;
|
||||||
DcnScrStDev = x.DcnScrStdDev;
|
DcnScrStDev = x.DcnScrStdDev; // different name
|
||||||
DcnSlipMin = x.DcnSlipMin;
|
DcnSlipMin = x.DcnSlipMin;
|
||||||
DcnSlipMax = x.DcnSlipMax;
|
DcnSlipMax = x.DcnSlipMax;
|
||||||
DcnSlipMean = x.DcnSlipMean;
|
DcnSlipMean = x.DcnSlipMean;
|
||||||
DcnSlipStDev = x.DcnSlipStdDev;
|
DcnSlipStDev = x.DcnSlipStdDev; // different name
|
||||||
DcnAreaCntMin = x.DcnAreaCountMin;
|
DcnAreaCntMin = x.DcnAreaCountMin; // different name
|
||||||
DcnAreaCntMax = x.DcnAreaCountMax;
|
DcnAreaCntMax = x.DcnAreaCountMax; // different name
|
||||||
DcnAreaCntMean = x.DcnAreaCountMean;
|
DcnAreaCntMean = x.DcnAreaCountMean; // different name
|
||||||
DcnAreaCntStDev = x.DcnAreaCountStdDev;
|
DcnAreaCntStDev = x.DcnAreaCountStdDev; // different name
|
||||||
DcnAreaMin = x.DcnAreaMin;
|
DcnAreaMin = x.DcnAreaMin;
|
||||||
DcnAreaMax = x.DcnAreaMax;
|
DcnAreaMax = x.DcnAreaMax;
|
||||||
DcnAreaMean = x.DcnAreaMean;
|
DcnAreaMean = x.DcnAreaMean;
|
||||||
DcnAreaStDev = x.DcnAreaStdDev;
|
DcnAreaStDev = x.DcnAreaStdDev; // different name
|
||||||
DcnHazeAvgMin = x.DcnHazeAvgMin;
|
DcnHazeAvgMin = x.DcnHazeAvgMin;
|
||||||
DcnHazeAvgMax = x.DcnHazeAvgMax;
|
DcnHazeAvgMax = x.DcnHazeAvgMax;
|
||||||
DcnHazeAvgMean = x.DcnHazeAvgMean;
|
DcnHazeAvgMean = x.DcnHazeAvgMean;
|
||||||
DcnHazeAvgStDev = x.DcnHazeAvgStdDev;
|
DcnHazeAvgStDev = x.DcnHazeAvgStdDev; // different name
|
||||||
DcnHazeMedMin = x.DcnHazeMedianMin;
|
DcnHazeMedMin = x.DcnHazeMedianMin; // different name
|
||||||
DcnHazeMedMax = x.DcnHazeMedianMax;
|
DcnHazeMedMax = x.DcnHazeMedianMax; // different name
|
||||||
DcnHazeMedMean = x.DcnHazeMedianMean;
|
DcnHazeMedMean = x.DcnHazeMedianMean; // different name
|
||||||
DcnHazeMedStDev = x.DcnHazeMedianStdDev;
|
DcnHazeMedStDev = x.DcnHazeMedianStdDev; // different name
|
||||||
DcnHazeStDevMin = x.DcnHazeStdDevMin;
|
DcnHazeStDevMin = x.DcnHazeStdDevMin; // different name
|
||||||
DcnHazeStDevMax = x.DcnHazeStdDevMax;
|
DcnHazeStDevMax = x.DcnHazeStdDevMax; // different name
|
||||||
DcnHazeStDevMean = x.DcnHazeStdDevMean;
|
DcnHazeStDevMean = x.DcnHazeStdDevMean; // different name
|
||||||
DcnHazeStDevStDev = x.DcnHazeStdDevStdDev;
|
DcnHazeStDevStDev = x.DcnHazeStdDevStdDev; // different name
|
||||||
DcnBin1Min = x.DcnBin1Min;
|
DcnBin1Min = x.DcnBin1Min;
|
||||||
DcnBin1Max = x.DcnBin1Max;
|
DcnBin1Max = x.DcnBin1Max;
|
||||||
DcnBin1Mean = x.DcnBin1Mean;
|
DcnBin1Mean = x.DcnBin1Mean;
|
||||||
DcnBin1StDev = x.DcnBin1StdDev;
|
DcnBin1StDev = x.DcnBin1StdDev; // different name
|
||||||
DcnBin2Min = x.DcnBin2Min;
|
DcnBin2Min = x.DcnBin2Min;
|
||||||
DcnBin2Max = x.DcnBin2Max;
|
DcnBin2Max = x.DcnBin2Max;
|
||||||
DcnBin2Mean = x.DcnBin2Mean;
|
DcnBin2Mean = x.DcnBin2Mean;
|
||||||
DcnBin2StDev = x.DcnBin2StdDev;
|
DcnBin2StDev = x.DcnBin2StdDev; // different name
|
||||||
DcnBin3Min = x.DcnBin3Min;
|
DcnBin3Min = x.DcnBin3Min;
|
||||||
DcnBin3Max = x.DcnBin3Max;
|
DcnBin3Max = x.DcnBin3Max;
|
||||||
DcnBin3Mean = x.DcnBin3Mean;
|
DcnBin3Mean = x.DcnBin3Mean;
|
||||||
DcnBin3StDev = x.DcnBin3StdDev;
|
DcnBin3StDev = x.DcnBin3StdDev; // different name
|
||||||
DcnBin4Min = x.DcnBin4Min;
|
DcnBin4Min = x.DcnBin4Min;
|
||||||
DcnBin4Max = x.DcnBin4Max;
|
DcnBin4Max = x.DcnBin4Max;
|
||||||
DcnBin4Mean = x.DcnBin4Mean;
|
DcnBin4Mean = x.DcnBin4Mean;
|
||||||
DcnBin4StDev = x.DcnBin4StdDev;
|
DcnBin4StDev = x.DcnBin4StdDev; // different name
|
||||||
DcnBin5Min = x.DcnBin5Min;
|
DcnBin5Min = x.DcnBin5Min;
|
||||||
DcnBin5Max = x.DcnBin5Max;
|
DcnBin5Max = x.DcnBin5Max;
|
||||||
DcnBin5Mean = x.DcnBin5Mean;
|
DcnBin5Mean = x.DcnBin5Mean;
|
||||||
DcnBin5StDev = x.DcnBin5StdDev;
|
DcnBin5StDev = x.DcnBin5StdDev; // different name
|
||||||
DcnBin6Min = x.DcnBin6Min;
|
DcnBin6Min = x.DcnBin6Min;
|
||||||
DcnBin6Max = x.DcnBin6Max;
|
DcnBin6Max = x.DcnBin6Max;
|
||||||
DcnBin6Mean = x.DcnBin6Mean;
|
DcnBin6Mean = x.DcnBin6Mean;
|
||||||
DcnBin6StDev = x.DcnBin6StdDev;
|
DcnBin6StDev = x.DcnBin6StdDev; // different name
|
||||||
DcnBin7Min = x.DcnBin7Min;
|
DcnBin7Min = x.DcnBin7Min;
|
||||||
DcnBin7Max = x.DcnBin7Max;
|
DcnBin7Max = x.DcnBin7Max;
|
||||||
DcnBin7Mean = x.DcnBin7Mean;
|
DcnBin7Mean = x.DcnBin7Mean;
|
||||||
DcnBin7StDev = x.DcnBin7StdDev;
|
DcnBin7StDev = x.DcnBin7StdDev; // different name
|
||||||
DcnBin8Min = x.DcnBin8Min;
|
DcnBin8Min = x.DcnBin8Min;
|
||||||
DcnBin8Max = x.DcnBin8Max;
|
DcnBin8Max = x.DcnBin8Max;
|
||||||
DcnBin8Mean = x.DcnBin8Mean;
|
DcnBin8Mean = x.DcnBin8Mean;
|
||||||
DcnBin8StDev = x.DcnBin8StdDev;
|
DcnBin8StDev = x.DcnBin8StdDev; // different name
|
||||||
DwnAllMin = x.DwnAllMin;
|
DwnAllMin = x.DwnAllMin;
|
||||||
DwnAllMax = x.DwnAllMax;
|
DwnAllMax = x.DwnAllMax;
|
||||||
DwnAllMean = x.DwnAllMean;
|
DwnAllMean = x.DwnAllMean;
|
||||||
DwnAllStDev = x.DwnAllStdDev;
|
DwnAllStDev = x.DwnAllStdDev; // different name
|
||||||
DwnLpdMin = x.DwnLpdMin;
|
DwnLpdMin = x.DwnLpdMin;
|
||||||
DwnLpdMax = x.DwnLpdMax;
|
DwnLpdMax = x.DwnLpdMax;
|
||||||
DwnLpdMean = x.DwnLpdMean;
|
DwnLpdMean = x.DwnLpdMean;
|
||||||
DwnLpdStDev = x.DwnLpdStdDev;
|
DwnLpdStDev = x.DwnLpdStdDev; // different name
|
||||||
DwnLpdNMin = x.DwnLpdNMin;
|
DwnLpdNMin = x.DwnLpdNMin;
|
||||||
DwnLpdNMax = x.DwnLpdNMax;
|
DwnLpdNMax = x.DwnLpdNMax;
|
||||||
DwnLpdNMean = x.DwnLpdNMean;
|
DwnLpdNMean = x.DwnLpdNMean;
|
||||||
DwnLpdNStDev = x.DwnLpdNStdDev;
|
DwnLpdNStDev = x.DwnLpdNStdDev; // different name
|
||||||
DwnLpdESMin = x.DwnLpdESMin;
|
DwnLpdESMin = x.DwnLpdESMin;
|
||||||
DwnLpdESMax = x.DwnLpdESMax;
|
DwnLpdESMax = x.DwnLpdESMax;
|
||||||
DwnLpdESMean = x.DwnLpdESMean;
|
DwnLpdESMean = x.DwnLpdESMean;
|
||||||
DwnLpdESStDev = x.DwnLpdESStdDev;
|
DwnLpdESStDev = x.DwnLpdESStdDev; // different name
|
||||||
DwnMicroScrMin = x.DwnMicroScrMin;
|
DwnMicroScrMin = x.DwnMicroScrMin;
|
||||||
DwnMicroScrMax = x.DwnMicroScrMax;
|
DwnMicroScrMax = x.DwnMicroScrMax;
|
||||||
DwnMicroScrMean = x.DwnMicroScrMean;
|
DwnMicroScrMean = x.DwnMicroScrMean;
|
||||||
DwnMicroScrStDev = x.DwnMicroScrStdDev;
|
DwnMicroScrStDev = x.DwnMicroScrStdDev; // different name
|
||||||
DwnScrMin = x.DwnScrMin;
|
DwnScrMin = x.DwnScrMin;
|
||||||
DwnScrMax = x.DwnScrMax;
|
DwnScrMax = x.DwnScrMax;
|
||||||
DwnScrMean = x.DwnScrMean;
|
DwnScrMean = x.DwnScrMean;
|
||||||
DwnScrStDev = x.DwnScrStdDev;
|
DwnScrStDev = x.DwnScrStdDev; // different name
|
||||||
DwnSlipMin = x.DwnSlipMin;
|
DwnSlipMin = x.DwnSlipMin;
|
||||||
DwnSlipMax = x.DwnSlipMax;
|
DwnSlipMax = x.DwnSlipMax;
|
||||||
DwnSlipMean = x.DwnSlipMean;
|
DwnSlipMean = x.DwnSlipMean;
|
||||||
DwnSlipStDev = x.DwnSlipStdDev;
|
DwnSlipStDev = x.DwnSlipStdDev; // different name
|
||||||
DwnAreaCntMin = x.DwnAreaCountMin;
|
DwnAreaCntMin = x.DwnAreaCountMin; // different name
|
||||||
DwnAreaCntMax = x.DwnAreaCountMax;
|
DwnAreaCntMax = x.DwnAreaCountMax; // different name
|
||||||
DwnAreaCntMean = x.DwnAreaCountMean;
|
DwnAreaCntMean = x.DwnAreaCountMean; // different name
|
||||||
DwnAreaCntStDev = x.DwnAreaCountStdDev;
|
DwnAreaCntStDev = x.DwnAreaCountStdDev; // different name
|
||||||
DwnAreaMin = x.DwnAreaMin;
|
DwnAreaMin = x.DwnAreaMin;
|
||||||
DwnAreaMax = x.DwnAreaMax;
|
DwnAreaMax = x.DwnAreaMax;
|
||||||
DwnAreaMean = x.DwnAreaMean;
|
DwnAreaMean = x.DwnAreaMean;
|
||||||
DwnAreaStDev = x.DwnAreaStdDev;
|
DwnAreaStDev = x.DwnAreaStdDev; // different name
|
||||||
DwnHazeAvgMin = x.DwnHazeAvgMin;
|
DwnHazeAvgMin = x.DwnHazeAvgMin;
|
||||||
DwnHazeAvgMax = x.DwnHazeAvgMax;
|
DwnHazeAvgMax = x.DwnHazeAvgMax;
|
||||||
DwnHazeAvgMean = x.DwnHazeAvgMean;
|
DwnHazeAvgMean = x.DwnHazeAvgMean;
|
||||||
DwnHazeAvgStDev = x.DwnHazeAvgStdDev;
|
DwnHazeAvgStDev = x.DwnHazeAvgStdDev; // different name
|
||||||
DwnHazeMedMin = x.DwnHazeMedianMin;
|
DwnHazeMedMin = x.DwnHazeMedianMin; // different name
|
||||||
DwnHazeMedMax = x.DwnHazeMedianMax;
|
DwnHazeMedMax = x.DwnHazeMedianMax; // different name
|
||||||
DwnHazeMedMean = x.DwnHazeMedianMean;
|
DwnHazeMedMean = x.DwnHazeMedianMean; // different name
|
||||||
DwnHazeMedStDev = x.DwnHazeMedianStdDev;
|
DwnHazeMedStDev = x.DwnHazeMedianStdDev; // different name
|
||||||
DwnHazeStDevMin = x.DwnHazeStdDevMin;
|
DwnHazeStDevMin = x.DwnHazeStdDevMin; // different name
|
||||||
DwnHazeStDevMax = x.DwnHazeStdDevMax;
|
DwnHazeStDevMax = x.DwnHazeStdDevMax; // different name
|
||||||
DwnHazeStDevMean = x.DwnHazeStdDevMean;
|
DwnHazeStDevMean = x.DwnHazeStdDevMean; // different name
|
||||||
DwnHazeStDevStDev = x.DwnHazeStdDevStdDev;
|
DwnHazeStDevStDev = x.DwnHazeStdDevStdDev; // different name
|
||||||
DwnBin1Min = x.DwnBin1Min;
|
DwnBin1Min = x.DwnBin1Min;
|
||||||
DwnBin1Max = x.DwnBin1Max;
|
DwnBin1Max = x.DwnBin1Max;
|
||||||
DwnBin1Mean = x.DwnBin1Mean;
|
DwnBin1Mean = x.DwnBin1Mean;
|
||||||
DwnBin1StDev = x.DwnBin1StdDev;
|
DwnBin1StDev = x.DwnBin1StdDev; // different name
|
||||||
DwnBin2Min = x.DwnBin2Min;
|
DwnBin2Min = x.DwnBin2Min;
|
||||||
DwnBin2Max = x.DwnBin2Max;
|
DwnBin2Max = x.DwnBin2Max;
|
||||||
DwnBin2Mean = x.DwnBin2Mean;
|
DwnBin2Mean = x.DwnBin2Mean;
|
||||||
DwnBin2StDev = x.DwnBin2StdDev;
|
DwnBin2StDev = x.DwnBin2StdDev; // different name
|
||||||
DwnBin3Min = x.DwnBin3Min;
|
DwnBin3Min = x.DwnBin3Min;
|
||||||
DwnBin3Max = x.DwnBin3Max;
|
DwnBin3Max = x.DwnBin3Max;
|
||||||
DwnBin3Mean = x.DwnBin3Mean;
|
DwnBin3Mean = x.DwnBin3Mean;
|
||||||
DwnBin3StDev = x.DwnBin3StdDev;
|
DwnBin3StDev = x.DwnBin3StdDev; // different name
|
||||||
DwnBin4Min = x.DwnBin4Min;
|
DwnBin4Min = x.DwnBin4Min;
|
||||||
DwnBin4Max = x.DwnBin4Max;
|
DwnBin4Max = x.DwnBin4Max;
|
||||||
DwnBin4Mean = x.DwnBin4Mean;
|
DwnBin4Mean = x.DwnBin4Mean;
|
||||||
DwnBin4StDev = x.DwnBin4StdDev;
|
DwnBin4StDev = x.DwnBin4StdDev; // different name
|
||||||
DwnBin5Min = x.DwnBin5Min;
|
DwnBin5Min = x.DwnBin5Min;
|
||||||
DwnBin5Max = x.DwnBin5Max;
|
DwnBin5Max = x.DwnBin5Max;
|
||||||
DwnBin5Mean = x.DwnBin5Mean;
|
DwnBin5Mean = x.DwnBin5Mean;
|
||||||
DwnBin5StDev = x.DwnBin5StdDev;
|
DwnBin5StDev = x.DwnBin5StdDev; // different name
|
||||||
DwnBin6Min = x.DwnBin6Min;
|
DwnBin6Min = x.DwnBin6Min;
|
||||||
DwnBin6Max = x.DwnBin6Max;
|
DwnBin6Max = x.DwnBin6Max;
|
||||||
DwnBin6Mean = x.DwnBin6Mean;
|
DwnBin6Mean = x.DwnBin6Mean;
|
||||||
DwnBin6StDev = x.DwnBin6StdDev;
|
DwnBin6StDev = x.DwnBin6StdDev; // different name
|
||||||
DwnBin7Min = x.DwnBin7Min;
|
DwnBin7Min = x.DwnBin7Min;
|
||||||
DwnBin7Max = x.DwnBin7Max;
|
DwnBin7Max = x.DwnBin7Max;
|
||||||
DwnBin7Mean = x.DwnBin7Mean;
|
DwnBin7Mean = x.DwnBin7Mean;
|
||||||
DwnBin7StDev = x.DwnBin7StdDev;
|
DwnBin7StDev = x.DwnBin7StdDev; // different name
|
||||||
DwnBin8Min = x.DwnBin8Min;
|
DwnBin8Min = x.DwnBin8Min;
|
||||||
DwnBin8Max = x.DwnBin8Max;
|
DwnBin8Max = x.DwnBin8Max;
|
||||||
DwnBin8Mean = x.DwnBin8Mean;
|
DwnBin8Mean = x.DwnBin8Mean;
|
||||||
DwnBin8StDev = x.DwnBin8StdDev;
|
DwnBin8StDev = x.DwnBin8StdDev; // different name
|
||||||
DnnAllMin = x.DnnAllMin;
|
DnnAllMin = x.DnnAllMin;
|
||||||
DnnAllMax = x.DnnAllMax;
|
DnnAllMax = x.DnnAllMax;
|
||||||
DnnAllMean = x.DnnAllMean;
|
DnnAllMean = x.DnnAllMean;
|
||||||
DnnAllStDev = x.DnnAllStdDev;
|
DnnAllStDev = x.DnnAllStdDev; // different name
|
||||||
DnnLpdMin = x.DnnLpdMin;
|
DnnLpdMin = x.DnnLpdMin;
|
||||||
DnnLpdMax = x.DnnLpdMax;
|
DnnLpdMax = x.DnnLpdMax;
|
||||||
DnnLpdMean = x.DnnLpdMean;
|
DnnLpdMean = x.DnnLpdMean;
|
||||||
DnnLpdStDev = x.DnnLpdStdDev;
|
DnnLpdStDev = x.DnnLpdStdDev; // different name
|
||||||
DnnLpdNMin = x.DnnLpdNMin;
|
DnnLpdNMin = x.DnnLpdNMin;
|
||||||
DnnLpdNMax = x.DnnLpdNMax;
|
DnnLpdNMax = x.DnnLpdNMax;
|
||||||
DnnLpdNMean = x.DnnLpdNMean;
|
DnnLpdNMean = x.DnnLpdNMean;
|
||||||
DnnLpdNStDev = x.DnnLpdNStdDev;
|
DnnLpdNStDev = x.DnnLpdNStdDev; // different name
|
||||||
DnnLpdESMin = x.DnnLpdESMin;
|
DnnLpdESMin = x.DnnLpdESMin;
|
||||||
DnnLpdESMax = x.DnnLpdESMax;
|
DnnLpdESMax = x.DnnLpdESMax;
|
||||||
DnnLpdESMean = x.DnnLpdESMean;
|
DnnLpdESMean = x.DnnLpdESMean;
|
||||||
DnnLpdESStDev = x.DnnLpdESStdDev;
|
DnnLpdESStDev = x.DnnLpdESStdDev; // different name
|
||||||
DnnMicroScrMin = x.DnnMicroScrMin;
|
DnnMicroScrMin = x.DnnMicroScrMin;
|
||||||
DnnMicroScrMax = x.DnnMicroScrMax;
|
DnnMicroScrMax = x.DnnMicroScrMax;
|
||||||
DnnMicroScrMean = x.DnnMicroScrMean;
|
DnnMicroScrMean = x.DnnMicroScrMean;
|
||||||
DnnMicroScrStDev = x.DnnMicroScrStdDev;
|
DnnMicroScrStDev = x.DnnMicroScrStdDev; // different name
|
||||||
DnnScrMin = x.DnnScrMin;
|
DnnScrMin = x.DnnScrMin;
|
||||||
DnnScrMax = x.DnnScrMax;
|
DnnScrMax = x.DnnScrMax;
|
||||||
DnnScrMean = x.DnnScrMean;
|
DnnScrMean = x.DnnScrMean;
|
||||||
DnnScrStDev = x.DnnScrStdDev;
|
DnnScrStDev = x.DnnScrStdDev; // different name
|
||||||
DnnSlipMin = x.DnnSlipMin;
|
DnnSlipMin = x.DnnSlipMin;
|
||||||
DnnSlipMax = x.DnnSlipMax;
|
DnnSlipMax = x.DnnSlipMax;
|
||||||
DnnSlipMean = x.DnnSlipMean;
|
DnnSlipMean = x.DnnSlipMean;
|
||||||
DnnSlipStDev = x.DnnSlipStdDev;
|
DnnSlipStDev = x.DnnSlipStdDev; // different name
|
||||||
DnnAreaCntMin = x.DnnAreaCountMin;
|
DnnAreaCntMin = x.DnnAreaCountMin; // different name
|
||||||
DnnAreaCntMax = x.DnnAreaCountMax;
|
DnnAreaCntMax = x.DnnAreaCountMax; // different name
|
||||||
DnnAreaCntMean = x.DnnAreaCountMean;
|
DnnAreaCntMean = x.DnnAreaCountMean; // different name
|
||||||
DnnAreaCntStDev = x.DnnAreaCountStdDev;
|
DnnAreaCntStDev = x.DnnAreaCountStdDev; // different name
|
||||||
DnnAreaMin = x.DnnAreaMin;
|
DnnAreaMin = x.DnnAreaMin;
|
||||||
DnnAreaMax = x.DnnAreaMax;
|
DnnAreaMax = x.DnnAreaMax;
|
||||||
DnnAreaMean = x.DnnAreaMean;
|
DnnAreaMean = x.DnnAreaMean;
|
||||||
DnnAreaStDev = x.DnnAreaStdDev;
|
DnnAreaStDev = x.DnnAreaStdDev; // different name
|
||||||
DnnHazeAvgMin = x.DnnHazeAvgMin;
|
DnnHazeAvgMin = x.DnnHazeAvgMin;
|
||||||
DnnHazeAvgMax = x.DnnHazeAvgMax;
|
DnnHazeAvgMax = x.DnnHazeAvgMax;
|
||||||
DnnHazeAvgMean = x.DnnHazeAvgMean;
|
DnnHazeAvgMean = x.DnnHazeAvgMean;
|
||||||
DnnHazeAvgStDev = x.DnnHazeAvgStdDev;
|
DnnHazeAvgStDev = x.DnnHazeAvgStdDev; // different name
|
||||||
DnnHazeMedMin = x.DnnHazeMedianMin;
|
DnnHazeMedMin = x.DnnHazeMedianMin; // different name
|
||||||
DnnHazeMedMax = x.DnnHazeMedianMax;
|
DnnHazeMedMax = x.DnnHazeMedianMax; // different name
|
||||||
DnnHazeMedMean = x.DnnHazeMedianMean;
|
DnnHazeMedMean = x.DnnHazeMedianMean; // different name
|
||||||
DnnHazeMedStDev = x.DnnHazeMedianStdDev;
|
DnnHazeMedStDev = x.DnnHazeMedianStdDev; // different name
|
||||||
DnnHazeStDevMin = x.DnnHazeStdDevMin;
|
DnnHazeStDevMin = x.DnnHazeStdDevMin; // different name
|
||||||
DnnHazeStDevMax = x.DnnHazeStdDevMax;
|
DnnHazeStDevMax = x.DnnHazeStdDevMax; // different name
|
||||||
DnnHazeStDevMean = x.DnnHazeStdDevMean;
|
DnnHazeStDevMean = x.DnnHazeStdDevMean; // different name
|
||||||
DnnHazeStDevStDev = x.DnnHazeStdDevStdDev;
|
DnnHazeStDevStDev = x.DnnHazeStdDevStdDev; // different name
|
||||||
DnnBin1Min = x.DnnBin1Min;
|
DnnBin1Min = x.DnnBin1Min;
|
||||||
DnnBin1Max = x.DnnBin1Max;
|
DnnBin1Max = x.DnnBin1Max;
|
||||||
DnnBin1Mean = x.DnnBin1Mean;
|
DnnBin1Mean = x.DnnBin1Mean;
|
||||||
DnnBin1StDev = x.DnnBin1StdDev;
|
DnnBin1StDev = x.DnnBin1StdDev; // different name
|
||||||
DnnBin2Min = x.DnnBin2Min;
|
DnnBin2Min = x.DnnBin2Min;
|
||||||
DnnBin2Max = x.DnnBin2Max;
|
DnnBin2Max = x.DnnBin2Max;
|
||||||
DnnBin2Mean = x.DnnBin2Mean;
|
DnnBin2Mean = x.DnnBin2Mean;
|
||||||
DnnBin2StDev = x.DnnBin2StdDev;
|
DnnBin2StDev = x.DnnBin2StdDev; // different name
|
||||||
DnnBin3Min = x.DnnBin3Min;
|
DnnBin3Min = x.DnnBin3Min;
|
||||||
DnnBin3Max = x.DnnBin3Max;
|
DnnBin3Max = x.DnnBin3Max;
|
||||||
DnnBin3Mean = x.DnnBin3Mean;
|
DnnBin3Mean = x.DnnBin3Mean;
|
||||||
DnnBin3StDev = x.DnnBin3StdDev;
|
DnnBin3StDev = x.DnnBin3StdDev; // different name
|
||||||
DnnBin4Min = x.DnnBin4Min;
|
DnnBin4Min = x.DnnBin4Min;
|
||||||
DnnBin4Max = x.DnnBin4Max;
|
DnnBin4Max = x.DnnBin4Max;
|
||||||
DnnBin4Mean = x.DnnBin4Mean;
|
DnnBin4Mean = x.DnnBin4Mean;
|
||||||
DnnBin4StDev = x.DnnBin4StdDev;
|
DnnBin4StDev = x.DnnBin4StdDev; // different name
|
||||||
DnnBin5Min = x.DnnBin5Min;
|
DnnBin5Min = x.DnnBin5Min;
|
||||||
DnnBin5Max = x.DnnBin5Max;
|
DnnBin5Max = x.DnnBin5Max;
|
||||||
DnnBin5Mean = x.DnnBin5Mean;
|
DnnBin5Mean = x.DnnBin5Mean;
|
||||||
DnnBin5StDev = x.DnnBin5StdDev;
|
DnnBin5StDev = x.DnnBin5StdDev; // different name
|
||||||
DnnBin6Min = x.DnnBin6Min;
|
DnnBin6Min = x.DnnBin6Min;
|
||||||
DnnBin6Max = x.DnnBin6Max;
|
DnnBin6Max = x.DnnBin6Max;
|
||||||
DnnBin6Mean = x.DnnBin6Mean;
|
DnnBin6Mean = x.DnnBin6Mean;
|
||||||
DnnBin6StDev = x.DnnBin6StdDev;
|
DnnBin6StDev = x.DnnBin6StdDev; // different name
|
||||||
DnnBin7Min = x.DnnBin7Min;
|
DnnBin7Min = x.DnnBin7Min;
|
||||||
DnnBin7Max = x.DnnBin7Max;
|
DnnBin7Max = x.DnnBin7Max;
|
||||||
DnnBin7Mean = x.DnnBin7Mean;
|
DnnBin7Mean = x.DnnBin7Mean;
|
||||||
DnnBin7StDev = x.DnnBin7StdDev;
|
DnnBin7StDev = x.DnnBin7StdDev; // different name
|
||||||
DnnBin8Min = x.DnnBin8Min;
|
DnnBin8Min = x.DnnBin8Min;
|
||||||
DnnBin8Max = x.DnnBin8Max;
|
DnnBin8Max = x.DnnBin8Max;
|
||||||
DnnBin8Mean = x.DnnBin8Mean;
|
DnnBin8Mean = x.DnnBin8Mean;
|
||||||
DnnBin8StDev = x.DnnBin8StdDev;
|
DnnBin8StDev = x.DnnBin8StdDev; // different name
|
||||||
RDS = x.RDS;
|
RDS = x.RDS;
|
||||||
PSN = x.PSN;
|
PSN = x.PSN;
|
||||||
Recipe = x.Recipe;
|
Recipe = x.Recipe;
|
||||||
Operator = x.Employee;
|
Operator = x.Employee; // different name
|
||||||
}
|
}
|
||||||
txt.Detail detail;
|
txt.Detail detail;
|
||||||
foreach (txt.Description description in descriptions)
|
foreach (txt.Description description in descriptions)
|
||||||
@ -607,8 +611,12 @@ public class WSRequest
|
|||||||
Details.Add(detail);
|
Details.Add(detail);
|
||||||
}
|
}
|
||||||
Date = logistics.DateTimeFromSequence.ToString();
|
Date = logistics.DateTimeFromSequence.ToString();
|
||||||
if (UniqueID is null && Details.Count != 0)
|
UniqueID = $"{logistics.JobID}_{logistics.MID}_{logistics.DateTimeFromSequence:yyyyMMddHHmmssffff}";
|
||||||
UniqueID = Details[0].HeaderUniqueID;
|
for (int i = 0; i < Details.Count; i++)
|
||||||
|
{
|
||||||
|
Details[i].HeaderUniqueID = UniqueID;
|
||||||
|
Details[i].UniqueID = $"{logistics.JobID}_{logistics.MID}_{logistics.DateTimeFromSequence:yyyyMMddHHmmssffff}_Item-{i + 1}";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -632,29 +640,30 @@ public class WSRequest
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static long GetHeaderId(IFileRead fileRead, Logistics logistics, string openInsightMetrologyViewerAPI, string openInsightMetrologyViewerFileShare, int weekOfYear, string json, List<txt.Description> descriptions)
|
internal static long GetHeaderId(IFileRead fileRead, Logistics logistics, string openInsightMetrologyViewerAPI, string openInsightMetrologyViewerFileShare, int weekOfYear, WS.Results results, JsonElement[] jsonElements, List<txt.Description> descriptions)
|
||||||
{
|
{
|
||||||
long result;
|
long result;
|
||||||
if (string.IsNullOrEmpty(json))
|
if (results is not null && results.HeaderId is not null)
|
||||||
|
result = results.HeaderId.Value;
|
||||||
|
else
|
||||||
{
|
{
|
||||||
WSRequest wsRequest = new(fileRead, logistics, descriptions);
|
WSRequest wsRequest = new(fileRead, logistics, jsonElements, descriptions);
|
||||||
string directory = Path.Combine(openInsightMetrologyViewerFileShare, logistics.DateTimeFromSequence.Year.ToString(), $"WW{weekOfYear:00}");
|
string directory = Path.Combine(openInsightMetrologyViewerFileShare, logistics.DateTimeFromSequence.Year.ToString(), $"WW{weekOfYear:00}");
|
||||||
(json, WS.Results wsResults) = WS.SendData(openInsightMetrologyViewerAPI, logistics.Sequence, directory, wsRequest);
|
(_, WS.Results wsResults) = WS.SendData(openInsightMetrologyViewerAPI, logistics.Sequence, directory, wsRequest);
|
||||||
if (!wsResults.Success)
|
if (wsResults.Success is null || !wsResults.Success.Value)
|
||||||
throw new Exception(wsResults.ToString());
|
throw new Exception(wsResults.ToString());
|
||||||
|
result = wsResults.HeaderId.Value;
|
||||||
}
|
}
|
||||||
WS.Results metrologyWSRequest = JsonSerializer.Deserialize<WS.Results>(json, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
|
|
||||||
result = metrologyWSRequest.HeaderID;
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma warning disable IDE0060
|
#pragma warning disable IDE0060
|
||||||
internal static void PostOpenInsightMetrologyViewerAttachments(IFileRead fileRead, Logistics logistics, string openInsightMetrologyViewerAPI, string ghostPCLFileName, List<txt.Description> descriptions, string matchDirectory, string subGroupId, long headerId, string headerIdDirectory)
|
internal static void PostOpenInsightMetrologyViewerAttachments(IFileRead fileRead, Logistics logistics, string openInsightMetrologyViewerAPI, string ghostPCLFileName, List<txt.Description> descriptions, string matchDirectory, WS.Results results, string headerIdDirectory)
|
||||||
#pragma warning restore IDE0060
|
#pragma warning restore IDE0060
|
||||||
{
|
{
|
||||||
string[] summaryFiles = Directory.GetFiles(matchDirectory, "*.txt", SearchOption.TopDirectoryOnly);
|
string[] summaryFiles = Directory.GetFiles(matchDirectory, "*.txt", SearchOption.TopDirectoryOnly);
|
||||||
if (summaryFiles.Length != 1)
|
if (summaryFiles.Length != 1)
|
||||||
throw new Exception($"Invalid source file count for <{headerId}>!");
|
throw new Exception($"Invalid source file count for <{results.HeaderId}>!");
|
||||||
string[] prnFiles = Directory.GetFiles(matchDirectory, "WaferMap*.prn", SearchOption.TopDirectoryOnly);
|
string[] prnFiles = Directory.GetFiles(matchDirectory, "WaferMap*.prn", SearchOption.TopDirectoryOnly);
|
||||||
List<string> pdfFiles = new();
|
List<string> pdfFiles = new();
|
||||||
foreach (string prnFile in prnFiles.OrderBy(l => l))
|
foreach (string prnFile in prnFiles.OrderBy(l => l))
|
||||||
@ -664,7 +673,7 @@ public class WSRequest
|
|||||||
List<WS.Attachment> dataAttachments = new();
|
List<WS.Attachment> dataAttachments = new();
|
||||||
List<WS.Attachment> headerAttachments = new()
|
List<WS.Attachment> headerAttachments = new()
|
||||||
{
|
{
|
||||||
new WS.Attachment(subGroupId, headerId, headerIdDirectory, descriptions[0].HeaderUniqueId, "Data.txt", summaryFiles[0])
|
new WS.Attachment(results, headerIdDirectory, $"{logistics.JobID}_{logistics.MID}_{logistics.DateTimeFromSequence:yyyyMMddHHmmssffff}", "Data.txt", summaryFiles[0])
|
||||||
};
|
};
|
||||||
int count;
|
int count;
|
||||||
if (pdfFiles.Count < descriptions.Count)
|
if (pdfFiles.Count < descriptions.Count)
|
||||||
@ -674,7 +683,7 @@ public class WSRequest
|
|||||||
for (int i = 0; i < count; i++)
|
for (int i = 0; i < count; i++)
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(pdfFiles[i]))
|
if (!string.IsNullOrEmpty(pdfFiles[i]))
|
||||||
dataAttachments.Add(new WS.Attachment(subGroupId, headerId, headerIdDirectory, descriptions[i].UniqueId, "Image.pdf", pdfFiles[i]));
|
dataAttachments.Add(new WS.Attachment(results, headerIdDirectory, $"{logistics.JobID}_{logistics.MID}_{logistics.DateTimeFromSequence:yyyyMMddHHmmssffff}_Item-{i + 1}", "Image.pdf", pdfFiles[i]));
|
||||||
}
|
}
|
||||||
if (dataAttachments.Count == 0 || dataAttachments.Count != descriptions.Count)
|
if (dataAttachments.Count == 0 || dataAttachments.Count != descriptions.Count)
|
||||||
throw new Exception($"Invalid attachment count! {dataAttachments.Count} != {descriptions.Count}");
|
throw new Exception($"Invalid attachment count! {dataAttachments.Count} != {descriptions.Count}");
|
||||||
|
|||||||
@ -19,7 +19,7 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
private readonly string _OpenInsightMetrologyViewerAPI;
|
private readonly string _OpenInsightMetrologyViewerAPI;
|
||||||
private readonly string _OpenInsightMetrologyViewerFileShare;
|
private readonly string _OpenInsightMetrologyViewerFileShare;
|
||||||
|
|
||||||
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<Shared.Metrology.WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
||||||
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
||||||
{
|
{
|
||||||
_MinFileLength = 10;
|
_MinFileLength = 10;
|
||||||
@ -139,32 +139,27 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PostOpenInsightMetrologyViewerAttachments(List<txt.Description> descriptions)
|
private void PostOpenInsightMetrologyViewerAttachments(JsonElement[] jsonElements, List<txt.Description> descriptions)
|
||||||
{
|
{
|
||||||
string? json;
|
Shared.Metrology.WS.Results? results;
|
||||||
string? subGroupId;
|
|
||||||
string jobIdDirectory = Path.Combine(Path.GetDirectoryName(_FileConnectorConfiguration.AlternateTargetFolder) ?? throw new Exception(), _Logistics.JobID);
|
string jobIdDirectory = Path.Combine(Path.GetDirectoryName(_FileConnectorConfiguration.AlternateTargetFolder) ?? throw new Exception(), _Logistics.JobID);
|
||||||
if (!Directory.Exists(jobIdDirectory))
|
if (!Directory.Exists(jobIdDirectory))
|
||||||
_ = Directory.CreateDirectory(jobIdDirectory);
|
_ = Directory.CreateDirectory(jobIdDirectory);
|
||||||
string[] matchDirectories = GetInProcessDirectory(jobIdDirectory);
|
string[] matchDirectories = GetInProcessDirectory(jobIdDirectory);
|
||||||
if (!_StaticRuns.TryGetValue(_Logistics.Sequence, out List<string>? values))
|
if (!_StaticRuns.TryGetValue(_Logistics.Sequence, out List<Shared.Metrology.WS.Results>? wsResults))
|
||||||
(json, subGroupId) = (null, null);
|
results = null;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (values.Count != 1)
|
if (wsResults is null || wsResults.Count != 1)
|
||||||
throw new Exception($"{nameof(_StaticRuns)} {values.Count} != 1 {_Logistics.Sequence}!");
|
throw new NullReferenceException($"{nameof(wsResults)} {wsResults?.Count} != 1 {_Logistics.Sequence}!");
|
||||||
string[] segments = values[0].Split(new string[] { "|" }, StringSplitOptions.None);
|
results = wsResults[0];
|
||||||
json = segments[0];
|
|
||||||
subGroupId = segments.Length > 1 ? segments[1] : null;
|
|
||||||
lock (_StaticRuns)
|
|
||||||
_ = _StaticRuns.Remove(_Logistics.Sequence);
|
|
||||||
}
|
}
|
||||||
int weekOfYear = _Calendar.GetWeekOfYear(_Logistics.DateTimeFromSequence, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
|
int weekOfYear = _Calendar.GetWeekOfYear(_Logistics.DateTimeFromSequence, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
|
||||||
long headerId = !_IsEAFHosted ? -1 : OpenInsightMetrologyViewer.WSRequest.GetHeaderId(this, _Logistics, _OpenInsightMetrologyViewerAPI, _OpenInsightMetrologyViewerFileShare, weekOfYear, json, descriptions);
|
long headerId = !_IsEAFHosted ? -1 : OpenInsightMetrologyViewer.WSRequest.GetHeaderId(this, _Logistics, _OpenInsightMetrologyViewerAPI, _OpenInsightMetrologyViewerFileShare, weekOfYear, results, jsonElements, descriptions);
|
||||||
string? headerIdDirectory = GetHeaderIdDirectory(headerId);
|
string? headerIdDirectory = GetHeaderIdDirectory(headerId);
|
||||||
if (string.IsNullOrEmpty(headerIdDirectory))
|
if (string.IsNullOrEmpty(headerIdDirectory))
|
||||||
throw new Exception($"Didn't find header id directory <{headerId}>");
|
throw new Exception($"Didn't find header id directory <{headerId}>");
|
||||||
OpenInsightMetrologyViewer.WSRequest.PostOpenInsightMetrologyViewerAttachments(this, _Logistics, _OpenInsightMetrologyViewerAPI, _GhostPCLFileName, descriptions, matchDirectories[0], subGroupId, headerId, headerIdDirectory);
|
OpenInsightMetrologyViewer.WSRequest.PostOpenInsightMetrologyViewerAttachments(this, _Logistics, _OpenInsightMetrologyViewerAPI, _GhostPCLFileName, descriptions, matchDirectories[0], results, headerIdDirectory);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
||||||
@ -172,15 +167,16 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
if (dateTime == DateTime.MinValue)
|
if (dateTime == DateTime.MinValue)
|
||||||
throw new ArgumentNullException(nameof(dateTime));
|
throw new ArgumentNullException(nameof(dateTime));
|
||||||
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
||||||
Tuple<string, string[], string[]> pdsf = ProcessDataStandardFormat.GetLogisticsColumnsAndBody(reportFullPath);
|
string[] lines = File.ReadAllLines(reportFullPath);
|
||||||
_Logistics = new Logistics(reportFullPath, pdsf.Item1);
|
ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath, lines);
|
||||||
|
_Logistics = new Logistics(reportFullPath, processDataStandardFormat);
|
||||||
SetFileParameterLotIDToLogisticsMID();
|
SetFileParameterLotIDToLogisticsMID();
|
||||||
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(pdsf);
|
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(reportFullPath, lines, processDataStandardFormat);
|
||||||
List<txt.Description> descriptions = txt.ProcessData.GetDescriptions(jsonElements);
|
List<txt.Description> descriptions = txt.ProcessData.GetDescriptions(jsonElements);
|
||||||
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
||||||
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
||||||
PostOpenInsightMetrologyViewerAttachments(descriptions);
|
PostOpenInsightMetrologyViewerAttachments(jsonElements, descriptions);
|
||||||
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(pdsf.Item1, tests, jsonElements, new List<FileInfo>());
|
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(string.Join(Environment.NewLine, processDataStandardFormat.Logistics), tests, jsonElements, new List<FileInfo>());
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -17,7 +17,7 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
private readonly string _JobIdParentDirectory;
|
private readonly string _JobIdParentDirectory;
|
||||||
private readonly string _JobIdProcessParentDirectory;
|
private readonly string _JobIdProcessParentDirectory;
|
||||||
|
|
||||||
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<Shared.Metrology.WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
||||||
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
||||||
{
|
{
|
||||||
_MinFileLength = 10;
|
_MinFileLength = 10;
|
||||||
@ -108,7 +108,7 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DirectoryMove(string reportFullPath, DateTime dateTime, List<txt.Description> descriptions)
|
private void DirectoryMove(string reportFullPath, DateTime dateTime, JsonElement[] jsonElements, List<txt.Description> descriptions)
|
||||||
{
|
{
|
||||||
if (dateTime == DateTime.MinValue)
|
if (dateTime == DateTime.MinValue)
|
||||||
throw new ArgumentNullException(nameof(dateTime));
|
throw new ArgumentNullException(nameof(dateTime));
|
||||||
@ -122,40 +122,68 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
throw new Exception("Didn't find directory by logistics sequence");
|
throw new Exception("Didn't find directory by logistics sequence");
|
||||||
if (fileInfo.Exists && fileInfo.LastWriteTime < fileInfo.CreationTime)
|
if (fileInfo.Exists && fileInfo.LastWriteTime < fileInfo.CreationTime)
|
||||||
File.SetLastWriteTime(reportFullPath, fileInfo.CreationTime);
|
File.SetLastWriteTime(reportFullPath, fileInfo.CreationTime);
|
||||||
OpenInsightMetrologyViewer.WSRequest wsRequest = new(this, _Logistics, descriptions);
|
OpenInsightMetrologyViewer.WSRequest wsRequest = new(this, _Logistics, jsonElements, descriptions);
|
||||||
JsonSerializerOptions jsonSerializerOptions = new() { WriteIndented = true };
|
JsonSerializerOptions jsonSerializerOptions = new() { WriteIndented = true };
|
||||||
string json = JsonSerializer.Serialize(wsRequest, wsRequest.GetType(), jsonSerializerOptions);
|
string json = JsonSerializer.Serialize(wsRequest, wsRequest.GetType(), jsonSerializerOptions);
|
||||||
string directoryName = $"{Path.GetFileName(matchDirectories[0]).Split(new string[] { logisticsSequence }, StringSplitOptions.None)[0]}{_Logistics.DateTimeFromSequence:yyyy-MM-dd_hh;mm_tt_}{DateTime.Now.Ticks - _Logistics.Sequence}";
|
string directoryName = $"{Path.GetFileName(matchDirectories[0]).Split(new string[] { logisticsSequence }, StringSplitOptions.None)[0]}{_Logistics.DateTimeFromSequence:yyyy-MM-dd_hh;mm_tt_}{DateTime.Now.Ticks - _Logistics.Sequence}";
|
||||||
string destinationJobIdDirectory = Path.Combine(_JobIdProcessParentDirectory, _Logistics.JobID, directoryName);
|
string destinationJobIdDirectory = Path.Combine(_JobIdProcessParentDirectory, _Logistics.JobID, directoryName);
|
||||||
string sequenceDirectory = Path.Combine(destinationJobIdDirectory, logisticsSequence);
|
string sequenceDirectory = Path.Combine(destinationJobIdDirectory, logisticsSequence);
|
||||||
string jsonFileName = Path.Combine(sequenceDirectory, $"{Path.GetFileNameWithoutExtension(reportFullPath)}.json");
|
string jsonFileName = Path.Combine(sequenceDirectory, $"{Path.GetFileNameWithoutExtension(reportFullPath)}.json");
|
||||||
|
MoveMatchingFile(jobIdDirectory, matchDirectories[0]);
|
||||||
Directory.Move(matchDirectories[0], destinationJobIdDirectory);
|
Directory.Move(matchDirectories[0], destinationJobIdDirectory);
|
||||||
if (!Directory.Exists(sequenceDirectory))
|
if (!Directory.Exists(sequenceDirectory))
|
||||||
_ = Directory.CreateDirectory(sequenceDirectory);
|
_ = Directory.CreateDirectory(sequenceDirectory);
|
||||||
File.Copy(reportFullPath, Path.Combine(sequenceDirectory, Path.GetFileName(reportFullPath)), overwrite: true);
|
File.Copy(reportFullPath, Path.Combine(sequenceDirectory, Path.GetFileName(reportFullPath)), overwrite: true);
|
||||||
File.WriteAllText(jsonFileName, json);
|
File.WriteAllText(jsonFileName, json);
|
||||||
|
lock (_StaticRuns)
|
||||||
|
_ = _StaticRuns.Remove(_Logistics.Sequence);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void MoveMatchingFile(string jobIdDirectory, string matchDirectory)
|
||||||
|
{
|
||||||
|
string checkFile;
|
||||||
|
string jobIdDirectoryFileName;
|
||||||
|
string matchDirectoryFileName;
|
||||||
|
string[] jobIdDirectoryFiles = Directory.GetFiles(jobIdDirectory, "*", SearchOption.TopDirectoryOnly);
|
||||||
|
string[] matchDirectoryFiles = Directory.GetFiles(matchDirectory, "*", SearchOption.TopDirectoryOnly);
|
||||||
|
foreach (string jobIdDirectoryFile in jobIdDirectoryFiles)
|
||||||
|
{
|
||||||
|
jobIdDirectoryFileName = Path.GetFileName(jobIdDirectoryFile);
|
||||||
|
foreach (string matchDirectoryFile in matchDirectoryFiles)
|
||||||
|
{
|
||||||
|
matchDirectoryFileName = Path.GetFileName(matchDirectoryFile);
|
||||||
|
if (jobIdDirectoryFileName.StartsWith(matchDirectoryFileName))
|
||||||
|
{
|
||||||
|
checkFile = Path.Combine(matchDirectory, jobIdDirectoryFileName);
|
||||||
|
if (File.Exists(checkFile))
|
||||||
|
continue;
|
||||||
|
File.Move(jobIdDirectoryFile, checkFile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
||||||
{
|
{
|
||||||
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
||||||
Tuple<string, string[], string[]> pdsf = ProcessDataStandardFormat.GetLogisticsColumnsAndBody(reportFullPath);
|
string[] lines = File.ReadAllLines(reportFullPath);
|
||||||
_Logistics = new Logistics(reportFullPath, pdsf.Item1);
|
ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath, lines);
|
||||||
|
_Logistics = new Logistics(reportFullPath, processDataStandardFormat);
|
||||||
SetFileParameterLotIDToLogisticsMID();
|
SetFileParameterLotIDToLogisticsMID();
|
||||||
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(pdsf);
|
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(reportFullPath, lines, processDataStandardFormat);
|
||||||
List<txt.Description> descriptions = txt.ProcessData.GetDescriptions(jsonElements);
|
List<txt.Description> descriptions = txt.ProcessData.GetDescriptions(jsonElements);
|
||||||
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
||||||
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(pdsf.Item1, tests, jsonElements, new List<FileInfo>());
|
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(string.Join(Environment.NewLine, processDataStandardFormat.Logistics), tests, jsonElements, new List<FileInfo>());
|
||||||
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
||||||
DirectoryMove(reportFullPath, dateTime, descriptions);
|
DirectoryMove(reportFullPath, dateTime, jsonElements, descriptions);
|
||||||
else if (!_IsEAFHosted)
|
else if (!_IsEAFHosted)
|
||||||
{
|
{
|
||||||
OpenInsightMetrologyViewer.WSRequest wsRequest = new(this, _Logistics, descriptions);
|
OpenInsightMetrologyViewer.WSRequest wsRequest = new(this, _Logistics, jsonElements, descriptions);
|
||||||
JsonSerializerOptions jsonSerializerOptions = new() { WriteIndented = true };
|
JsonSerializerOptions jsonSerializerOptions = new() { WriteIndented = true };
|
||||||
string json = JsonSerializer.Serialize(wsRequest, wsRequest.GetType(), jsonSerializerOptions);
|
string check = JsonSerializer.Serialize(wsRequest, wsRequest.GetType(), jsonSerializerOptions);
|
||||||
string jsonFileName = Path.ChangeExtension(reportFullPath, ".json");
|
string jsonFileName = Path.ChangeExtension(reportFullPath, ".json");
|
||||||
string historicalText = File.ReadAllText(jsonFileName);
|
string historicalText = File.ReadAllText(jsonFileName);
|
||||||
if (json != historicalText)
|
if (check != historicalText)
|
||||||
throw new Exception("File doesn't match historical!");
|
throw new Exception("File doesn't match historical!");
|
||||||
}
|
}
|
||||||
return results;
|
return results;
|
||||||
|
|||||||
@ -14,7 +14,7 @@ namespace Adaptation.FileHandlers.SPaCe;
|
|||||||
public class FileRead : Shared.FileRead, IFileRead
|
public class FileRead : Shared.FileRead, IFileRead
|
||||||
{
|
{
|
||||||
|
|
||||||
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<Shared.Metrology.WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
||||||
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
||||||
{
|
{
|
||||||
_MinFileLength = 10;
|
_MinFileLength = 10;
|
||||||
@ -117,15 +117,15 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
||||||
{
|
{
|
||||||
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
||||||
Tuple<string, string[], string[]> pdsf = ProcessDataStandardFormat.GetLogisticsColumnsAndBody(reportFullPath);
|
ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath);
|
||||||
_Logistics = new Logistics(reportFullPath, pdsf.Item1);
|
_Logistics = new Logistics(reportFullPath, processDataStandardFormat);
|
||||||
SetFileParameterLotIDToLogisticsMID();
|
SetFileParameterLotIDToLogisticsMID();
|
||||||
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(pdsf);
|
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(processDataStandardFormat);
|
||||||
List<Shared.Properties.IDescription> descriptions = GetDuplicatorDescriptions(jsonElements);
|
List<Shared.Properties.IDescription> descriptions = GetDuplicatorDescriptions(jsonElements);
|
||||||
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
||||||
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
||||||
FileCopy(reportFullPath, dateTime, descriptions);
|
FileCopy(reportFullPath, dateTime, descriptions);
|
||||||
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(pdsf.Item1, tests, jsonElements, new List<FileInfo>());
|
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(string.Join(Environment.NewLine, processDataStandardFormat.Logistics), tests, jsonElements, new List<FileInfo>());
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -19,11 +19,12 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
public const string BarcodeHostFileShare = @"\\mesfs.infineon.com\EC_Metrology_Si\BarcodeHost\API";
|
public const string BarcodeHostFileShare = @"\\mesfs.infineon.com\EC_Metrology_Si\BarcodeHost\API";
|
||||||
public const string MetrologyFileShare = @"\\mesfs.infineon.com\EC_Metrology_Si\WorkMaterialOut\API";
|
public const string MetrologyFileShare = @"\\mesfs.infineon.com\EC_Metrology_Si\WorkMaterialOut\API";
|
||||||
public const string OpenInsightApplicationProgrammingInterface = @"http://oi-metrology-viewer-api.mes.infineon.com:8080/api/oiWizard";
|
public const string OpenInsightApplicationProgrammingInterface = @"http://oi-metrology-viewer-api.mes.infineon.com:8080/api/oiWizard";
|
||||||
|
public const string IQSConnectionString = @"Data Source=messqlec1.infineon.com\PROD1,53959;Initial Catalog=IRMNSPC;Integrated Security=True";
|
||||||
public const string LSL2SQLConnectionString = @"Data Source=messqlec1.infineon.com\PROD1,53959;Initial Catalog=LSL2SQL;Persist Security Info=True;User ID=srpadmin;Password=0okm9ijn;";
|
public const string LSL2SQLConnectionString = @"Data Source=messqlec1.infineon.com\PROD1,53959;Initial Catalog=LSL2SQL;Persist Security Info=True;User ID=srpadmin;Password=0okm9ijn;";
|
||||||
|
|
||||||
private long? _TickOffset;
|
private long? _TickOffset;
|
||||||
|
|
||||||
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<Shared.Metrology.WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
||||||
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
||||||
{ // cSpell:restore
|
{ // cSpell:restore
|
||||||
_MinFileLength = 10;
|
_MinFileLength = 10;
|
||||||
@ -38,6 +39,9 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
string barcodeHostFileShare = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "Barcode.Host.FileShare");
|
string barcodeHostFileShare = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "Barcode.Host.FileShare");
|
||||||
if (barcodeHostFileShare != BarcodeHostFileShare)
|
if (barcodeHostFileShare != BarcodeHostFileShare)
|
||||||
throw new NotSupportedException($"Update configuration for [{nameof(BarcodeHostFileShare)}]");
|
throw new NotSupportedException($"Update configuration for [{nameof(BarcodeHostFileShare)}]");
|
||||||
|
string iqsConnectionString = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "IQS.ConnectionString");
|
||||||
|
if (iqsConnectionString != IQSConnectionString)
|
||||||
|
throw new NotSupportedException($"Update configuration for [{nameof(IQSConnectionString)}]");
|
||||||
string lsl2SQLConnectionString = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "ConnectionString.LSL2SQL");
|
string lsl2SQLConnectionString = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "ConnectionString.LSL2SQL");
|
||||||
if (lsl2SQLConnectionString != LSL2SQLConnectionString)
|
if (lsl2SQLConnectionString != LSL2SQLConnectionString)
|
||||||
throw new NotSupportedException($"Update configuration for [{nameof(LSL2SQLConnectionString)}]");
|
throw new NotSupportedException($"Update configuration for [{nameof(LSL2SQLConnectionString)}]");
|
||||||
@ -53,14 +57,14 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
string tibcoParameterSubjectPrefix = GetPropertyValue(cellInstanceConnectionName, tibcoParameters, "TIBCO.IFX_SUBJECT_PREFIX");
|
string tibcoParameterSubjectPrefix = GetPropertyValue(cellInstanceConnectionName, tibcoParameters, "TIBCO.IFX_SUBJECT_PREFIX");
|
||||||
string tibcoParameterConfigurationLocation = GetPropertyValue(cellInstanceConnectionName, tibcoParameters, "TIBCO.IFX_CONFIGURATION_LOCATION");
|
string tibcoParameterConfigurationLocation = GetPropertyValue(cellInstanceConnectionName, tibcoParameters, "TIBCO.IFX_CONFIGURATION_LOCATION");
|
||||||
string tibcoParameterConfigurationLocationCopy = GetPropertyValue(cellInstanceConnectionName, tibcoParameters, "TIBCO.IFX_CONFIGURATION_LOCATION_LOCAL_COPY");
|
string tibcoParameterConfigurationLocationCopy = GetPropertyValue(cellInstanceConnectionName, tibcoParameters, "TIBCO.IFX_CONFIGURATION_LOCATION_LOCAL_COPY");
|
||||||
if (!Directory.Exists(MetrologyFileShare))
|
if (!Directory.Exists(metrologyFileShare))
|
||||||
throw new Exception($"Unable to access file-share <{MetrologyFileShare}>");
|
throw new Exception($"Unable to access file-share <{MetrologyFileShare}>");
|
||||||
if (!Directory.Exists(BarcodeHostFileShare))
|
if (!Directory.Exists(barcodeHostFileShare))
|
||||||
throw new Exception($"Unable to access file-share <{BarcodeHostFileShare}>");
|
throw new Exception($"Unable to access file-share <{BarcodeHostFileShare}>");
|
||||||
if (_IsEAFHosted)
|
if (_IsEAFHosted)
|
||||||
{
|
{
|
||||||
HttpClient httpClient = new() { BaseAddress = new(OpenInsightApplicationProgrammingInterface) };
|
HttpClient httpClient = new() { BaseAddress = new(openInsightApplicationProgrammingInterface) };
|
||||||
Transport.Main.Initialize(smtp, cellInstanceName, fileConnectorConfiguration, LSL2SQLConnectionString, MetrologyFileShare, BarcodeHostFileShare, httpClient);
|
Transport.Main.Initialize(smtp, cellInstanceName, fileConnectorConfiguration, iqsConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient);
|
||||||
if (!string.IsNullOrEmpty(fileConnectorConfiguration.SourceFileLocation))
|
if (!string.IsNullOrEmpty(fileConnectorConfiguration.SourceFileLocation))
|
||||||
_ = Transport.Main.Setup(useSleep: true, setIfxTransport: true, tibcoParameterChannel, tibcoParameterSubjectPrefix, tibcoParameterConfigurationLocation, tibcoParameterConfigurationLocationCopy, tibcoParameterSubject);
|
_ = Transport.Main.Setup(useSleep: true, setIfxTransport: true, tibcoParameterChannel, tibcoParameterSubjectPrefix, tibcoParameterConfigurationLocation, tibcoParameterConfigurationLocationCopy, tibcoParameterSubject);
|
||||||
else
|
else
|
||||||
|
|||||||
@ -1,21 +1,36 @@
|
|||||||
namespace Adaptation.FileHandlers.TIBCO.Transport;
|
namespace Adaptation.FileHandlers.TIBCO.Transport;
|
||||||
|
|
||||||
|
#nullable enable
|
||||||
|
|
||||||
public class Common
|
public class Common
|
||||||
{
|
{
|
||||||
|
|
||||||
public string Layer { get; }
|
public string? Layer { get; }
|
||||||
public string PSN { get; }
|
public string? PSN { get; }
|
||||||
public int? RDSNumber { get; }
|
public int? RDSNumber { get; }
|
||||||
public int? ReactorNumber { get; }
|
public int? ReactorNumber { get; }
|
||||||
public string Zone { get; }
|
public string? Zone { get; }
|
||||||
|
public string? Employee { get; }
|
||||||
|
public RunDataSheetRoot? RunDataSheetRoot { get; }
|
||||||
|
public WorkOrder? WorkOrder { get; }
|
||||||
|
|
||||||
public Common(string layer, string psn, int? rdsNumber, int? reactor, string zone)
|
public Common(string? layer,
|
||||||
|
string? psn,
|
||||||
|
int? rdsNumber,
|
||||||
|
int? reactor,
|
||||||
|
string? zone,
|
||||||
|
string? employee,
|
||||||
|
RunDataSheetRoot? runDataSheetRoot,
|
||||||
|
WorkOrder? workOrder)
|
||||||
{
|
{
|
||||||
Layer = layer;
|
Layer = layer;
|
||||||
PSN = psn;
|
PSN = psn;
|
||||||
RDSNumber = rdsNumber;
|
RDSNumber = rdsNumber;
|
||||||
ReactorNumber = reactor;
|
ReactorNumber = reactor;
|
||||||
Zone = zone;
|
Zone = zone;
|
||||||
|
Employee = employee;
|
||||||
|
RunDataSheetRoot = runDataSheetRoot;
|
||||||
|
WorkOrder = workOrder;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1,18 +1,22 @@
|
|||||||
namespace Adaptation.FileHandlers.TIBCO.Transport;
|
namespace Adaptation.FileHandlers.TIBCO.Transport;
|
||||||
|
|
||||||
|
#nullable enable
|
||||||
|
|
||||||
public class CommonB
|
public class CommonB
|
||||||
{
|
{
|
||||||
|
|
||||||
public string Comment { get; }
|
public string? Layer { get; }
|
||||||
public string Layer { get; }
|
|
||||||
public int? RDSNumber { get; }
|
public int? RDSNumber { get; }
|
||||||
public string PSN { get; }
|
public string? PSN { get; }
|
||||||
public int? ReactorNumber { get; }
|
public int? ReactorNumber { get; }
|
||||||
public string Zone { get; }
|
public string? Zone { get; }
|
||||||
|
|
||||||
public CommonB(string comment, string layer, int? rdsNumber, string psn, int? reactorNumber, string zone)
|
public CommonB(string? layer,
|
||||||
|
int? rdsNumber,
|
||||||
|
string? psn,
|
||||||
|
int? reactorNumber,
|
||||||
|
string? zone)
|
||||||
{
|
{
|
||||||
Comment = comment;
|
|
||||||
Layer = layer;
|
Layer = layer;
|
||||||
RDSNumber = rdsNumber;
|
RDSNumber = rdsNumber;
|
||||||
PSN = psn;
|
PSN = psn;
|
||||||
@ -20,4 +24,51 @@ public class CommonB
|
|||||||
Zone = zone;
|
Zone = zone;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static CommonB Get(Common common, RunDataSheetRoot? runDataSheetRoot, Run[]? runs)
|
||||||
|
{
|
||||||
|
CommonB result;
|
||||||
|
string? psn;
|
||||||
|
string? zone;
|
||||||
|
string? layer;
|
||||||
|
int? reactorNumber;
|
||||||
|
if (runs is null || runs.Length == 0)
|
||||||
|
{
|
||||||
|
zone = common.Zone;
|
||||||
|
layer = common.Layer;
|
||||||
|
if (runDataSheetRoot?.RunDataSheet is null)
|
||||||
|
{
|
||||||
|
psn = common.PSN;
|
||||||
|
reactorNumber = common.ReactorNumber;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
psn = runDataSheetRoot?.RunDataSheet.PSN.ToString();
|
||||||
|
reactorNumber = runDataSheetRoot?.RunDataSheet.Reactor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const int zero = 0;
|
||||||
|
Run run = runs[zero];
|
||||||
|
if (runDataSheetRoot?.RunDataSheet is not null)
|
||||||
|
{
|
||||||
|
psn = runDataSheetRoot?.RunDataSheet.PSN.ToString();
|
||||||
|
reactorNumber = runDataSheetRoot?.RunDataSheet.Reactor;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
psn = string.IsNullOrEmpty(common.PSN) ? run.PSN : common.PSN;
|
||||||
|
reactorNumber = common.ReactorNumber is null ? run.Reactor : common.ReactorNumber;
|
||||||
|
}
|
||||||
|
zone = string.IsNullOrEmpty(common.Zone) ? run.Zone : common.Zone;
|
||||||
|
layer = string.IsNullOrEmpty(common.Layer) ? run.EpiLayer : common.Layer;
|
||||||
|
}
|
||||||
|
result = new(layer: layer,
|
||||||
|
rdsNumber: common.RDSNumber,
|
||||||
|
psn: psn,
|
||||||
|
reactorNumber: reactorNumber,
|
||||||
|
zone: zone);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1,28 +1,33 @@
|
|||||||
namespace Adaptation.FileHandlers.TIBCO.Transport;
|
namespace Adaptation.FileHandlers.TIBCO.Transport;
|
||||||
|
|
||||||
|
#nullable enable
|
||||||
|
|
||||||
public class Input
|
public class Input
|
||||||
{
|
{
|
||||||
|
|
||||||
public string Area { get; }
|
public string? Area { get; }
|
||||||
public string EquipmentType { get; }
|
public string? EquipmentType { get; }
|
||||||
public string MID { get; }
|
public string? LoadLock { get; }
|
||||||
public string Slot { get; }
|
public string? MesEntity { get; }
|
||||||
public string MesEntity { get; }
|
public string? MID { get; }
|
||||||
public string Recipe { get; }
|
public string? Recipe { get; }
|
||||||
public string Sequence { get; }
|
public string? Sequence { get; }
|
||||||
|
public string? Slot { get; }
|
||||||
|
|
||||||
[System.Text.Json.Serialization.JsonConstructor]
|
[System.Text.Json.Serialization.JsonConstructor]
|
||||||
public Input(string area,
|
public Input(string? area,
|
||||||
string equipmentType,
|
string? equipmentType,
|
||||||
string mid,
|
string? loadLock,
|
||||||
string slot,
|
string? mid,
|
||||||
string mesEntity,
|
string? slot,
|
||||||
string recipe,
|
string? mesEntity,
|
||||||
string sequence)
|
string? recipe,
|
||||||
|
string? sequence)
|
||||||
{
|
{
|
||||||
|
|
||||||
Area = area;
|
Area = area;
|
||||||
EquipmentType = equipmentType;
|
EquipmentType = equipmentType;
|
||||||
|
LoadLock = loadLock;
|
||||||
MID = mid;
|
MID = mid;
|
||||||
Slot = slot;
|
Slot = slot;
|
||||||
MesEntity = mesEntity;
|
MesEntity = mesEntity;
|
||||||
@ -30,10 +35,11 @@ public class Input
|
|||||||
Sequence = sequence;
|
Sequence = sequence;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal Input(Input input, string mid)
|
internal Input(Input input, string? mid)
|
||||||
{
|
{
|
||||||
Area = input.Area;
|
Area = input.Area;
|
||||||
EquipmentType = input.EquipmentType;
|
EquipmentType = input.EquipmentType;
|
||||||
|
LoadLock = input.LoadLock;
|
||||||
MID = mid;
|
MID = mid;
|
||||||
Slot = input.Slot;
|
Slot = input.Slot;
|
||||||
MesEntity = input.MesEntity;
|
MesEntity = input.MesEntity;
|
||||||
|
|||||||
@ -13,33 +13,35 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace Adaptation.FileHandlers.TIBCO.Transport;
|
namespace Adaptation.FileHandlers.TIBCO.Transport;
|
||||||
|
|
||||||
|
#nullable enable
|
||||||
|
|
||||||
public partial class Job
|
public partial class Job
|
||||||
{
|
{
|
||||||
|
|
||||||
public string AutomationMode { get; }
|
public string? AutomationMode { get; }
|
||||||
public string BasicType { get; }
|
public string? BasicType { get; }
|
||||||
public string CreationUser { get; }
|
public string? CreationUser { get; }
|
||||||
public string Equipment { get; }
|
public string? Equipment { get; }
|
||||||
public string JobName { get; }
|
public string? JobName { get; }
|
||||||
public string LastUpdateUser { get; }
|
public string? LastUpdateUser { get; }
|
||||||
public string LotName { get; }
|
public string? LotName { get; }
|
||||||
public string LotState { get; }
|
public string? LotState { get; }
|
||||||
public string PackageName { get; }
|
public string? PackageName { get; }
|
||||||
public string ProcessSpecName { get; }
|
public string? ProcessSpecName { get; }
|
||||||
public string ProcessType { get; }
|
public string? ProcessType { get; }
|
||||||
public string ProductName { get; }
|
public string? ProductName { get; }
|
||||||
public string Qty { get; }
|
public string? Qty { get; }
|
||||||
public string Qty2 { get; }
|
public string? Qty2 { get; }
|
||||||
public string RecipeName { get; }
|
public string? RecipeName { get; }
|
||||||
public string SpecName { get; }
|
public string? SpecName { get; }
|
||||||
public string StateModel { get; }
|
public string? StateModel { get; }
|
||||||
public string Status { get; }
|
public string? Status { get; }
|
||||||
//
|
//
|
||||||
public bool IsAreaSi { get; }
|
public bool IsAreaSi { get; }
|
||||||
public DateTime DateTime { get; }
|
public DateTime DateTime { get; }
|
||||||
public List<Item> Items { get; }
|
public List<Item> Items { get; }
|
||||||
|
|
||||||
public Job(string lsl2SQLConnectionString, string metrologyFileShare, string barcodeHostFileShare, HttpClient httpClient, string mid)
|
public Job(string iqsSQLConnectionString, string lsl2SQLConnectionString, string metrologyFileShare, string barcodeHostFileShare, HttpClient httpClient, string mid, DateTime enteredDateTimeFilter, DateTime loadSignatureDateTimeFilter)
|
||||||
{
|
{
|
||||||
const int zero = 0;
|
const int zero = 0;
|
||||||
Items = new List<Item>();
|
Items = new List<Item>();
|
||||||
@ -47,51 +49,84 @@ public partial class Job
|
|||||||
IsAreaSi = false;
|
IsAreaSi = false;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Run[]? runs;
|
||||||
Common common;
|
Common common;
|
||||||
CommonB commonB;
|
CommonB commonB;
|
||||||
|
string? basicType;
|
||||||
int? reactorNumber;
|
int? reactorNumber;
|
||||||
WorkOrder workOrder;
|
|
||||||
const string hyphen = "-";
|
const string hyphen = "-";
|
||||||
const string bioRad2 = "BIORAD2";
|
const string bioRad2 = "BIORAD2";
|
||||||
const string bioRad3 = "BIORAD3";
|
const string bioRad3 = "BIORAD3";
|
||||||
|
RunDataSheetRoot? runDataSheetRoot;
|
||||||
const string twoAlphaPattern = "^[a-zA-z]{2,3}";
|
const string twoAlphaPattern = "^[a-zA-z]{2,3}";
|
||||||
const string reactorNumberPattern = @"^[0-9]{2}--";
|
const string reactorNumberPattern = @"^[0-9]{2}--";
|
||||||
Input input = JsonSerializer.Deserialize<Input>(mid);
|
Input input = JsonSerializer.Deserialize<Input>(mid) ?? throw new Exception();
|
||||||
if (!long.TryParse(input.Sequence, out long sequence))
|
if (!long.TryParse(input.Sequence, out long sequence))
|
||||||
DateTime = DateTime.Now;
|
DateTime = DateTime.Now;
|
||||||
else
|
else
|
||||||
DateTime = new DateTime(sequence);
|
DateTime = new DateTime(sequence);
|
||||||
|
string? jobNames = GetJobNames(input);
|
||||||
const string dep08CEPIEPSILON = "DEP08CEPIEPSILON";
|
const string dep08CEPIEPSILON = "DEP08CEPIEPSILON";
|
||||||
if (input.EquipmentType == dep08CEPIEPSILON)
|
if (input.EquipmentType == dep08CEPIEPSILON)
|
||||||
(common, workOrder) = Get(input, httpClient);
|
common = ReactorGet(input, httpClient);
|
||||||
else if (!string.IsNullOrEmpty(input.MID) && !string.IsNullOrEmpty(input.MesEntity) && Regex.IsMatch(input.MID, reactorNumberPattern) && input.MesEntity is bioRad2 or bioRad3)
|
else if (!string.IsNullOrEmpty(input.MID) && !string.IsNullOrEmpty(input.MesEntity) && Regex.IsMatch(input.MID, reactorNumberPattern) && input.MesEntity is bioRad2 or bioRad3)
|
||||||
(common, workOrder) = Get(input, barcodeHostFileShare);
|
common = Get(input, barcodeHostFileShare, httpClient);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
workOrder = GetWorkOrder(input);
|
|
||||||
reactorNumber = GetReactorNumber(input);
|
reactorNumber = GetReactorNumber(input);
|
||||||
|
WorkOrder workOrder = GetWorkOrder(input);
|
||||||
if (workOrder.IsWorkOrder || reactorNumber.HasValue)
|
if (workOrder.IsWorkOrder || reactorNumber.HasValue)
|
||||||
common = new(string.Empty, string.Empty, null, null, string.Empty);
|
common = new(layer: null,
|
||||||
|
psn: null,
|
||||||
|
rdsNumber: null,
|
||||||
|
reactor: null,
|
||||||
|
zone: null,
|
||||||
|
employee: null,
|
||||||
|
runDataSheetRoot: null,
|
||||||
|
workOrder: workOrder);
|
||||||
else if (!string.IsNullOrEmpty(input.MID) && input.MID.Length is 2 or 3 && Regex.IsMatch(input.MID, twoAlphaPattern))
|
else if (!string.IsNullOrEmpty(input.MID) && input.MID.Length is 2 or 3 && Regex.IsMatch(input.MID, twoAlphaPattern))
|
||||||
common = Get(metrologyFileShare, input);
|
common = GetTwoAlphaPattern(metrologyFileShare, input);
|
||||||
else
|
else
|
||||||
common = Get(input);
|
common = Get(input, httpClient);
|
||||||
}
|
}
|
||||||
if (IsValid(common.RDSNumber))
|
bool isValid = IsValid(common.RDSNumber);
|
||||||
commonB = GetWithValidRDS(lsl2SQLConnectionString, common.Layer, common.PSN, common.RDSNumber, common.ReactorNumber, common.Zone);
|
if (common.RDSNumber is null || !isValid)
|
||||||
else if (workOrder.IsWorkOrder || common.RDSNumber.HasValue)
|
runDataSheetRoot = common.RunDataSheetRoot;
|
||||||
commonB = Get(lsl2SQLConnectionString, common.Layer, common.PSN, common.ReactorNumber, workOrder.SlotNumber, workOrder.WorkOrderNumber, workOrder.WorkOrderCassette, common.Zone);
|
|
||||||
else
|
else
|
||||||
commonB = new(hyphen, hyphen, common.RDSNumber, common.PSN, common.ReactorNumber, hyphen);
|
{
|
||||||
|
try
|
||||||
|
{ runDataSheetRoot = GetRunDataSheetRoot(httpClient, common.RDSNumber.Value); }
|
||||||
|
catch (Exception)
|
||||||
|
{ runDataSheetRoot = null; }
|
||||||
|
}
|
||||||
|
if (isValid)
|
||||||
|
runs = GetWithValidRDS(lsl2SQLConnectionString, enteredDateTimeFilter, loadSignatureDateTimeFilter, common);
|
||||||
|
else if (common.WorkOrder is null || common.WorkOrder.IsWorkOrder || common.RDSNumber.HasValue)
|
||||||
|
runs = Get(lsl2SQLConnectionString, enteredDateTimeFilter, loadSignatureDateTimeFilter, common);
|
||||||
|
else
|
||||||
|
runs = null;
|
||||||
|
commonB = CommonB.Get(common, runDataSheetRoot, runs);
|
||||||
|
if (string.IsNullOrEmpty(jobNames) || commonB.RDSNumber is null || commonB.ReactorNumber is null || string.IsNullOrEmpty(commonB.PSN))
|
||||||
|
basicType = hyphen;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int? runCount;
|
||||||
|
string commandText = GetCommandText(commonB, jobNames);
|
||||||
|
try
|
||||||
|
{ runCount = GetScalar(iqsSQLConnectionString, commandText); }
|
||||||
|
catch (Exception)
|
||||||
|
{ runCount = null; }
|
||||||
|
basicType = runCount is null ? hyphen : runCount.ToString();
|
||||||
|
}
|
||||||
Qty = "1";
|
Qty = "1";
|
||||||
Status = hyphen; // INFO
|
Status = hyphen; // INFO
|
||||||
CreationUser = hyphen; // ?
|
CreationUser = hyphen; // ?
|
||||||
LotState = hyphen; // LAYER2
|
LotState = hyphen; // LAYER2
|
||||||
LastUpdateUser = hyphen; // ?
|
|
||||||
Equipment = input.MesEntity; // ?
|
Equipment = input.MesEntity; // ?
|
||||||
PackageName = hyphen; // WAFER_ID
|
PackageName = hyphen; // WAFER_ID
|
||||||
Qty2 = input.Sequence; // SEQUENCE
|
Qty2 = input.Sequence; // SEQUENCE
|
||||||
RecipeName = input.Recipe; // PPID
|
RecipeName = input.Recipe; // PPID
|
||||||
|
BasicType = basicType; // BASIC_TYPE
|
||||||
IsAreaSi = input.Area == "Si"; // N/A
|
IsAreaSi = input.Area == "Si"; // N/A
|
||||||
StateModel = input.EquipmentType; // ?
|
StateModel = input.EquipmentType; // ?
|
||||||
JobName = DateTime.Ticks.ToString(); // ?
|
JobName = DateTime.Ticks.ToString(); // ?
|
||||||
@ -99,8 +134,8 @@ public partial class Job
|
|||||||
SpecName = !string.IsNullOrEmpty(commonB.Layer) ? commonB.Layer : hyphen; // LAYER
|
SpecName = !string.IsNullOrEmpty(commonB.Layer) ? commonB.Layer : hyphen; // LAYER
|
||||||
ProductName = !string.IsNullOrEmpty(commonB.PSN) ? commonB.PSN : hyphen; // PRODUCT
|
ProductName = !string.IsNullOrEmpty(commonB.PSN) ? commonB.PSN : hyphen; // PRODUCT
|
||||||
ProcessSpecName = !string.IsNullOrEmpty(commonB.Zone) ? commonB.Zone : hyphen; // WAFER_POS
|
ProcessSpecName = !string.IsNullOrEmpty(commonB.Zone) ? commonB.Zone : hyphen; // WAFER_POS
|
||||||
BasicType = !string.IsNullOrEmpty(commonB.Comment) ? commonB.Comment : hyphen; // BASIC_TYPE
|
LotName = commonB.RDSNumber is not null ? commonB.RDSNumber.Value.ToString() : input.MID; // MID
|
||||||
LotName = commonB.RDSNumber is not null ? commonB.RDSNumber.Value.ToString() : hyphen; // MID
|
LastUpdateUser = string.IsNullOrEmpty(runDataSheetRoot?.Json) ? "{}" : runDataSheetRoot.Json; // NULL_DATA
|
||||||
ProcessType = commonB.ReactorNumber is not null ? commonB.ReactorNumber.Value.ToString() : hyphen; // PROCESS_JOBID
|
ProcessType = commonB.ReactorNumber is not null ? commonB.ReactorNumber.Value.ToString() : hyphen; // PROCESS_JOBID
|
||||||
Items.Add(new Item { Name = "0", Type = "NA", Number = (0 + 1).ToString(), Qty = "1", CarrierName = hyphen });
|
Items.Add(new Item { Name = "0", Type = "NA", Number = (0 + 1).ToString(), Qty = "1", CarrierName = hyphen });
|
||||||
}
|
}
|
||||||
@ -121,6 +156,7 @@ public partial class Job
|
|||||||
|
|
||||||
private static WorkOrder GetWorkOrder(Input input)
|
private static WorkOrder GetWorkOrder(Input input)
|
||||||
{
|
{
|
||||||
|
WorkOrder result;
|
||||||
int? slotNumber;
|
int? slotNumber;
|
||||||
int? workOrderStep = null;
|
int? workOrderStep = null;
|
||||||
int? workOrderNumber = null;
|
int? workOrderNumber = null;
|
||||||
@ -154,48 +190,53 @@ public partial class Job
|
|||||||
slotNumber = null;
|
slotNumber = null;
|
||||||
else
|
else
|
||||||
slotNumber = slot;
|
slotNumber = slot;
|
||||||
return new(workOrderNumber, workOrderStep, workOrderCassette, slotNumber, workOrderStep is not null || workOrderNumber is not null || workOrderCassette is not null);
|
result = new(workOrderNumber: workOrderNumber,
|
||||||
|
workOrderStep: workOrderStep,
|
||||||
|
workOrderCassette: workOrderCassette,
|
||||||
|
slotNumber: slotNumber,
|
||||||
|
isWorkOrder: workOrderStep is not null || workOrderNumber is not null || workOrderCassette is not null);
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool IsValid(int? rdsNumber) => !IsInvalid(rdsNumber);
|
private static bool IsValid(int? rdsNumber) => !IsInvalid(rdsNumber);
|
||||||
|
|
||||||
private static bool IsInvalid(int? rdsNumber) => rdsNumber is null or < 100000 or > 100000000;
|
private static bool IsInvalid(int? rdsNumber) => rdsNumber is null or < 100000 or > 100000000;
|
||||||
|
|
||||||
private static (string, string) GetReactorAndRDS(string defaultReactor, string defaultRDS, string text, string formattedText, string[] segments)
|
private static (string?, string?) GetReactorAndRDS(string? text, string formattedText, string[] segments)
|
||||||
{
|
{
|
||||||
string rds;
|
string? rds;
|
||||||
string reactor;
|
string? reactor;
|
||||||
if (string.IsNullOrEmpty(text) || segments.Length == 0 || string.IsNullOrEmpty(formattedText))
|
if (string.IsNullOrEmpty(text) || segments.Length < 1 || string.IsNullOrEmpty(formattedText))
|
||||||
reactor = defaultReactor;
|
reactor = null;
|
||||||
else
|
else
|
||||||
reactor = segments[0];
|
reactor = segments[0];
|
||||||
if (segments.Length <= 1 || !int.TryParse(segments[1], out int rdsValue) || rdsValue < 99)
|
if (segments.Length < 2 || !int.TryParse(segments[1], out int rdsValue) || rdsValue < 99)
|
||||||
rds = defaultRDS;
|
rds = null;
|
||||||
else
|
else
|
||||||
rds = segments[1];
|
rds = segments[1];
|
||||||
if (reactor.Length > 3)
|
if (!string.IsNullOrEmpty(reactor) && reactor.Length > 3)
|
||||||
{
|
{
|
||||||
rds = reactor;
|
rds = reactor;
|
||||||
reactor = defaultReactor;
|
reactor = null;
|
||||||
}
|
}
|
||||||
return new(reactor, rds);
|
return new(reactor, rds);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static (string, string) GetLayerAndPSN(string defaultLayer, string defaultPSN, string[] segments)
|
private static (string?, string?) GetLayerAndPSN(string[] segments)
|
||||||
{
|
{
|
||||||
string psn;
|
string? psn;
|
||||||
string layer;
|
string? layer;
|
||||||
if (segments.Length <= 2)
|
if (segments.Length <= 2)
|
||||||
{
|
{
|
||||||
psn = defaultPSN;
|
psn = null;
|
||||||
layer = defaultLayer;
|
layer = null;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
string[] segmentsB = segments[2].Split('.');
|
string[] segmentsB = segments[2].Split('.');
|
||||||
psn = segmentsB[0];
|
psn = segmentsB[0];
|
||||||
if (segmentsB.Length <= 1)
|
if (segmentsB.Length <= 1)
|
||||||
layer = defaultLayer;
|
layer = null;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
layer = segmentsB[1];
|
layer = segmentsB[1];
|
||||||
@ -206,11 +247,11 @@ public partial class Job
|
|||||||
return (layer, psn);
|
return (layer, psn);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string GetZone(string[] segments)
|
private static string? GetZone(string[] segments)
|
||||||
{
|
{
|
||||||
string result;
|
string? result;
|
||||||
if (segments.Length <= 3)
|
if (segments.Length <= 3)
|
||||||
result = string.Empty;
|
result = null;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result = segments[3];
|
result = segments[3];
|
||||||
@ -220,41 +261,54 @@ public partial class Job
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Common Get(Input input)
|
private static Common Get(Input input, HttpClient httpClient)
|
||||||
{
|
{
|
||||||
string psn;
|
Common result;
|
||||||
string rds;
|
string? psn;
|
||||||
string zone;
|
string? rds;
|
||||||
string layer;
|
int rdsCheck;
|
||||||
int rdsNumber;
|
string? zone;
|
||||||
string reactor;
|
string? layer;
|
||||||
|
int? rdsNumber;
|
||||||
|
string? reactor;
|
||||||
|
string? employee;
|
||||||
int? reactorNumber;
|
int? reactorNumber;
|
||||||
string defaultPSN = string.Empty;
|
RunDataSheetRoot? runDataSheetRoot;
|
||||||
string defaultRDS = string.Empty;
|
string mid = string.IsNullOrEmpty(input.MID) ? string.Empty : input.MID;
|
||||||
string defaultLayer = string.Empty;
|
if (mid.Length > 2 && mid[0] == '1' && (mid[1] == 'T' || mid[1] == 't'))
|
||||||
string defaultReactor = string.Empty;
|
mid = mid.Substring(2);
|
||||||
string[] segments = input.MID.Split(new char[] { '-' });
|
mid = Regex.Replace(mid, @"[\\,\/,\:,\*,\?,\"",\<,\>,\|]", "_").Split('\r')[0].Split('\n')[0];
|
||||||
// bool hasRDS = Regex.IsMatch(input.MID, "[-]?([QP][0-9]{4,}|[0-9]{5,})[-]?");
|
string[] segments = mid.Split(new char[] { '-' });
|
||||||
string formattedText = Regex.Replace(input.MID, @"[\\,\/,\:,\*,\?,\"",\<,\>,\|]", "_").Split('\r')[0].Split('\n')[0];
|
// bool hasRDS = Regex.IsMatch(mid, "[-]?([QP][0-9]{4,}|[0-9]{5,})[-]?");
|
||||||
(reactor, rds) = GetReactorAndRDS(defaultReactor, defaultRDS, input.MID, formattedText, segments);
|
(reactor, rds) = GetReactorAndRDS(input.MID, mid, segments);
|
||||||
if (string.IsNullOrEmpty(rds) || segments.Length < 2)
|
rdsNumber = string.IsNullOrEmpty(rds) || !int.TryParse(rds, out rdsCheck) ? null : rdsCheck;
|
||||||
rdsNumber = 0;
|
bool isInvalid = IsInvalid(rdsNumber);
|
||||||
else
|
if (rdsNumber is null || isInvalid || !int.TryParse(reactor, out int reactorCheck))
|
||||||
_ = int.TryParse(segments[1], out rdsNumber);
|
|
||||||
if (IsInvalid(rdsNumber) || !int.TryParse(reactor, out int reactorCheck))
|
|
||||||
{
|
{
|
||||||
psn = string.Empty;
|
psn = null;
|
||||||
zone = string.Empty;
|
zone = null;
|
||||||
layer = string.Empty;
|
layer = null;
|
||||||
|
employee = null;
|
||||||
reactorNumber = null;
|
reactorNumber = null;
|
||||||
|
runDataSheetRoot = null;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
reactorNumber = reactorCheck;
|
|
||||||
(layer, psn) = GetLayerAndPSN(defaultLayer, defaultPSN, segments);
|
|
||||||
zone = GetZone(segments);
|
zone = GetZone(segments);
|
||||||
|
reactorNumber = reactorCheck;
|
||||||
|
(layer, psn) = GetLayerAndPSN(segments);
|
||||||
|
employee = segments.Length <= 4 ? null : segments[4];
|
||||||
|
runDataSheetRoot = GetRunDataSheetRoot(httpClient, rdsNumber.Value);
|
||||||
}
|
}
|
||||||
return new(layer, psn, rdsNumber, reactorNumber, zone);
|
result = new(layer: layer,
|
||||||
|
psn: psn,
|
||||||
|
rdsNumber: rdsNumber,
|
||||||
|
reactor: reactorNumber,
|
||||||
|
zone: zone,
|
||||||
|
employee: employee,
|
||||||
|
runDataSheetRoot: runDataSheetRoot,
|
||||||
|
workOrder: null);
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string[] GetDirectories(string fileShare)
|
private static string[] GetDirectories(string fileShare)
|
||||||
@ -271,18 +325,17 @@ public partial class Job
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
#nullable enable
|
private static Common GetTwoAlphaPattern(string metrologyFileShare, Input input)
|
||||||
|
|
||||||
private static Common Get(string metrologyFileShare, Input input)
|
|
||||||
{
|
{
|
||||||
|
Common result;
|
||||||
string lines;
|
string lines;
|
||||||
const int zero = 0;
|
const int zero = 0;
|
||||||
|
string? psn = null;
|
||||||
int? reactor = null;
|
int? reactor = null;
|
||||||
|
string? zone = null;
|
||||||
|
string? layer = null;
|
||||||
int? rdsNumber = null;
|
int? rdsNumber = null;
|
||||||
string psn = string.Empty;
|
|
||||||
List<string> files = new();
|
List<string> files = new();
|
||||||
string zone = string.Empty;
|
|
||||||
string layer = string.Empty;
|
|
||||||
WorkMaterialOut? workMaterialOut;
|
WorkMaterialOut? workMaterialOut;
|
||||||
if (string.IsNullOrEmpty(metrologyFileShare) || !Directory.Exists(metrologyFileShare))
|
if (string.IsNullOrEmpty(metrologyFileShare) || !Directory.Exists(metrologyFileShare))
|
||||||
throw new Exception($"Unable to access file-share <{metrologyFileShare}>");
|
throw new Exception($"Unable to access file-share <{metrologyFileShare}>");
|
||||||
@ -314,7 +367,15 @@ public partial class Job
|
|||||||
zone = workMaterialOut.Zone;
|
zone = workMaterialOut.Zone;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return new(layer, psn, rdsNumber, reactor, zone);
|
result = new(layer: layer,
|
||||||
|
psn: psn,
|
||||||
|
rdsNumber: rdsNumber,
|
||||||
|
reactor: reactor,
|
||||||
|
zone: zone,
|
||||||
|
employee: null,
|
||||||
|
runDataSheetRoot: null,
|
||||||
|
workOrder: null);
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<string> GetFiles(Input input, string barcodeHostFileShare)
|
private static List<string> GetFiles(Input input, string barcodeHostFileShare)
|
||||||
@ -353,74 +414,109 @@ public partial class Job
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static (Common common, WorkOrder workOrder) Get(Input input, HttpClient httpClient)
|
private static Common ReactorGet(Input input, HttpClient httpClient)
|
||||||
{
|
{
|
||||||
int? rds;
|
int? rds;
|
||||||
string psn;
|
string? psn;
|
||||||
Common common;
|
Common result;
|
||||||
WorkOrder workOrder;
|
string mid = string.IsNullOrEmpty(input.MID) ? string.Empty : input.MID;
|
||||||
Task<Stream> streamTask;
|
|
||||||
string zone = string.Empty;
|
|
||||||
string layer = string.Empty;
|
|
||||||
Task<HttpResponseMessage> httpResponseMessageTask;
|
|
||||||
JsonSerializerOptions jsonSerializerOptions = new() { PropertyNameCaseInsensitive = true };
|
JsonSerializerOptions jsonSerializerOptions = new() { PropertyNameCaseInsensitive = true };
|
||||||
int? reactor = !int.TryParse(input.MID.Substring(0, 2), out int reactorNumber) ? null : reactorNumber;
|
int? reactor = mid.Length < 2 || !int.TryParse(mid.Substring(0, 2), out int reactorNumber) ? null : reactorNumber;
|
||||||
httpResponseMessageTask = httpClient.GetAsync($"{httpClient.BaseAddress}/reactors/{reactor}");
|
char? loadLockSide = string.IsNullOrEmpty(input.LoadLock) || input.LoadLock[0] is not 'L' and not 'R' ? null : input.LoadLock[0];
|
||||||
httpResponseMessageTask.Wait();
|
ReactorRoot? reactorRoot = reactor is null || loadLockSide is null ? null : GetReactorRoot(httpClient, jsonSerializerOptions, reactor);
|
||||||
if (httpResponseMessageTask.Result.StatusCode != System.Net.HttpStatusCode.OK)
|
rds = loadLockSide is null ? null : loadLockSide == 'L' ? reactorRoot?.Reactor?.LoadLockLeftRDS : loadLockSide == 'R' ? reactorRoot?.Reactor?.LoadLockRightRDS : null;
|
||||||
throw new Exception($"Unable to OI <{httpResponseMessageTask.Result.StatusCode}>");
|
if (reactorRoot?.Reactor is null || reactor != reactorRoot.Reactor.ReactorNo || rds is null)
|
||||||
streamTask = httpResponseMessageTask.Result.Content.ReadAsStreamAsync();
|
|
||||||
streamTask.Wait();
|
|
||||||
if (!streamTask.Result.CanRead)
|
|
||||||
throw new NullReferenceException(nameof(streamTask));
|
|
||||||
ReactorRoot? reactorRoot = JsonSerializer.Deserialize<ReactorRoot>(streamTask.Result, jsonSerializerOptions);
|
|
||||||
streamTask.Result.Dispose();
|
|
||||||
if (reactorRoot is null || reactor != reactorRoot.Reactor.ReactorNo || reactorRoot.Reactor.LoadedRDS is null || reactorRoot.Reactor.LoadedRDS.Length < 1)
|
|
||||||
{
|
{
|
||||||
rds = null;
|
rds = null;
|
||||||
psn = string.Empty;
|
psn = null;
|
||||||
workOrder = new(null, null, null, null, false);
|
result = new(layer: null,
|
||||||
common = new(layer, psn, rds, reactor, zone);
|
psn: psn,
|
||||||
|
rdsNumber: rds,
|
||||||
|
reactor: reactor,
|
||||||
|
zone: null,
|
||||||
|
employee: null,
|
||||||
|
runDataSheetRoot: null,
|
||||||
|
workOrder: null);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
rds = reactorRoot.Reactor.LoadedRDS[0];
|
RunDataSheetRoot? runDataSheetRoot = GetRunDataSheetRoot(httpClient, rds.Value);
|
||||||
workOrder = new(null, null, null, null, false);
|
if (runDataSheetRoot?.RunDataSheet is null || reactor != runDataSheetRoot.RunDataSheet.Reactor)
|
||||||
httpResponseMessageTask = httpClient.GetAsync($"{httpClient.BaseAddress}/materials/rds/{rds}");
|
|
||||||
httpResponseMessageTask.Wait();
|
|
||||||
if (httpResponseMessageTask.Result.StatusCode != System.Net.HttpStatusCode.OK)
|
|
||||||
throw new Exception($"Unable to OI <{httpResponseMessageTask.Result.StatusCode}>");
|
|
||||||
streamTask = httpResponseMessageTask.Result.Content.ReadAsStreamAsync();
|
|
||||||
streamTask.Wait();
|
|
||||||
if (!streamTask.Result.CanRead)
|
|
||||||
throw new NullReferenceException(nameof(streamTask));
|
|
||||||
RunDataSheetRoot? runDataSheetRoot = JsonSerializer.Deserialize<RunDataSheetRoot>(streamTask.Result, jsonSerializerOptions);
|
|
||||||
streamTask.Result.Dispose();
|
|
||||||
if (runDataSheetRoot is null || reactor != runDataSheetRoot.RunDataSheet.Reactor)
|
|
||||||
{
|
{
|
||||||
psn = string.Empty;
|
psn = null;
|
||||||
common = new(layer, psn, rds, reactor, zone);
|
result = new(layer: null,
|
||||||
|
psn: psn,
|
||||||
|
rdsNumber: rds,
|
||||||
|
reactor: reactor,
|
||||||
|
zone: null,
|
||||||
|
employee: null,
|
||||||
|
runDataSheetRoot: runDataSheetRoot,
|
||||||
|
workOrder: null);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
psn = runDataSheetRoot.RunDataSheet.PSN.ToString();
|
psn = runDataSheetRoot.RunDataSheet.PSN.ToString();
|
||||||
common = new(layer, psn, rds, reactor, zone);
|
result = new(layer: null,
|
||||||
|
psn: psn,
|
||||||
|
rdsNumber: rds,
|
||||||
|
reactor: reactor,
|
||||||
|
zone: null,
|
||||||
|
employee: null,
|
||||||
|
runDataSheetRoot: runDataSheetRoot,
|
||||||
|
workOrder: null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new(common, workOrder);
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static (Common common, WorkOrder workOrder) Get(Input input, string barcodeHostFileShare)
|
private static ReactorRoot? GetReactorRoot(HttpClient httpClient, JsonSerializerOptions jsonSerializerOptions, int? reactor)
|
||||||
{
|
{
|
||||||
|
ReactorRoot? result;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Task<HttpResponseMessage> httpResponseMessageTask = httpClient.GetAsync($"{httpClient.BaseAddress}/reactors/{reactor}");
|
||||||
|
httpResponseMessageTask.Wait();
|
||||||
|
if (httpResponseMessageTask.Result.StatusCode != System.Net.HttpStatusCode.OK)
|
||||||
|
throw new Exception($"Unable to OI <{httpResponseMessageTask.Result.StatusCode}>");
|
||||||
|
using Task<Stream> streamTask = httpResponseMessageTask.Result.Content.ReadAsStreamAsync();
|
||||||
|
streamTask.Wait();
|
||||||
|
result = !streamTask.Result.CanRead ? null : JsonSerializer.Deserialize<ReactorRoot>(streamTask.Result, jsonSerializerOptions);
|
||||||
|
}
|
||||||
|
catch (Exception) { result = null; }
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static RunDataSheetRoot? GetRunDataSheetRoot(HttpClient httpClient, int rds)
|
||||||
|
{
|
||||||
|
RunDataSheetRoot? result;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
JsonSerializerOptions jsonSerializerOptions = new() { PropertyNameCaseInsensitive = true };
|
||||||
|
using Task<HttpResponseMessage> httpResponseMessageTask = httpClient.GetAsync($"{httpClient.BaseAddress}/materials/rds/{rds}");
|
||||||
|
httpResponseMessageTask.Wait();
|
||||||
|
if (httpResponseMessageTask.Result.StatusCode != System.Net.HttpStatusCode.OK)
|
||||||
|
throw new Exception($"Unable to OI <{httpResponseMessageTask.Result.StatusCode}>");
|
||||||
|
Task<string> json = httpResponseMessageTask.Result.Content.ReadAsStringAsync();
|
||||||
|
json.Wait();
|
||||||
|
result = JsonSerializer.Deserialize<RunDataSheetRoot>(json.Result, jsonSerializerOptions);
|
||||||
|
result ??= new RunDataSheetRoot(null);
|
||||||
|
result.Json = json.Result;
|
||||||
|
}
|
||||||
|
catch (Exception) { result = null; }
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Common Get(Input input, string barcodeHostFileShare, HttpClient httpClient)
|
||||||
|
{
|
||||||
|
Common result;
|
||||||
if (string.IsNullOrEmpty(barcodeHostFileShare) || !Directory.Exists(barcodeHostFileShare))
|
if (string.IsNullOrEmpty(barcodeHostFileShare) || !Directory.Exists(barcodeHostFileShare))
|
||||||
throw new Exception($"Unable to access file-share <{barcodeHostFileShare}>");
|
throw new Exception($"Unable to access file-share <{barcodeHostFileShare}>");
|
||||||
int? rds;
|
int? rds;
|
||||||
long sequence = 0;
|
long sequence = 0;
|
||||||
WorkOrder workOrder;
|
WorkOrder? workOrder;
|
||||||
string psn = string.Empty;
|
RunDataSheetRoot? runDataSheetRoot;
|
||||||
string zone = string.Empty;
|
string mid = string.IsNullOrEmpty(input.MID) ? string.Empty : input.MID;
|
||||||
string layer = string.Empty;
|
int? reactor = mid.Length < 2 || !int.TryParse(mid.Substring(0, 2), out int reactorNumber) ? null : reactorNumber;
|
||||||
int? reactor = !int.TryParse(input.MID.Substring(0, 2), out int reactorNumber) ? null : reactorNumber;
|
|
||||||
bool parsed = !string.IsNullOrEmpty(input.Sequence) && long.TryParse(input.Sequence, out sequence);
|
bool parsed = !string.IsNullOrEmpty(input.Sequence) && long.TryParse(input.Sequence, out sequence);
|
||||||
List<string> files;
|
List<string> files;
|
||||||
if (!parsed || string.IsNullOrEmpty(input.MID))
|
if (!parsed || string.IsNullOrEmpty(input.MID))
|
||||||
@ -431,30 +527,38 @@ public partial class Job
|
|||||||
if (text is null || text.Length < 3)
|
if (text is null || text.Length < 3)
|
||||||
{
|
{
|
||||||
rds = null;
|
rds = null;
|
||||||
workOrder = new(null, null, null, null, false);
|
workOrder = null;
|
||||||
|
runDataSheetRoot = null;
|
||||||
}
|
}
|
||||||
else if (!text.Contains('.'))
|
else if (!text.Contains('.'))
|
||||||
{
|
{
|
||||||
rds = !int.TryParse(text.Substring(2), out int rdsNumber) ? null : rdsNumber;
|
workOrder = null;
|
||||||
workOrder = new(null, null, null, null, false);
|
rds = !int.TryParse(text.Substring(2), out int rdsNumber) || IsInvalid(rdsNumber) ? null : rdsNumber;
|
||||||
|
runDataSheetRoot = rds is null ? null : GetRunDataSheetRoot(httpClient, rds.Value);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
rds = null;
|
rds = null;
|
||||||
|
runDataSheetRoot = null;
|
||||||
workOrder = GetWorkOrder(new(input, text.Substring(2)));
|
workOrder = GetWorkOrder(new(input, text.Substring(2)));
|
||||||
}
|
}
|
||||||
Common common = new(layer, psn, rds, reactor, zone);
|
result = new(layer: null,
|
||||||
return new(common, workOrder);
|
psn: null,
|
||||||
|
rdsNumber: rds,
|
||||||
|
reactor: reactor,
|
||||||
|
zone: null,
|
||||||
|
employee: null,
|
||||||
|
runDataSheetRoot: runDataSheetRoot,
|
||||||
|
workOrder: workOrder);
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
#nullable disable
|
private static string GetRunJson(string connectionString, string commandText)
|
||||||
|
|
||||||
private static string GetRunJson(string lsl2SQLConnectionString, string commandText)
|
|
||||||
{
|
{
|
||||||
StringBuilder result = new();
|
StringBuilder result = new();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
using SqlConnection sqlConnection = new(lsl2SQLConnectionString);
|
using SqlConnection sqlConnection = new(connectionString);
|
||||||
sqlConnection.Open();
|
sqlConnection.Open();
|
||||||
using SqlCommand sqlCommand = new(commandText, sqlConnection);
|
using SqlCommand sqlCommand = new(commandText, sqlConnection);
|
||||||
SqlDataReader sqlDataReader = sqlCommand.ExecuteReader(CommandBehavior.SequentialAccess);
|
SqlDataReader sqlDataReader = sqlCommand.ExecuteReader(CommandBehavior.SequentialAccess);
|
||||||
@ -468,180 +572,192 @@ public partial class Job
|
|||||||
return result.ToString();
|
return result.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string GetCommandText(int? rds, int? workOrderNumber, int? workOrderCassette, int? slot, int? reactor)
|
private static string GetCommandText(DateTime enteredDateTimeFilter, DateTime loadSignatureDateTimeFilter, int? rds, int? workOrderNumber, int? workOrderCassette, int? slot, int? reactor)
|
||||||
{ // cSpell:disable
|
{ // cSpell:disable
|
||||||
StringBuilder result = new();
|
List<string> results = new();
|
||||||
_ = result.Append(" select ").
|
int rdsValue = rds is null ? -1 : rds.Value;
|
||||||
Append(" rr.rds_no ").
|
int slotValue = slot is null ? -1 : slot.Value;
|
||||||
Append(" , rr.reactor ").
|
int reactorValue = reactor is null ? -1 : reactor.Value;
|
||||||
Append(" , rr.ps_no ").
|
int workOrderNumberValue = workOrderNumber is null ? -1 : workOrderNumber.Value;
|
||||||
Append(" , rr.load_lock_side ").
|
int workOrderCassetteValue = workOrderCassette is null ? -1 : workOrderCassette.Value;
|
||||||
Append(" , rr.reactor_type ").
|
results.Add(" select ");
|
||||||
Append(" , rr.recipe_name ").
|
results.Add(" rr.rds_no ");
|
||||||
Append(" , rr.recipe_no ").
|
results.Add(" , rr.reactor ");
|
||||||
Append(" , rr.spec_type ").
|
results.Add(" , rr.ps_no ");
|
||||||
Append(" , ( ").
|
results.Add(" , rr.load_lock_side ");
|
||||||
Append(" select max(wm.zone) ").
|
results.Add(" , rr.reactor_type ");
|
||||||
Append(" from lsl2sql.dbo.wm_out_slot wm ").
|
results.Add(" , rr.recipe_name ");
|
||||||
Append(" where wm.wo_no = rr.wo_no ").
|
results.Add(" , rr.recipe_no ");
|
||||||
Append(" and wm.rds = rr.rds_no ").
|
results.Add(" , rr.spec_type ");
|
||||||
Append(" and wm.in_cass_no = ").Append(workOrderCassette is null ? -1 : workOrderCassette.Value).Append(' ').
|
results.Add(" , ( ");
|
||||||
Append(" and wm.slot_no = ").Append(slot is null ? -1 : slot.Value).Append(' ').
|
results.Add(" select max(wm.zone) ");
|
||||||
Append(" ) zone ").
|
results.Add(" from lsl2sql.dbo.wm_out_slot wm ");
|
||||||
Append(" from lsl2sql.dbo.react_run rr ").
|
results.Add(" where wm.wo_no = rr.wo_no ");
|
||||||
Append(" where rr.rds_no = ").Append(rds is null ? -1 : rds.Value).Append(' ').
|
results.Add(" and wm.rds = rr.rds_no ");
|
||||||
Append(" union all ").
|
results.Add($" and wm.in_cass_no = {workOrderCassetteValue}");
|
||||||
Append(" select ").
|
results.Add($" and wm.slot_no = {slotValue}");
|
||||||
Append(" rr.rds_no ").
|
results.Add(" ) zone ");
|
||||||
Append(" , rr.reactor ").
|
results.Add(" from lsl2sql.dbo.react_run rr ");
|
||||||
Append(" , rr.ps_no ").
|
results.Add($" where rr.rds_no = {rdsValue}");
|
||||||
Append(" , rr.load_lock_side ").
|
results.Add($" and rr.enter_dtm > '{enteredDateTimeFilter:yyyy-MM-dd} 00:00:00.000' ");
|
||||||
Append(" , rr.reactor_type ").
|
results.Add(" union all ");
|
||||||
Append(" , rr.recipe_name ").
|
results.Add(" select ");
|
||||||
Append(" , rr.recipe_no ").
|
results.Add(" rr.rds_no ");
|
||||||
Append(" , rr.spec_type ").
|
results.Add(" , rr.reactor ");
|
||||||
Append(" , ( ").
|
results.Add(" , rr.ps_no ");
|
||||||
Append(" select max(wm.zone) ").
|
results.Add(" , rr.load_lock_side ");
|
||||||
Append(" from lsl2sql.dbo.wm_out_slot wm ").
|
results.Add(" , rr.reactor_type ");
|
||||||
Append(" where wm.wo_no = rr.wo_no ").
|
results.Add(" , rr.recipe_name ");
|
||||||
Append(" and wm.rds = rr.rds_no ").
|
results.Add(" , rr.recipe_no ");
|
||||||
Append(" and wm.in_cass_no = ").Append(workOrderCassette is null ? -1 : workOrderCassette.Value).Append(' ').
|
results.Add(" , rr.spec_type ");
|
||||||
Append(" and wm.slot_no = ").Append(slot is null ? -1 : slot.Value).Append(' ').
|
results.Add(" , ( ");
|
||||||
Append(" ) zone ").
|
results.Add(" select max(wm.zone) ");
|
||||||
Append(" from lsl2sql.dbo.react_run rr ").
|
results.Add(" from lsl2sql.dbo.wm_out_slot wm ");
|
||||||
Append(" where rr.rds_no = ( ").
|
results.Add(" where wm.wo_no = rr.wo_no ");
|
||||||
Append(" select max(wm.rds) ").
|
results.Add(" and wm.rds = rr.rds_no ");
|
||||||
Append(" from lsl2sql.dbo.wm_out_slot wm ").
|
results.Add($" and wm.in_cass_no = {workOrderCassetteValue}");
|
||||||
Append(" where wm.wo_no = ").Append(workOrderNumber is null ? -1 : workOrderNumber.Value).Append(' ').
|
results.Add($" and wm.slot_no = {slotValue}");
|
||||||
Append(" and wm.in_cass_no = ").Append(workOrderCassette is null ? -1 : workOrderCassette.Value).Append(' ').
|
results.Add(" ) zone ");
|
||||||
Append(" and wm.slot_no = ").Append(slot is null ? -1 : slot.Value).Append(' ').
|
results.Add(" from lsl2sql.dbo.react_run rr ");
|
||||||
Append(" ) ").
|
results.Add(" where rr.rds_no = ( ");
|
||||||
Append(" union all ").
|
results.Add(" select max(wm.rds) ");
|
||||||
Append(" select ").
|
results.Add(" from lsl2sql.dbo.wm_out_slot wm ");
|
||||||
Append(" rr.rds_no ").
|
results.Add($" where wm.wo_no = {workOrderNumberValue}");
|
||||||
Append(" , rr.reactor ").
|
results.Add($" and wm.in_cass_no = {workOrderCassetteValue}");
|
||||||
Append(" , rr.ps_no ").
|
results.Add($" and wm.slot_no = {slotValue}");
|
||||||
Append(" , rr.load_lock_side ").
|
results.Add(" ) ");
|
||||||
Append(" , rr.reactor_type ").
|
results.Add(" union all ");
|
||||||
Append(" , rr.recipe_name ").
|
results.Add(" select ");
|
||||||
Append(" , rr.recipe_no ").
|
results.Add(" rr.rds_no ");
|
||||||
Append(" , rr.spec_type ").
|
results.Add(" , rr.reactor ");
|
||||||
Append(" , ( ").
|
results.Add(" , rr.ps_no ");
|
||||||
Append(" select max(wm.zone) ").
|
results.Add(" , rr.load_lock_side ");
|
||||||
Append(" from lsl2sql.dbo.wm_out_slot wm ").
|
results.Add(" , rr.reactor_type ");
|
||||||
Append(" where wm.wo_no = rr.wo_no ").
|
results.Add(" , rr.recipe_name ");
|
||||||
Append(" and wm.rds = rr.rds_no ").
|
results.Add(" , rr.recipe_no ");
|
||||||
Append(" and wm.in_cass_no = ").Append(workOrderCassette is null ? -1 : workOrderCassette.Value).Append(' ').
|
results.Add(" , rr.spec_type ");
|
||||||
Append(" and wm.slot_no = ").Append(slot is null ? -1 : slot.Value).Append(' ').
|
results.Add(" , ( ");
|
||||||
Append(" ) zone ").
|
results.Add(" select max(wm.zone) ");
|
||||||
Append(" from lsl2sql.dbo.react_run rr ").
|
results.Add(" from lsl2sql.dbo.wm_out_slot wm ");
|
||||||
Append(" where rr.rds_no = ( ").
|
results.Add(" where wm.wo_no = rr.wo_no ");
|
||||||
Append(" select max(qa.rds_no) ").
|
results.Add(" and wm.rds = rr.rds_no ");
|
||||||
Append(" from lsl2sql.dbo.react_run qa ").
|
results.Add($" and wm.in_cass_no = {workOrderCassetteValue}");
|
||||||
Append(" where qa.load_sig != '' ").
|
results.Add($" and wm.slot_no = {slotValue}");
|
||||||
Append(" and qa.load_sig_dtm > '2023-05-01 00:00:00.000' ").
|
results.Add(" ) zone ");
|
||||||
Append(" and qa.reactor = ").Append(reactor is null ? -1 : reactor.Value).Append(' ').
|
results.Add(" from lsl2sql.dbo.react_run rr ");
|
||||||
Append(" ) ").
|
results.Add(" where rr.rds_no = ( ");
|
||||||
Append(" for json path ");
|
results.Add(" select max(qa.rds_no) ");
|
||||||
return result.ToString();
|
results.Add(" from lsl2sql.dbo.react_run qa ");
|
||||||
|
results.Add(" where qa.load_sig != '' ");
|
||||||
|
results.Add($" and qa.load_sig_dtm > '{loadSignatureDateTimeFilter:yyyy-MM-dd} 00:00:00.000' ");
|
||||||
|
results.Add($" and qa.reactor = {reactorValue}");
|
||||||
|
results.Add(" ) ");
|
||||||
|
results.Add(" for json path ");
|
||||||
|
return string.Join(Environment.NewLine, results);
|
||||||
} // cSpell:restore
|
} // cSpell:restore
|
||||||
|
|
||||||
private static CommonB Get(string lsl2SQLConnectionString, string layer, string psn, int? reactorNumber, int? slotNumber, int? workOrderNumber, int? workOrderCassette, string zone)
|
private static Run[]? Get(string lsl2SQLConnectionString, DateTime enteredDateTimeFilter, DateTime loadSignatureDateTimeFilter, Common common)
|
||||||
{
|
{
|
||||||
int? rdsNumber;
|
Run[]? results;
|
||||||
string comment;
|
string commandText = GetCommandText(enteredDateTimeFilter,
|
||||||
const int zero = 0;
|
loadSignatureDateTimeFilter,
|
||||||
const string hyphen = "-";
|
rds: null,
|
||||||
string commandText = GetCommandText(rds: null, workOrderNumber, workOrderCassette, slotNumber, reactorNumber);
|
workOrderNumber: common.WorkOrder?.WorkOrderNumber,
|
||||||
|
workOrderCassette: common.WorkOrder?.WorkOrderCassette,
|
||||||
|
slot: common.WorkOrder?.SlotNumber,
|
||||||
|
reactor: common.ReactorNumber);
|
||||||
string json = GetRunJson(lsl2SQLConnectionString, commandText);
|
string json = GetRunJson(lsl2SQLConnectionString, commandText);
|
||||||
if (string.IsNullOrEmpty(json))
|
if (string.IsNullOrEmpty(json))
|
||||||
{
|
results = null;
|
||||||
rdsNumber = null;
|
|
||||||
comment = hyphen;
|
|
||||||
psn = string.Empty;
|
|
||||||
zone = string.Empty;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Run[] runs;
|
|
||||||
try
|
try
|
||||||
{ runs = JsonSerializer.Deserialize<Run[]>(json); }
|
{ results = JsonSerializer.Deserialize<Run[]>(json); }
|
||||||
catch (Exception)
|
catch (Exception)
|
||||||
{ runs = Array.Empty<Run>(); }
|
{ results = Array.Empty<Run>(); }
|
||||||
if (runs.Length == 0)
|
|
||||||
{
|
|
||||||
rdsNumber = null;
|
|
||||||
comment = hyphen;
|
|
||||||
psn = string.Empty;
|
|
||||||
zone = string.Empty;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
rdsNumber = runs[zero].RdsNo;
|
|
||||||
if (string.IsNullOrEmpty(psn))
|
|
||||||
psn = runs[zero].PSN;
|
|
||||||
if (string.IsNullOrEmpty(zone))
|
|
||||||
zone = runs[zero].Zone;
|
|
||||||
if (string.IsNullOrEmpty(layer))
|
|
||||||
layer = runs[zero].EpiLayer;
|
|
||||||
reactorNumber = runs[zero].Reactor;
|
|
||||||
string loadLockSide = runs[zero].LoadLockSide;
|
|
||||||
string loadLockSideFull = loadLockSide switch
|
|
||||||
{
|
|
||||||
"L" => "Left",
|
|
||||||
"R" => "Right",
|
|
||||||
_ => loadLockSide,
|
|
||||||
};
|
|
||||||
comment = $"{loadLockSideFull} - {runs[zero].ReactorType}";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return new(comment, layer, rdsNumber, psn, reactorNumber, zone);
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static CommonB GetWithValidRDS(string lsl2SQLConnectionString, string layer, string psn, int? rdsNumber, int? reactorNumber, string zone)
|
private static Run[]? GetWithValidRDS(string lsl2SQLConnectionString, DateTime enteredDateTimeFilter, DateTime loadSignatureDateTimeFilter, Common common)
|
||||||
{
|
{
|
||||||
string comment;
|
Run[]? results;
|
||||||
const int zero = 0;
|
string commandText = GetCommandText(enteredDateTimeFilter,
|
||||||
const string hyphen = "-";
|
loadSignatureDateTimeFilter,
|
||||||
string commandText = GetCommandText(rdsNumber, workOrderNumber: null, workOrderCassette: null, slot: null, reactor: null);
|
rds: common.RDSNumber,
|
||||||
|
workOrderNumber: null,
|
||||||
|
workOrderCassette: null,
|
||||||
|
slot: null,
|
||||||
|
reactor: null);
|
||||||
string json = GetRunJson(lsl2SQLConnectionString, commandText);
|
string json = GetRunJson(lsl2SQLConnectionString, commandText);
|
||||||
if (string.IsNullOrEmpty(json))
|
if (string.IsNullOrEmpty(json))
|
||||||
{
|
results = null;
|
||||||
comment = hyphen;
|
|
||||||
zone = string.Empty;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Run[] runs;
|
|
||||||
try
|
try
|
||||||
{ runs = JsonSerializer.Deserialize<Run[]>(json); }
|
{ results = JsonSerializer.Deserialize<Run[]>(json); }
|
||||||
catch (Exception)
|
catch (Exception)
|
||||||
{ runs = Array.Empty<Run>(); }
|
{ results = Array.Empty<Run>(); }
|
||||||
if (runs.Length == 0)
|
|
||||||
{
|
|
||||||
comment = hyphen;
|
|
||||||
zone = string.Empty;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (string.IsNullOrEmpty(psn))
|
|
||||||
psn = runs[zero].PSN;
|
|
||||||
if (string.IsNullOrEmpty(zone))
|
|
||||||
zone = runs[zero].Zone;
|
|
||||||
if (string.IsNullOrEmpty(layer))
|
|
||||||
layer = runs[zero].EpiLayer;
|
|
||||||
reactorNumber = runs[zero].Reactor;
|
|
||||||
string loadLockSide = runs[zero].LoadLockSide;
|
|
||||||
string loadLockSideFull = loadLockSide switch
|
|
||||||
{
|
|
||||||
"L" => "Left",
|
|
||||||
"R" => "Right",
|
|
||||||
_ => loadLockSide,
|
|
||||||
};
|
|
||||||
comment = $"{loadLockSideFull} - {runs[zero].ReactorType}";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return new(comment, layer, rdsNumber, psn, reactorNumber, zone);
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string? GetJobNames(Input input) =>
|
||||||
|
input.EquipmentType switch
|
||||||
|
{
|
||||||
|
"MET08ANLYSDIFAAST230" => "'SPV01'",
|
||||||
|
"MET08DDUPSFS6420" => "'TENCOR1','TENCOR2','TENCOR3'",
|
||||||
|
"MET08DDUPSP1TBI" => "'SP101'",
|
||||||
|
"MET08RESIHGCV" => "'HGCV1','HGCV2','HGCV3'",
|
||||||
|
"MET08RESIMAPCDE" => "'CDE1','CDE2','CDE3','CDE4','CDE5','CDE6'",
|
||||||
|
"MET08RESISRP2100" => "'SRP'",
|
||||||
|
"MET08THFTIRQS408M" => "'BIORAD2','BIORAD3','BIORAD4','BIORAD5'",
|
||||||
|
"MET08THFTIRSTRATUS" => "'BIORAD4','BIORAD5'",
|
||||||
|
_ => null,
|
||||||
|
};
|
||||||
|
|
||||||
|
private static string GetCommandText(CommonB commonB, string jobNames)
|
||||||
|
{ // cSpell:disable
|
||||||
|
List<string> results = new();
|
||||||
|
results.Add(" select count(distinct(se.f_sgrp)) count_se_sgrp ");
|
||||||
|
results.Add(" from [spcepiworld].[dbo].[sgrp_ext] se ");
|
||||||
|
results.Add(" join [spcepiworld].[dbo].[prcs_dat] pr ");
|
||||||
|
results.Add(" on se.f_prcs = pr.f_prcs ");
|
||||||
|
results.Add(" join [spcepiworld].[dbo].[job_dat] jd ");
|
||||||
|
results.Add(" on se.f_job = jd.f_job ");
|
||||||
|
results.Add(" join [spcepiworld].[dbo].[part_lot] pl ");
|
||||||
|
results.Add(" on se.f_lot = pl.f_lot ");
|
||||||
|
results.Add(" join [spcepiworld].[dbo].[part_dat] pd ");
|
||||||
|
results.Add(" on se.f_part = pd.f_part ");
|
||||||
|
results.Add(" join [spcepiworld].[dbo].[test_dat] td ");
|
||||||
|
results.Add(" on se.f_test = td.f_test ");
|
||||||
|
results.Add(" where se.f_flag = 0 ");
|
||||||
|
results.Add($" and pl.f_name = '{commonB.RDSNumber}' ");
|
||||||
|
results.Add($" and pr.f_name = '{commonB.ReactorNumber}' ");
|
||||||
|
results.Add($" and pd.f_name = '{commonB.PSN}' ");
|
||||||
|
results.Add($" and jd.f_name in ({jobNames}) ");
|
||||||
|
return string.Join(Environment.NewLine, results);
|
||||||
|
} // cSpell:restore
|
||||||
|
|
||||||
|
private static int? GetScalar(string connectionString, string commandText)
|
||||||
|
{
|
||||||
|
int? result;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using SqlConnection sqlConnection = new(connectionString);
|
||||||
|
sqlConnection.Open();
|
||||||
|
using SqlCommand sqlCommand = new(commandText, sqlConnection);
|
||||||
|
object scalar = sqlCommand.ExecuteScalar();
|
||||||
|
if (scalar is null || !int.TryParse(scalar.ToString(), out int value))
|
||||||
|
result = null;
|
||||||
|
else
|
||||||
|
result = value;
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
result = null;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -17,19 +17,21 @@ internal partial class Main
|
|||||||
private static object _IfxTransport;
|
private static object _IfxTransport;
|
||||||
private static string _CellInstanceName;
|
private static string _CellInstanceName;
|
||||||
private static string _MetrologyFileShare;
|
private static string _MetrologyFileShare;
|
||||||
|
private static string _IQSConnectionString;
|
||||||
private static string _BarcodeHostFileShare;
|
private static string _BarcodeHostFileShare;
|
||||||
private static string _LSL2SQLConnectionString;
|
private static string _LSL2SQLConnectionString;
|
||||||
private static string _TibcoParameterSubjectPrefix;
|
private static string _TibcoParameterSubjectPrefix;
|
||||||
private static HttpClient _HttpClient;
|
private static HttpClient _HttpClient;
|
||||||
private static FileConnectorConfiguration _FileConnectorConfiguration;
|
private static FileConnectorConfiguration _FileConnectorConfiguration;
|
||||||
|
|
||||||
internal static void Initialize(ISMTP smtp, string cellInstanceName, FileConnectorConfiguration fileConnectorConfiguration, string lsl2SQLConnectionString, string metrologyFileShare, string barcodeHostFileShare, HttpClient httpClient)
|
internal static void Initialize(ISMTP smtp, string cellInstanceName, FileConnectorConfiguration fileConnectorConfiguration, string iqsConnectionString, string lsl2SQLConnectionString, string metrologyFileShare, string barcodeHostFileShare, HttpClient httpClient)
|
||||||
{
|
{
|
||||||
_SMTP = smtp;
|
_SMTP = smtp;
|
||||||
_IfxTransport = null;
|
_IfxTransport = null;
|
||||||
_HttpClient = httpClient;
|
_HttpClient = httpClient;
|
||||||
_CellInstanceName = cellInstanceName;
|
_CellInstanceName = cellInstanceName;
|
||||||
_MetrologyFileShare = metrologyFileShare;
|
_MetrologyFileShare = metrologyFileShare;
|
||||||
|
_IQSConnectionString = iqsConnectionString;
|
||||||
_TibcoParameterSubjectPrefix = string.Empty;
|
_TibcoParameterSubjectPrefix = string.Empty;
|
||||||
_BarcodeHostFileShare = barcodeHostFileShare;
|
_BarcodeHostFileShare = barcodeHostFileShare;
|
||||||
_LSL2SQLConnectionString = lsl2SQLConnectionString;
|
_LSL2SQLConnectionString = lsl2SQLConnectionString;
|
||||||
@ -167,13 +169,12 @@ internal partial class Main
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
string mid = string.Empty;
|
|
||||||
string[] sourceFiles = null;
|
string[] sourceFiles = null;
|
||||||
DateTime dateTime = DateTime.Now;
|
DateTime dateTime = DateTime.Now;
|
||||||
string pdsfFileLogistics = string.Empty;
|
|
||||||
IfxDoc envelopeDocument = ifxEnvelope.ExtractDocument();
|
|
||||||
CultureInfo cultureInfo = new("en-US");
|
CultureInfo cultureInfo = new("en-US");
|
||||||
|
string pdsfFileLogistics = string.Empty;
|
||||||
Calendar calendar = cultureInfo.Calendar;
|
Calendar calendar = cultureInfo.Calendar;
|
||||||
|
IfxDoc envelopeDocument = ifxEnvelope.ExtractDocument();
|
||||||
string weekOfYear = calendar.GetWeekOfYear(dateTime, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00");
|
string weekOfYear = calendar.GetWeekOfYear(dateTime, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00");
|
||||||
string weekOfYearSegment = string.Concat(@"\", dateTime.ToString("yyyy"), "_Week_", weekOfYear, @"\", dateTime.ToString("yyyy-MM-dd"));
|
string weekOfYearSegment = string.Concat(@"\", dateTime.ToString("yyyy"), "_Week_", weekOfYear, @"\", dateTime.ToString("yyyy-MM-dd"));
|
||||||
if (!string.IsNullOrEmpty(_FileConnectorConfiguration.SourceFileLocation))
|
if (!string.IsNullOrEmpty(_FileConnectorConfiguration.SourceFileLocation))
|
||||||
@ -188,8 +189,10 @@ internal partial class Main
|
|||||||
}
|
}
|
||||||
if (!subject.Contains(_TibcoParameterSubjectPrefix))
|
if (!subject.Contains(_TibcoParameterSubjectPrefix))
|
||||||
throw new Exception("Invalid Subject");
|
throw new Exception("Invalid Subject");
|
||||||
mid = GetJobsMID(envelopeDocument);
|
string mid = GetJobsMID(envelopeDocument);
|
||||||
Job job = new(_LSL2SQLConnectionString, _MetrologyFileShare, _BarcodeHostFileShare, _HttpClient, mid);
|
DateTime enteredDateTimeFilter = dateTime.AddDays(-356);
|
||||||
|
DateTime loadSignatureDateTimeFilter = dateTime.AddDays(-4);
|
||||||
|
Job job = new(_IQSConnectionString, _LSL2SQLConnectionString, _MetrologyFileShare, _BarcodeHostFileShare, _HttpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
if (job.IsAreaSi)
|
if (job.IsAreaSi)
|
||||||
{
|
{
|
||||||
IfxDoc sendReply = GetJobsReply(job);
|
IfxDoc sendReply = GetJobsReply(job);
|
||||||
|
|||||||
@ -6,13 +6,15 @@ public class Reactor
|
|||||||
{
|
{
|
||||||
|
|
||||||
[JsonConstructor]
|
[JsonConstructor]
|
||||||
public Reactor(int reactorNo, int[] loadedRDS)
|
public Reactor(int reactorNo, int? loadLockLeftRDS, int? loadLockRightRDS)
|
||||||
{
|
{
|
||||||
|
LoadLockLeftRDS = loadLockLeftRDS;
|
||||||
|
LoadLockRightRDS = loadLockRightRDS;
|
||||||
ReactorNo = reactorNo;
|
ReactorNo = reactorNo;
|
||||||
LoadedRDS = loadedRDS;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[JsonPropertyName("reactorNo")] public int ReactorNo { get; } // { init; get; }
|
[JsonPropertyName("reactorNo")] public int ReactorNo { get; } // { init; get; }
|
||||||
[JsonPropertyName("loadedRDS")] public int[] LoadedRDS { get; } // { init; get; }
|
[JsonPropertyName("loadLockLeftRDS")] public int? LoadLockLeftRDS { get; } // { init; get; }
|
||||||
|
[JsonPropertyName("loadLockRightRDS")] public int? LoadLockRightRDS { get; } // { init; get; }
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -2,13 +2,15 @@ using System.Text.Json.Serialization;
|
|||||||
|
|
||||||
namespace Adaptation.FileHandlers.TIBCO.Transport;
|
namespace Adaptation.FileHandlers.TIBCO.Transport;
|
||||||
|
|
||||||
|
#nullable enable
|
||||||
|
|
||||||
public class ReactorRoot
|
public class ReactorRoot
|
||||||
{
|
{
|
||||||
|
|
||||||
[JsonConstructor]
|
[JsonConstructor]
|
||||||
public ReactorRoot(Reactor reactor) =>
|
public ReactorRoot(Reactor? reactor) =>
|
||||||
Reactor = reactor;
|
Reactor = reactor;
|
||||||
|
|
||||||
[JsonPropertyName("reactor")] public Reactor Reactor { get; } // { init; get; }
|
[JsonPropertyName("reactor")] public Reactor? Reactor { get; } // { init; get; }
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -24,17 +24,11 @@ public class Run
|
|||||||
public string PartNo { get; set; }
|
public string PartNo { get; set; }
|
||||||
|
|
||||||
[JsonPropertyName("reactor")]
|
[JsonPropertyName("reactor")]
|
||||||
public int Reactor { get; set; }
|
public int? Reactor { get; set; }
|
||||||
|
|
||||||
[JsonPropertyName("ps_no")]
|
[JsonPropertyName("ps_no")]
|
||||||
public string PSN { get; set; }
|
public string PSN { get; set; }
|
||||||
|
|
||||||
[JsonPropertyName("load_lock_side")]
|
|
||||||
public string LoadLockSide { get; set; }
|
|
||||||
|
|
||||||
[JsonPropertyName("reactor_type")]
|
|
||||||
public string ReactorType { get; set; }
|
|
||||||
|
|
||||||
[JsonPropertyName("recipe_name")]
|
[JsonPropertyName("recipe_name")]
|
||||||
public string RecipeName { get; set; }
|
public string RecipeName { get; set; }
|
||||||
|
|
||||||
|
|||||||
@ -6,13 +6,23 @@ public class RunDataSheet
|
|||||||
{
|
{
|
||||||
|
|
||||||
[JsonConstructor]
|
[JsonConstructor]
|
||||||
public RunDataSheet(int psn, int reactor)
|
public RunDataSheet(string loadLockSide,
|
||||||
|
int number,
|
||||||
|
int psn,
|
||||||
|
int reactor,
|
||||||
|
string reactorType)
|
||||||
{
|
{
|
||||||
PSN = psn;
|
PSN = psn;
|
||||||
|
Number = number;
|
||||||
|
LoadLockSide = loadLockSide;
|
||||||
Reactor = reactor;
|
Reactor = reactor;
|
||||||
|
ReactorType = reactorType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[JsonPropertyName("keyId")] public int Number { get; } // { init; get; }
|
||||||
|
[JsonPropertyName("loadLockSide")] public string LoadLockSide { get; } // { init; get; }
|
||||||
[JsonPropertyName("PSN")] public int PSN { get; } // { init; get; }
|
[JsonPropertyName("PSN")] public int PSN { get; } // { init; get; }
|
||||||
[JsonPropertyName("reactor")] public int Reactor { get; } // { init; get; }
|
[JsonPropertyName("reactor")] public int Reactor { get; } // { init; get; }
|
||||||
|
[JsonPropertyName("reactorType")] public string ReactorType { get; } // { init; get; }
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -2,13 +2,16 @@ using System.Text.Json.Serialization;
|
|||||||
|
|
||||||
namespace Adaptation.FileHandlers.TIBCO.Transport;
|
namespace Adaptation.FileHandlers.TIBCO.Transport;
|
||||||
|
|
||||||
|
#nullable enable
|
||||||
|
|
||||||
public class RunDataSheetRoot
|
public class RunDataSheetRoot
|
||||||
{
|
{
|
||||||
|
|
||||||
[JsonConstructor]
|
[JsonConstructor]
|
||||||
public RunDataSheetRoot(RunDataSheet runDataSheet) =>
|
public RunDataSheetRoot(RunDataSheet? runDataSheet) =>
|
||||||
RunDataSheet = runDataSheet;
|
RunDataSheet = runDataSheet;
|
||||||
|
|
||||||
[JsonPropertyName("rds")] public RunDataSheet RunDataSheet { get; } // { init; get; }
|
public string? Json { get; set; }
|
||||||
|
[JsonPropertyName("rds")] public RunDataSheet? RunDataSheet { get; } // { init; get; }
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -9,7 +9,11 @@ public class WorkOrder
|
|||||||
public int? SlotNumber { get; }
|
public int? SlotNumber { get; }
|
||||||
public bool IsWorkOrder { get; }
|
public bool IsWorkOrder { get; }
|
||||||
|
|
||||||
public WorkOrder(int? workOrderNumber, int? workOrderStep, int? workOrderCassette, int? slotNumber, bool isWorkOrder)
|
public WorkOrder(int? workOrderNumber,
|
||||||
|
int? workOrderStep,
|
||||||
|
int? workOrderCassette,
|
||||||
|
int? slotNumber,
|
||||||
|
bool isWorkOrder)
|
||||||
{
|
{
|
||||||
WorkOrderNumber = workOrderNumber;
|
WorkOrderNumber = workOrderNumber;
|
||||||
WorkOrderStep = workOrderStep;
|
WorkOrderStep = workOrderStep;
|
||||||
|
|||||||
@ -4,341 +4,344 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
namespace Adaptation.FileHandlers.txt;
|
namespace Adaptation.FileHandlers.txt;
|
||||||
|
|
||||||
public class Description : IDescription, Shared.Properties.IDescription
|
public class Description : IDescription, Shared.Properties.IDescription
|
||||||
{
|
{
|
||||||
|
|
||||||
public int Test { get; set; }
|
[JsonPropertyName("EventId")] public int Test { get; set; }
|
||||||
public int Count { get; set; }
|
[JsonPropertyName("Count")] public int Count { get; set; }
|
||||||
public int Index { get; set; }
|
[JsonPropertyName("Index")] public int Index { get; set; }
|
||||||
//
|
//
|
||||||
public string EventName { get; set; }
|
public string EventName { get; set; }
|
||||||
public string NullData { get; set; }
|
public string NullData { get; set; }
|
||||||
public string JobID { get; set; }
|
public string JobID { get; set; }
|
||||||
public string Sequence { get; set; }
|
public string Sequence { get; set; }
|
||||||
public string MesEntity { get; set; }
|
[JsonPropertyName("MesEntity")] public string MesEntity { get; set; }
|
||||||
public string ReportFullPath { get; set; }
|
public string ReportFullPath { get; set; }
|
||||||
public string ProcessJobID { get; set; }
|
public string ProcessJobID { get; set; }
|
||||||
public string MID { get; set; }
|
public string MID { get; set; }
|
||||||
//
|
//
|
||||||
public string Date { get; set; }
|
[JsonPropertyName("Date")] public string Date { get; set; }
|
||||||
public string Employee { get; set; }
|
[JsonPropertyName("Employee")] public string Employee { get; set; }
|
||||||
public string Lot { get; set; }
|
[JsonPropertyName("Lot")] public string Lot { get; set; }
|
||||||
public string PSN { get; set; }
|
[JsonPropertyName("PSN")] public string PSN { get; set; }
|
||||||
public string Reactor { get; set; }
|
[JsonPropertyName("Reactor")] public string Reactor { get; set; }
|
||||||
public string Recipe { get; set; }
|
public string Recipe { get; set; }
|
||||||
|
[JsonPropertyName("IndexOf")] public string IndexOf { get; set; }
|
||||||
|
[JsonPropertyName("AttemptCounter")] public string AttemptCounter { get; set; }
|
||||||
//
|
//
|
||||||
public string Grade { get; set; }
|
[JsonPropertyName("Grade")] public string Grade { get; set; }
|
||||||
public string HeaderUniqueId { get; set; }
|
public string HeaderUniqueId { get; set; }
|
||||||
public string RDS { get; set; }
|
[JsonPropertyName("RDS")] public string RDS { get; set; }
|
||||||
public string Session { get; set; }
|
[JsonPropertyName("Session")] public string Session { get; set; }
|
||||||
public string Side { get; set; }
|
[JsonPropertyName("Side")] public string Side { get; set; }
|
||||||
public string SrcDest { get; set; }
|
[JsonPropertyName("SrcDest")] public string SrcDest { get; set; }
|
||||||
public string UniqueId { get; set; }
|
public string UniqueId { get; set; }
|
||||||
public string WaferID { get; set; }
|
[JsonPropertyName("WaferID")] public string WaferID { get; set; }
|
||||||
//
|
//
|
||||||
public string DcnAllMax { get; set; }
|
[JsonPropertyName("DcnAllMax")] public string DcnAllMax { get; set; }
|
||||||
public string DcnAllMean { get; set; }
|
[JsonPropertyName("DcnAllMean")] public string DcnAllMean { get; set; }
|
||||||
public string DcnAllMin { get; set; }
|
[JsonPropertyName("DcnAllMin")] public string DcnAllMin { get; set; }
|
||||||
public string DcnAllStdDev { get; set; }
|
[JsonPropertyName("DcnAllStdDev")] public string DcnAllStdDev { get; set; }
|
||||||
public string DcnAreaCountMax { get; set; }
|
[JsonPropertyName("DcnAreaCountMax")] public string DcnAreaCountMax { get; set; }
|
||||||
public string DcnAreaCountMean { get; set; }
|
[JsonPropertyName("DcnAreaCountMean")] public string DcnAreaCountMean { get; set; }
|
||||||
public string DcnAreaCountMin { get; set; }
|
[JsonPropertyName("DcnAreaCountMin")] public string DcnAreaCountMin { get; set; }
|
||||||
public string DcnAreaCountStdDev { get; set; }
|
[JsonPropertyName("DcnAreaCountStdDev")] public string DcnAreaCountStdDev { get; set; }
|
||||||
public string DcnAreaMax { get; set; }
|
[JsonPropertyName("DcnAreaMax")] public string DcnAreaMax { get; set; }
|
||||||
public string DcnAreaMean { get; set; }
|
[JsonPropertyName("DcnAreaMean")] public string DcnAreaMean { get; set; }
|
||||||
public string DcnAreaMin { get; set; }
|
[JsonPropertyName("DcnAreaMin")] public string DcnAreaMin { get; set; }
|
||||||
public string DcnAreaStdDev { get; set; }
|
[JsonPropertyName("DcnAreaStdDev")] public string DcnAreaStdDev { get; set; }
|
||||||
public string DcnBin1Max { get; set; }
|
[JsonPropertyName("DcnBin1Max")] public string DcnBin1Max { get; set; }
|
||||||
public string DcnBin1Mean { get; set; }
|
[JsonPropertyName("DcnBin1Mean")] public string DcnBin1Mean { get; set; }
|
||||||
public string DcnBin1Min { get; set; }
|
[JsonPropertyName("DcnBin1Min")] public string DcnBin1Min { get; set; }
|
||||||
public string DcnBin1StdDev { get; set; }
|
[JsonPropertyName("DcnBin1StdDev")] public string DcnBin1StdDev { get; set; }
|
||||||
public string DcnBin2Max { get; set; }
|
[JsonPropertyName("DcnBin2Max")] public string DcnBin2Max { get; set; }
|
||||||
public string DcnBin2Mean { get; set; }
|
[JsonPropertyName("DcnBin2Mean")] public string DcnBin2Mean { get; set; }
|
||||||
public string DcnBin2Min { get; set; }
|
[JsonPropertyName("DcnBin2Min")] public string DcnBin2Min { get; set; }
|
||||||
public string DcnBin2StdDev { get; set; }
|
[JsonPropertyName("DcnBin2StdDev")] public string DcnBin2StdDev { get; set; }
|
||||||
public string DcnBin3Max { get; set; }
|
[JsonPropertyName("DcnBin3Max")] public string DcnBin3Max { get; set; }
|
||||||
public string DcnBin3Mean { get; set; }
|
[JsonPropertyName("DcnBin3Mean")] public string DcnBin3Mean { get; set; }
|
||||||
public string DcnBin3Min { get; set; }
|
[JsonPropertyName("DcnBin3Min")] public string DcnBin3Min { get; set; }
|
||||||
public string DcnBin3StdDev { get; set; }
|
[JsonPropertyName("DcnBin3StdDev")] public string DcnBin3StdDev { get; set; }
|
||||||
public string DcnBin4Max { get; set; }
|
[JsonPropertyName("DcnBin4Max")] public string DcnBin4Max { get; set; }
|
||||||
public string DcnBin4Mean { get; set; }
|
[JsonPropertyName("DcnBin4Mean")] public string DcnBin4Mean { get; set; }
|
||||||
public string DcnBin4Min { get; set; }
|
[JsonPropertyName("DcnBin4Min")] public string DcnBin4Min { get; set; }
|
||||||
public string DcnBin4StdDev { get; set; }
|
[JsonPropertyName("DcnBin4StdDev")] public string DcnBin4StdDev { get; set; }
|
||||||
public string DcnBin5Max { get; set; }
|
[JsonPropertyName("DcnBin5Max")] public string DcnBin5Max { get; set; }
|
||||||
public string DcnBin5Mean { get; set; }
|
[JsonPropertyName("DcnBin5Mean")] public string DcnBin5Mean { get; set; }
|
||||||
public string DcnBin5Min { get; set; }
|
[JsonPropertyName("DcnBin5Min")] public string DcnBin5Min { get; set; }
|
||||||
public string DcnBin5StdDev { get; set; }
|
[JsonPropertyName("DcnBin5StdDev")] public string DcnBin5StdDev { get; set; }
|
||||||
public string DcnBin6Max { get; set; }
|
[JsonPropertyName("DcnBin6Max")] public string DcnBin6Max { get; set; }
|
||||||
public string DcnBin6Mean { get; set; }
|
[JsonPropertyName("DcnBin6Mean")] public string DcnBin6Mean { get; set; }
|
||||||
public string DcnBin6Min { get; set; }
|
[JsonPropertyName("DcnBin6Min")] public string DcnBin6Min { get; set; }
|
||||||
public string DcnBin6StdDev { get; set; }
|
[JsonPropertyName("DcnBin6StdDev")] public string DcnBin6StdDev { get; set; }
|
||||||
public string DcnBin7Max { get; set; }
|
[JsonPropertyName("DcnBin7Max")] public string DcnBin7Max { get; set; }
|
||||||
public string DcnBin7Mean { get; set; }
|
[JsonPropertyName("DcnBin7Mean")] public string DcnBin7Mean { get; set; }
|
||||||
public string DcnBin7Min { get; set; }
|
[JsonPropertyName("DcnBin7Min")] public string DcnBin7Min { get; set; }
|
||||||
public string DcnBin7StdDev { get; set; }
|
[JsonPropertyName("DcnBin7StdDev")] public string DcnBin7StdDev { get; set; }
|
||||||
public string DcnBin8Max { get; set; }
|
[JsonPropertyName("DcnBin8Max")] public string DcnBin8Max { get; set; }
|
||||||
public string DcnBin8Mean { get; set; }
|
[JsonPropertyName("DcnBin8Mean")] public string DcnBin8Mean { get; set; }
|
||||||
public string DcnBin8Min { get; set; }
|
[JsonPropertyName("DcnBin8Min")] public string DcnBin8Min { get; set; }
|
||||||
public string DcnBin8StdDev { get; set; }
|
[JsonPropertyName("DcnBin8StdDev")] public string DcnBin8StdDev { get; set; }
|
||||||
public string DcnHazeAvgMax { get; set; }
|
[JsonPropertyName("DcnHazeAvgMax")] public string DcnHazeAvgMax { get; set; }
|
||||||
public string DcnHazeAvgMean { get; set; }
|
[JsonPropertyName("DcnHazeAvgMean")] public string DcnHazeAvgMean { get; set; }
|
||||||
public string DcnHazeAvgMin { get; set; }
|
[JsonPropertyName("DcnHazeAvgMin")] public string DcnHazeAvgMin { get; set; }
|
||||||
public string DcnHazeAvgStdDev { get; set; }
|
[JsonPropertyName("DcnHazeAvgStdDev")] public string DcnHazeAvgStdDev { get; set; }
|
||||||
public string DcnHazeMedianMax { get; set; }
|
[JsonPropertyName("DcnHazeMedianMax")] public string DcnHazeMedianMax { get; set; }
|
||||||
public string DcnHazeMedianMean { get; set; }
|
[JsonPropertyName("DcnHazeMedianMean")] public string DcnHazeMedianMean { get; set; }
|
||||||
public string DcnHazeMedianMin { get; set; }
|
[JsonPropertyName("DcnHazeMedianMin")] public string DcnHazeMedianMin { get; set; }
|
||||||
public string DcnHazeMedianStdDev { get; set; }
|
[JsonPropertyName("DcnHazeMedianStdDev")] public string DcnHazeMedianStdDev { get; set; }
|
||||||
public string DcnHazeStdDevMax { get; set; }
|
[JsonPropertyName("DcnHazeStdDevMax")] public string DcnHazeStdDevMax { get; set; }
|
||||||
public string DcnHazeStdDevMean { get; set; }
|
[JsonPropertyName("DcnHazeStdDevMean")] public string DcnHazeStdDevMean { get; set; }
|
||||||
public string DcnHazeStdDevMin { get; set; }
|
[JsonPropertyName("DcnHazeStdDevMin")] public string DcnHazeStdDevMin { get; set; }
|
||||||
public string DcnHazeStdDevStdDev { get; set; }
|
[JsonPropertyName("DcnHazeStdDevStdDev")] public string DcnHazeStdDevStdDev { get; set; }
|
||||||
public string DcnLpdESMax { get; set; }
|
[JsonPropertyName("DcnLpdESMax")] public string DcnLpdESMax { get; set; }
|
||||||
public string DcnLpdESMean { get; set; }
|
[JsonPropertyName("DcnLpdESMean")] public string DcnLpdESMean { get; set; }
|
||||||
public string DcnLpdESMin { get; set; }
|
[JsonPropertyName("DcnLpdESMin")] public string DcnLpdESMin { get; set; }
|
||||||
public string DcnLpdESStdDev { get; set; }
|
[JsonPropertyName("DcnLpdESStdDev")] public string DcnLpdESStdDev { get; set; }
|
||||||
public string DcnLpdMax { get; set; }
|
[JsonPropertyName("DcnLpdMax")] public string DcnLpdMax { get; set; }
|
||||||
public string DcnLpdMean { get; set; }
|
[JsonPropertyName("DcnLpdMean")] public string DcnLpdMean { get; set; }
|
||||||
public string DcnLpdMin { get; set; }
|
[JsonPropertyName("DcnLpdMin")] public string DcnLpdMin { get; set; }
|
||||||
public string DcnLpdNMax { get; set; }
|
[JsonPropertyName("DcnLpdNMax")] public string DcnLpdNMax { get; set; }
|
||||||
public string DcnLpdNMean { get; set; }
|
[JsonPropertyName("DcnLpdNMean")] public string DcnLpdNMean { get; set; }
|
||||||
public string DcnLpdNMin { get; set; }
|
[JsonPropertyName("DcnLpdNMin")] public string DcnLpdNMin { get; set; }
|
||||||
public string DcnLpdNStdDev { get; set; }
|
[JsonPropertyName("DcnLpdNStdDev")] public string DcnLpdNStdDev { get; set; }
|
||||||
public string DcnLpdStdDev { get; set; }
|
[JsonPropertyName("DcnLpdStdDev")] public string DcnLpdStdDev { get; set; }
|
||||||
public string DcnMicroScrMax { get; set; }
|
[JsonPropertyName("DcnMicroScrMax")] public string DcnMicroScrMax { get; set; }
|
||||||
public string DcnMicroScrMean { get; set; }
|
[JsonPropertyName("DcnMicroScrMean")] public string DcnMicroScrMean { get; set; }
|
||||||
public string DcnMicroScrMin { get; set; }
|
[JsonPropertyName("DcnMicroScrMin")] public string DcnMicroScrMin { get; set; }
|
||||||
public string DcnMicroScrStdDev { get; set; }
|
[JsonPropertyName("DcnMicroScrStdDev")] public string DcnMicroScrStdDev { get; set; }
|
||||||
public string DcnScrMax { get; set; }
|
[JsonPropertyName("DcnScrMax")] public string DcnScrMax { get; set; }
|
||||||
public string DcnScrMean { get; set; }
|
[JsonPropertyName("DcnScrMean")] public string DcnScrMean { get; set; }
|
||||||
public string DcnScrMin { get; set; }
|
[JsonPropertyName("DcnScrMin")] public string DcnScrMin { get; set; }
|
||||||
public string DcnScrStdDev { get; set; }
|
[JsonPropertyName("DcnScrStdDev")] public string DcnScrStdDev { get; set; }
|
||||||
public string DcnSlipMax { get; set; }
|
[JsonPropertyName("DcnSlipMax")] public string DcnSlipMax { get; set; }
|
||||||
public string DcnSlipMean { get; set; }
|
[JsonPropertyName("DcnSlipMean")] public string DcnSlipMean { get; set; }
|
||||||
public string DcnSlipMin { get; set; }
|
[JsonPropertyName("DcnSlipMin")] public string DcnSlipMin { get; set; }
|
||||||
public string DcnSlipStdDev { get; set; }
|
[JsonPropertyName("DcnSlipStdDev")] public string DcnSlipStdDev { get; set; }
|
||||||
public string DnnAllMax { get; set; }
|
[JsonPropertyName("DnnAllMax")] public string DnnAllMax { get; set; }
|
||||||
public string DnnAllMean { get; set; }
|
[JsonPropertyName("DnnAllMean")] public string DnnAllMean { get; set; }
|
||||||
public string DnnAllMin { get; set; }
|
[JsonPropertyName("DnnAllMin")] public string DnnAllMin { get; set; }
|
||||||
public string DnnAllStdDev { get; set; }
|
[JsonPropertyName("DnnAllStdDev")] public string DnnAllStdDev { get; set; }
|
||||||
public string DnnAreaCountMax { get; set; }
|
[JsonPropertyName("DnnAreaCountMax")] public string DnnAreaCountMax { get; set; }
|
||||||
public string DnnAreaCountMean { get; set; }
|
[JsonPropertyName("DnnAreaCountMean")] public string DnnAreaCountMean { get; set; }
|
||||||
public string DnnAreaCountMin { get; set; }
|
[JsonPropertyName("DnnAreaCountMin")] public string DnnAreaCountMin { get; set; }
|
||||||
public string DnnAreaCountStdDev { get; set; }
|
[JsonPropertyName("DnnAreaCountStdDev")] public string DnnAreaCountStdDev { get; set; }
|
||||||
public string DnnAreaMax { get; set; }
|
[JsonPropertyName("DnnAreaMax")] public string DnnAreaMax { get; set; }
|
||||||
public string DnnAreaMean { get; set; }
|
[JsonPropertyName("DnnAreaMean")] public string DnnAreaMean { get; set; }
|
||||||
public string DnnAreaMin { get; set; }
|
[JsonPropertyName("DnnAreaMin")] public string DnnAreaMin { get; set; }
|
||||||
public string DnnAreaStdDev { get; set; }
|
[JsonPropertyName("DnnAreaStdDev")] public string DnnAreaStdDev { get; set; }
|
||||||
public string DnnBin1Max { get; set; }
|
[JsonPropertyName("DnnBin1Max")] public string DnnBin1Max { get; set; }
|
||||||
public string DnnBin1Mean { get; set; }
|
[JsonPropertyName("DnnBin1Mean")] public string DnnBin1Mean { get; set; }
|
||||||
public string DnnBin1Min { get; set; }
|
[JsonPropertyName("DnnBin1Min")] public string DnnBin1Min { get; set; }
|
||||||
public string DnnBin1StdDev { get; set; }
|
[JsonPropertyName("DnnBin1StdDev")] public string DnnBin1StdDev { get; set; }
|
||||||
public string DnnBin2Max { get; set; }
|
[JsonPropertyName("DnnBin2Max")] public string DnnBin2Max { get; set; }
|
||||||
public string DnnBin2Mean { get; set; }
|
[JsonPropertyName("DnnBin2Mean")] public string DnnBin2Mean { get; set; }
|
||||||
public string DnnBin2Min { get; set; }
|
[JsonPropertyName("DnnBin2Min")] public string DnnBin2Min { get; set; }
|
||||||
public string DnnBin2StdDev { get; set; }
|
[JsonPropertyName("DnnBin2StdDev")] public string DnnBin2StdDev { get; set; }
|
||||||
public string DnnBin3Max { get; set; }
|
[JsonPropertyName("DnnBin3Max")] public string DnnBin3Max { get; set; }
|
||||||
public string DnnBin3Mean { get; set; }
|
[JsonPropertyName("DnnBin3Mean")] public string DnnBin3Mean { get; set; }
|
||||||
public string DnnBin3Min { get; set; }
|
[JsonPropertyName("DnnBin3Min")] public string DnnBin3Min { get; set; }
|
||||||
public string DnnBin3StdDev { get; set; }
|
[JsonPropertyName("DnnBin3StdDev")] public string DnnBin3StdDev { get; set; }
|
||||||
public string DnnBin4Max { get; set; }
|
[JsonPropertyName("DnnBin4Max")] public string DnnBin4Max { get; set; }
|
||||||
public string DnnBin4Mean { get; set; }
|
[JsonPropertyName("DnnBin4Mean")] public string DnnBin4Mean { get; set; }
|
||||||
public string DnnBin4Min { get; set; }
|
[JsonPropertyName("DnnBin4Min")] public string DnnBin4Min { get; set; }
|
||||||
public string DnnBin4StdDev { get; set; }
|
[JsonPropertyName("DnnBin4StdDev")] public string DnnBin4StdDev { get; set; }
|
||||||
public string DnnBin5Max { get; set; }
|
[JsonPropertyName("DnnBin5Max")] public string DnnBin5Max { get; set; }
|
||||||
public string DnnBin5Mean { get; set; }
|
[JsonPropertyName("DnnBin5Mean")] public string DnnBin5Mean { get; set; }
|
||||||
public string DnnBin5Min { get; set; }
|
[JsonPropertyName("DnnBin5Min")] public string DnnBin5Min { get; set; }
|
||||||
public string DnnBin5StdDev { get; set; }
|
[JsonPropertyName("DnnBin5StdDev")] public string DnnBin5StdDev { get; set; }
|
||||||
public string DnnBin6Max { get; set; }
|
[JsonPropertyName("DnnBin6Max")] public string DnnBin6Max { get; set; }
|
||||||
public string DnnBin6Mean { get; set; }
|
[JsonPropertyName("DnnBin6Mean")] public string DnnBin6Mean { get; set; }
|
||||||
public string DnnBin6Min { get; set; }
|
[JsonPropertyName("DnnBin6Min")] public string DnnBin6Min { get; set; }
|
||||||
public string DnnBin6StdDev { get; set; }
|
[JsonPropertyName("DnnBin6StdDev")] public string DnnBin6StdDev { get; set; }
|
||||||
public string DnnBin7Max { get; set; }
|
[JsonPropertyName("DnnBin7Max")] public string DnnBin7Max { get; set; }
|
||||||
public string DnnBin7Mean { get; set; }
|
[JsonPropertyName("DnnBin7Mean")] public string DnnBin7Mean { get; set; }
|
||||||
public string DnnBin7Min { get; set; }
|
[JsonPropertyName("DnnBin7Min")] public string DnnBin7Min { get; set; }
|
||||||
public string DnnBin7StdDev { get; set; }
|
[JsonPropertyName("DnnBin7StdDev")] public string DnnBin7StdDev { get; set; }
|
||||||
public string DnnBin8Max { get; set; }
|
[JsonPropertyName("DnnBin8Max")] public string DnnBin8Max { get; set; }
|
||||||
public string DnnBin8Mean { get; set; }
|
[JsonPropertyName("DnnBin8Mean")] public string DnnBin8Mean { get; set; }
|
||||||
public string DnnBin8Min { get; set; }
|
[JsonPropertyName("DnnBin8Min")] public string DnnBin8Min { get; set; }
|
||||||
public string DnnBin8StdDev { get; set; }
|
[JsonPropertyName("DnnBin8StdDev")] public string DnnBin8StdDev { get; set; }
|
||||||
public string DnnHazeAvgMax { get; set; }
|
[JsonPropertyName("DnnHazeAvgMax")] public string DnnHazeAvgMax { get; set; }
|
||||||
public string DnnHazeAvgMean { get; set; }
|
[JsonPropertyName("DnnHazeAvgMean")] public string DnnHazeAvgMean { get; set; }
|
||||||
public string DnnHazeAvgMin { get; set; }
|
[JsonPropertyName("DnnHazeAvgMin")] public string DnnHazeAvgMin { get; set; }
|
||||||
public string DnnHazeAvgStdDev { get; set; }
|
[JsonPropertyName("DnnHazeAvgStdDev")] public string DnnHazeAvgStdDev { get; set; }
|
||||||
public string DnnHazeMedianMax { get; set; }
|
[JsonPropertyName("DnnHazeMedianMax")] public string DnnHazeMedianMax { get; set; }
|
||||||
public string DnnHazeMedianMean { get; set; }
|
[JsonPropertyName("DnnHazeMedianMean")] public string DnnHazeMedianMean { get; set; }
|
||||||
public string DnnHazeMedianMin { get; set; }
|
[JsonPropertyName("DnnHazeMedianMin")] public string DnnHazeMedianMin { get; set; }
|
||||||
public string DnnHazeMedianStdDev { get; set; }
|
[JsonPropertyName("DnnHazeMedianStdDev")] public string DnnHazeMedianStdDev { get; set; }
|
||||||
public string DnnHazeStdDevMax { get; set; }
|
[JsonPropertyName("DnnHazeStdDevMax")] public string DnnHazeStdDevMax { get; set; }
|
||||||
public string DnnHazeStdDevMean { get; set; }
|
[JsonPropertyName("DnnHazeStdDevMean")] public string DnnHazeStdDevMean { get; set; }
|
||||||
public string DnnHazeStdDevMin { get; set; }
|
[JsonPropertyName("DnnHazeStdDevMin")] public string DnnHazeStdDevMin { get; set; }
|
||||||
public string DnnHazeStdDevStdDev { get; set; }
|
[JsonPropertyName("DnnHazeStdDevStdDev")] public string DnnHazeStdDevStdDev { get; set; }
|
||||||
public string DnnLpdESMax { get; set; }
|
[JsonPropertyName("DnnLpdESMax")] public string DnnLpdESMax { get; set; }
|
||||||
public string DnnLpdESMean { get; set; }
|
[JsonPropertyName("DnnLpdESMean")] public string DnnLpdESMean { get; set; }
|
||||||
public string DnnLpdESMin { get; set; }
|
[JsonPropertyName("DnnLpdESMin")] public string DnnLpdESMin { get; set; }
|
||||||
public string DnnLpdESStdDev { get; set; }
|
[JsonPropertyName("DnnLpdESStdDev")] public string DnnLpdESStdDev { get; set; }
|
||||||
public string DnnLpdMax { get; set; }
|
[JsonPropertyName("DnnLpdMax")] public string DnnLpdMax { get; set; }
|
||||||
public string DnnLpdMean { get; set; }
|
[JsonPropertyName("DnnLpdMean")] public string DnnLpdMean { get; set; }
|
||||||
public string DnnLpdMin { get; set; }
|
[JsonPropertyName("DnnLpdMin")] public string DnnLpdMin { get; set; }
|
||||||
public string DnnLpdNMax { get; set; }
|
[JsonPropertyName("DnnLpdNMax")] public string DnnLpdNMax { get; set; }
|
||||||
public string DnnLpdNMean { get; set; }
|
[JsonPropertyName("DnnLpdNMean")] public string DnnLpdNMean { get; set; }
|
||||||
public string DnnLpdNMin { get; set; }
|
[JsonPropertyName("DnnLpdNMin")] public string DnnLpdNMin { get; set; }
|
||||||
public string DnnLpdNStdDev { get; set; }
|
[JsonPropertyName("DnnLpdNStdDev")] public string DnnLpdNStdDev { get; set; }
|
||||||
public string DnnLpdStdDev { get; set; }
|
[JsonPropertyName("DnnLpdStdDev")] public string DnnLpdStdDev { get; set; }
|
||||||
public string DnnMicroScrMax { get; set; }
|
[JsonPropertyName("DnnMicroScrMax")] public string DnnMicroScrMax { get; set; }
|
||||||
public string DnnMicroScrMean { get; set; }
|
[JsonPropertyName("DnnMicroScrMean")] public string DnnMicroScrMean { get; set; }
|
||||||
public string DnnMicroScrMin { get; set; }
|
[JsonPropertyName("DnnMicroScrMin")] public string DnnMicroScrMin { get; set; }
|
||||||
public string DnnMicroScrStdDev { get; set; }
|
[JsonPropertyName("DnnMicroScrStdDev")] public string DnnMicroScrStdDev { get; set; }
|
||||||
public string DnnScrMax { get; set; }
|
[JsonPropertyName("DnnScrMax")] public string DnnScrMax { get; set; }
|
||||||
public string DnnScrMean { get; set; }
|
[JsonPropertyName("DnnScrMean")] public string DnnScrMean { get; set; }
|
||||||
public string DnnScrMin { get; set; }
|
[JsonPropertyName("DnnScrMin")] public string DnnScrMin { get; set; }
|
||||||
public string DnnScrStdDev { get; set; }
|
[JsonPropertyName("DnnScrStdDev")] public string DnnScrStdDev { get; set; }
|
||||||
public string DnnSlipMax { get; set; }
|
[JsonPropertyName("DnnSlipMax")] public string DnnSlipMax { get; set; }
|
||||||
public string DnnSlipMean { get; set; }
|
[JsonPropertyName("DnnSlipMean")] public string DnnSlipMean { get; set; }
|
||||||
public string DnnSlipMin { get; set; }
|
[JsonPropertyName("DnnSlipMin")] public string DnnSlipMin { get; set; }
|
||||||
public string DnnSlipStdDev { get; set; }
|
[JsonPropertyName("DnnSlipStdDev")] public string DnnSlipStdDev { get; set; }
|
||||||
public string DwnAllMax { get; set; }
|
[JsonPropertyName("DwnAllMax")] public string DwnAllMax { get; set; }
|
||||||
public string DwnAllMean { get; set; }
|
[JsonPropertyName("DwnAllMean")] public string DwnAllMean { get; set; }
|
||||||
public string DwnAllMin { get; set; }
|
[JsonPropertyName("DwnAllMin")] public string DwnAllMin { get; set; }
|
||||||
public string DwnAllStdDev { get; set; }
|
[JsonPropertyName("DwnAllStdDev")] public string DwnAllStdDev { get; set; }
|
||||||
public string DwnAreaCountMax { get; set; }
|
[JsonPropertyName("DwnAreaCountMax")] public string DwnAreaCountMax { get; set; }
|
||||||
public string DwnAreaCountMean { get; set; }
|
[JsonPropertyName("DwnAreaCountMean")] public string DwnAreaCountMean { get; set; }
|
||||||
public string DwnAreaCountMin { get; set; }
|
[JsonPropertyName("DwnAreaCountMin")] public string DwnAreaCountMin { get; set; }
|
||||||
public string DwnAreaCountStdDev { get; set; }
|
[JsonPropertyName("DwnAreaCountStdDev")] public string DwnAreaCountStdDev { get; set; }
|
||||||
public string DwnAreaMax { get; set; }
|
[JsonPropertyName("DwnAreaMax")] public string DwnAreaMax { get; set; }
|
||||||
public string DwnAreaMean { get; set; }
|
[JsonPropertyName("DwnAreaMean")] public string DwnAreaMean { get; set; }
|
||||||
public string DwnAreaMin { get; set; }
|
[JsonPropertyName("DwnAreaMin")] public string DwnAreaMin { get; set; }
|
||||||
public string DwnAreaStdDev { get; set; }
|
[JsonPropertyName("DwnAreaStdDev")] public string DwnAreaStdDev { get; set; }
|
||||||
public string DwnBin1Max { get; set; }
|
[JsonPropertyName("DwnBin1Max")] public string DwnBin1Max { get; set; }
|
||||||
public string DwnBin1Mean { get; set; }
|
[JsonPropertyName("DwnBin1Mean")] public string DwnBin1Mean { get; set; }
|
||||||
public string DwnBin1Min { get; set; }
|
[JsonPropertyName("DwnBin1Min")] public string DwnBin1Min { get; set; }
|
||||||
public string DwnBin1StdDev { get; set; }
|
[JsonPropertyName("DwnBin1StdDev")] public string DwnBin1StdDev { get; set; }
|
||||||
public string DwnBin2Max { get; set; }
|
[JsonPropertyName("DwnBin2Max")] public string DwnBin2Max { get; set; }
|
||||||
public string DwnBin2Mean { get; set; }
|
[JsonPropertyName("DwnBin2Mean")] public string DwnBin2Mean { get; set; }
|
||||||
public string DwnBin2Min { get; set; }
|
[JsonPropertyName("DwnBin2Min")] public string DwnBin2Min { get; set; }
|
||||||
public string DwnBin2StdDev { get; set; }
|
[JsonPropertyName("DwnBin2StdDev")] public string DwnBin2StdDev { get; set; }
|
||||||
public string DwnBin3Max { get; set; }
|
[JsonPropertyName("DwnBin3Max")] public string DwnBin3Max { get; set; }
|
||||||
public string DwnBin3Mean { get; set; }
|
[JsonPropertyName("DwnBin3Mean")] public string DwnBin3Mean { get; set; }
|
||||||
public string DwnBin3Min { get; set; }
|
[JsonPropertyName("DwnBin3Min")] public string DwnBin3Min { get; set; }
|
||||||
public string DwnBin3StdDev { get; set; }
|
[JsonPropertyName("DwnBin3StdDev")] public string DwnBin3StdDev { get; set; }
|
||||||
public string DwnBin4Max { get; set; }
|
[JsonPropertyName("DwnBin4Max")] public string DwnBin4Max { get; set; }
|
||||||
public string DwnBin4Mean { get; set; }
|
[JsonPropertyName("DwnBin4Mean")] public string DwnBin4Mean { get; set; }
|
||||||
public string DwnBin4Min { get; set; }
|
[JsonPropertyName("DwnBin4Min")] public string DwnBin4Min { get; set; }
|
||||||
public string DwnBin4StdDev { get; set; }
|
[JsonPropertyName("DwnBin4StdDev")] public string DwnBin4StdDev { get; set; }
|
||||||
public string DwnBin5Max { get; set; }
|
[JsonPropertyName("DwnBin5Max")] public string DwnBin5Max { get; set; }
|
||||||
public string DwnBin5Mean { get; set; }
|
[JsonPropertyName("DwnBin5Mean")] public string DwnBin5Mean { get; set; }
|
||||||
public string DwnBin5Min { get; set; }
|
[JsonPropertyName("DwnBin5Min")] public string DwnBin5Min { get; set; }
|
||||||
public string DwnBin5StdDev { get; set; }
|
[JsonPropertyName("DwnBin5StdDev")] public string DwnBin5StdDev { get; set; }
|
||||||
public string DwnBin6Max { get; set; }
|
[JsonPropertyName("DwnBin6Max")] public string DwnBin6Max { get; set; }
|
||||||
public string DwnBin6Mean { get; set; }
|
[JsonPropertyName("DwnBin6Mean")] public string DwnBin6Mean { get; set; }
|
||||||
public string DwnBin6Min { get; set; }
|
[JsonPropertyName("DwnBin6Min")] public string DwnBin6Min { get; set; }
|
||||||
public string DwnBin6StdDev { get; set; }
|
[JsonPropertyName("DwnBin6StdDev")] public string DwnBin6StdDev { get; set; }
|
||||||
public string DwnBin7Max { get; set; }
|
[JsonPropertyName("DwnBin7Max")] public string DwnBin7Max { get; set; }
|
||||||
public string DwnBin7Mean { get; set; }
|
[JsonPropertyName("DwnBin7Mean")] public string DwnBin7Mean { get; set; }
|
||||||
public string DwnBin7Min { get; set; }
|
[JsonPropertyName("DwnBin7Min")] public string DwnBin7Min { get; set; }
|
||||||
public string DwnBin7StdDev { get; set; }
|
[JsonPropertyName("DwnBin7StdDev")] public string DwnBin7StdDev { get; set; }
|
||||||
public string DwnBin8Max { get; set; }
|
[JsonPropertyName("DwnBin8Max")] public string DwnBin8Max { get; set; }
|
||||||
public string DwnBin8Mean { get; set; }
|
[JsonPropertyName("DwnBin8Mean")] public string DwnBin8Mean { get; set; }
|
||||||
public string DwnBin8Min { get; set; }
|
[JsonPropertyName("DwnBin8Min")] public string DwnBin8Min { get; set; }
|
||||||
public string DwnBin8StdDev { get; set; }
|
[JsonPropertyName("DwnBin8StdDev")] public string DwnBin8StdDev { get; set; }
|
||||||
public string DwnHazeAvgMax { get; set; }
|
[JsonPropertyName("DwnHazeAvgMax")] public string DwnHazeAvgMax { get; set; }
|
||||||
public string DwnHazeAvgMean { get; set; }
|
[JsonPropertyName("DwnHazeAvgMean")] public string DwnHazeAvgMean { get; set; }
|
||||||
public string DwnHazeAvgMin { get; set; }
|
[JsonPropertyName("DwnHazeAvgMin")] public string DwnHazeAvgMin { get; set; }
|
||||||
public string DwnHazeAvgStdDev { get; set; }
|
[JsonPropertyName("DwnHazeAvgStdDev")] public string DwnHazeAvgStdDev { get; set; }
|
||||||
public string DwnHazeMedianMax { get; set; }
|
[JsonPropertyName("DwnHazeMedianMax")] public string DwnHazeMedianMax { get; set; }
|
||||||
public string DwnHazeMedianMean { get; set; }
|
[JsonPropertyName("DwnHazeMedianMean")] public string DwnHazeMedianMean { get; set; }
|
||||||
public string DwnHazeMedianMin { get; set; }
|
[JsonPropertyName("DwnHazeMedianMin")] public string DwnHazeMedianMin { get; set; }
|
||||||
public string DwnHazeMedianStdDev { get; set; }
|
[JsonPropertyName("DwnHazeMedianStdDev")] public string DwnHazeMedianStdDev { get; set; }
|
||||||
public string DwnHazeStdDevMax { get; set; }
|
[JsonPropertyName("DwnHazeStdDevMax")] public string DwnHazeStdDevMax { get; set; }
|
||||||
public string DwnHazeStdDevMean { get; set; }
|
[JsonPropertyName("DwnHazeStdDevMean")] public string DwnHazeStdDevMean { get; set; }
|
||||||
public string DwnHazeStdDevMin { get; set; }
|
[JsonPropertyName("DwnHazeStdDevMin")] public string DwnHazeStdDevMin { get; set; }
|
||||||
public string DwnHazeStdDevStdDev { get; set; }
|
[JsonPropertyName("DwnHazeStdDevStdDev")] public string DwnHazeStdDevStdDev { get; set; }
|
||||||
public string DwnLpdESMax { get; set; }
|
[JsonPropertyName("DwnLpdESMax")] public string DwnLpdESMax { get; set; }
|
||||||
public string DwnLpdESMean { get; set; }
|
[JsonPropertyName("DwnLpdESMean")] public string DwnLpdESMean { get; set; }
|
||||||
public string DwnLpdESMin { get; set; }
|
[JsonPropertyName("DwnLpdESMin")] public string DwnLpdESMin { get; set; }
|
||||||
public string DwnLpdESStdDev { get; set; }
|
[JsonPropertyName("DwnLpdESStdDev")] public string DwnLpdESStdDev { get; set; }
|
||||||
public string DwnLpdMax { get; set; }
|
[JsonPropertyName("DwnLpdMax")] public string DwnLpdMax { get; set; }
|
||||||
public string DwnLpdMean { get; set; }
|
[JsonPropertyName("DwnLpdMean")] public string DwnLpdMean { get; set; }
|
||||||
public string DwnLpdMin { get; set; }
|
[JsonPropertyName("DwnLpdMin")] public string DwnLpdMin { get; set; }
|
||||||
public string DwnLpdNMax { get; set; }
|
[JsonPropertyName("DwnLpdNMax")] public string DwnLpdNMax { get; set; }
|
||||||
public string DwnLpdNMean { get; set; }
|
[JsonPropertyName("DwnLpdNMean")] public string DwnLpdNMean { get; set; }
|
||||||
public string DwnLpdNMin { get; set; }
|
[JsonPropertyName("DwnLpdNMin")] public string DwnLpdNMin { get; set; }
|
||||||
public string DwnLpdNStdDev { get; set; }
|
[JsonPropertyName("DwnLpdNStdDev")] public string DwnLpdNStdDev { get; set; }
|
||||||
public string DwnLpdStdDev { get; set; }
|
[JsonPropertyName("DwnLpdStdDev")] public string DwnLpdStdDev { get; set; }
|
||||||
public string DwnMicroScrMax { get; set; }
|
[JsonPropertyName("DwnMicroScrMax")] public string DwnMicroScrMax { get; set; }
|
||||||
public string DwnMicroScrMean { get; set; }
|
[JsonPropertyName("DwnMicroScrMean")] public string DwnMicroScrMean { get; set; }
|
||||||
public string DwnMicroScrMin { get; set; }
|
[JsonPropertyName("DwnMicroScrMin")] public string DwnMicroScrMin { get; set; }
|
||||||
public string DwnMicroScrStdDev { get; set; }
|
[JsonPropertyName("DwnMicroScrStdDev")] public string DwnMicroScrStdDev { get; set; }
|
||||||
public string DwnScrMax { get; set; }
|
[JsonPropertyName("DwnScrMax")] public string DwnScrMax { get; set; }
|
||||||
public string DwnScrMean { get; set; }
|
[JsonPropertyName("DwnScrMean")] public string DwnScrMean { get; set; }
|
||||||
public string DwnScrMin { get; set; }
|
[JsonPropertyName("DwnScrMin")] public string DwnScrMin { get; set; }
|
||||||
public string DwnScrStdDev { get; set; }
|
[JsonPropertyName("DwnScrStdDev")] public string DwnScrStdDev { get; set; }
|
||||||
public string DwnSlipMax { get; set; }
|
[JsonPropertyName("DwnSlipMax")] public string DwnSlipMax { get; set; }
|
||||||
public string DwnSlipMean { get; set; }
|
[JsonPropertyName("DwnSlipMean")] public string DwnSlipMean { get; set; }
|
||||||
public string DwnSlipMin { get; set; }
|
[JsonPropertyName("DwnSlipMin")] public string DwnSlipMin { get; set; }
|
||||||
public string DwnSlipStdDev { get; set; }
|
[JsonPropertyName("DwnSlipStdDev")] public string DwnSlipStdDev { get; set; }
|
||||||
public string DcnAll { get; set; }
|
[JsonPropertyName("DcnAll")] public string DcnAll { get; set; }
|
||||||
public string DcnArea { get; set; }
|
[JsonPropertyName("DcnArea")] public string DcnArea { get; set; }
|
||||||
public string DcnAreaCount { get; set; }
|
[JsonPropertyName("DcnAreaCount")] public string DcnAreaCount { get; set; }
|
||||||
public string DcnBin1 { get; set; }
|
[JsonPropertyName("DcnBin1")] public string DcnBin1 { get; set; }
|
||||||
public string DcnBin2 { get; set; }
|
[JsonPropertyName("DcnBin2")] public string DcnBin2 { get; set; }
|
||||||
public string DcnBin3 { get; set; }
|
[JsonPropertyName("DcnBin3")] public string DcnBin3 { get; set; }
|
||||||
public string DcnBin4 { get; set; }
|
[JsonPropertyName("DcnBin4")] public string DcnBin4 { get; set; }
|
||||||
public string DcnBin5 { get; set; }
|
[JsonPropertyName("DcnBin5")] public string DcnBin5 { get; set; }
|
||||||
public string DcnBin6 { get; set; }
|
[JsonPropertyName("DcnBin6")] public string DcnBin6 { get; set; }
|
||||||
public string DcnBin7 { get; set; }
|
[JsonPropertyName("DcnBin7")] public string DcnBin7 { get; set; }
|
||||||
public string DcnBin8 { get; set; }
|
[JsonPropertyName("DcnBin8")] public string DcnBin8 { get; set; }
|
||||||
public string DcnHazeAvg { get; set; }
|
[JsonPropertyName("DcnHazeAvg")] public string DcnHazeAvg { get; set; }
|
||||||
public string DcnHazeMedian { get; set; }
|
[JsonPropertyName("DcnHazeMedian")] public string DcnHazeMedian { get; set; }
|
||||||
public string DcnHazeStdDev { get; set; }
|
[JsonPropertyName("DcnHazeStdDev")] public string DcnHazeStdDev { get; set; }
|
||||||
public string DcnLpd { get; set; }
|
[JsonPropertyName("DcnLpd")] public string DcnLpd { get; set; }
|
||||||
public string DcnLpdES { get; set; }
|
[JsonPropertyName("DcnLpdES")] public string DcnLpdES { get; set; }
|
||||||
public string DcnLpdN { get; set; }
|
[JsonPropertyName("DcnLpdN")] public string DcnLpdN { get; set; }
|
||||||
public string DcnMicroScr { get; set; }
|
[JsonPropertyName("DcnMicroScr")] public string DcnMicroScr { get; set; }
|
||||||
public string DcnScr { get; set; }
|
[JsonPropertyName("DcnScr")] public string DcnScr { get; set; }
|
||||||
public string DcnSlip { get; set; }
|
[JsonPropertyName("DcnSlip")] public string DcnSlip { get; set; }
|
||||||
public string DnnAll { get; set; }
|
[JsonPropertyName("DnnAll")] public string DnnAll { get; set; }
|
||||||
public string DnnArea { get; set; }
|
[JsonPropertyName("DnnArea")] public string DnnArea { get; set; }
|
||||||
public string DnnAreaCount { get; set; }
|
[JsonPropertyName("DnnAreaCount")] public string DnnAreaCount { get; set; }
|
||||||
public string DnnBin1 { get; set; }
|
[JsonPropertyName("DnnBin1")] public string DnnBin1 { get; set; }
|
||||||
public string DnnBin2 { get; set; }
|
[JsonPropertyName("DnnBin2")] public string DnnBin2 { get; set; }
|
||||||
public string DnnBin3 { get; set; }
|
[JsonPropertyName("DnnBin3")] public string DnnBin3 { get; set; }
|
||||||
public string DnnBin4 { get; set; }
|
[JsonPropertyName("DnnBin4")] public string DnnBin4 { get; set; }
|
||||||
public string DnnBin5 { get; set; }
|
[JsonPropertyName("DnnBin5")] public string DnnBin5 { get; set; }
|
||||||
public string DnnBin6 { get; set; }
|
[JsonPropertyName("DnnBin6")] public string DnnBin6 { get; set; }
|
||||||
public string DnnBin7 { get; set; }
|
[JsonPropertyName("DnnBin7")] public string DnnBin7 { get; set; }
|
||||||
public string DnnBin8 { get; set; }
|
[JsonPropertyName("DnnBin8")] public string DnnBin8 { get; set; }
|
||||||
public string DnnHazeAvg { get; set; }
|
[JsonPropertyName("DnnHazeAvg")] public string DnnHazeAvg { get; set; }
|
||||||
public string DnnHazeMedian { get; set; }
|
[JsonPropertyName("DnnHazeMedian")] public string DnnHazeMedian { get; set; }
|
||||||
public string DnnHazeStdDev { get; set; }
|
[JsonPropertyName("DnnHazeStdDev")] public string DnnHazeStdDev { get; set; }
|
||||||
public string DnnLpd { get; set; }
|
[JsonPropertyName("DnnLpd")] public string DnnLpd { get; set; }
|
||||||
public string DnnLpdES { get; set; }
|
[JsonPropertyName("DnnLpdES")] public string DnnLpdES { get; set; }
|
||||||
public string DnnLpdN { get; set; }
|
[JsonPropertyName("DnnLpdN")] public string DnnLpdN { get; set; }
|
||||||
public string DnnMicroScr { get; set; }
|
[JsonPropertyName("DnnMicroScr")] public string DnnMicroScr { get; set; }
|
||||||
public string DnnScr { get; set; }
|
[JsonPropertyName("DnnScr")] public string DnnScr { get; set; }
|
||||||
public string DnnSlip { get; set; }
|
[JsonPropertyName("DnnSlip")] public string DnnSlip { get; set; }
|
||||||
public string DwnAll { get; set; }
|
[JsonPropertyName("DwnAll")] public string DwnAll { get; set; }
|
||||||
public string DwnArea { get; set; }
|
[JsonPropertyName("DwnArea")] public string DwnArea { get; set; }
|
||||||
public string DwnAreaCount { get; set; }
|
[JsonPropertyName("DwnAreaCount")] public string DwnAreaCount { get; set; }
|
||||||
public string DwnBin1 { get; set; }
|
[JsonPropertyName("DwnBin1")] public string DwnBin1 { get; set; }
|
||||||
public string DwnBin2 { get; set; }
|
[JsonPropertyName("DwnBin2")] public string DwnBin2 { get; set; }
|
||||||
public string DwnBin3 { get; set; }
|
[JsonPropertyName("DwnBin3")] public string DwnBin3 { get; set; }
|
||||||
public string DwnBin4 { get; set; }
|
[JsonPropertyName("DwnBin4")] public string DwnBin4 { get; set; }
|
||||||
public string DwnBin5 { get; set; }
|
[JsonPropertyName("DwnBin5")] public string DwnBin5 { get; set; }
|
||||||
public string DwnBin6 { get; set; }
|
[JsonPropertyName("DwnBin6")] public string DwnBin6 { get; set; }
|
||||||
public string DwnBin7 { get; set; }
|
[JsonPropertyName("DwnBin7")] public string DwnBin7 { get; set; }
|
||||||
public string DwnBin8 { get; set; }
|
[JsonPropertyName("DwnBin8")] public string DwnBin8 { get; set; }
|
||||||
public string DwnHazeAvg { get; set; }
|
[JsonPropertyName("DwnHazeAvg")] public string DwnHazeAvg { get; set; }
|
||||||
public string DwnHazeMedian { get; set; }
|
[JsonPropertyName("DwnHazeMedian")] public string DwnHazeMedian { get; set; }
|
||||||
public string DwnHazeStdDev { get; set; }
|
[JsonPropertyName("DwnHazeStdDev")] public string DwnHazeStdDev { get; set; }
|
||||||
public string DwnLpd { get; set; }
|
[JsonPropertyName("DwnLpd")] public string DwnLpd { get; set; }
|
||||||
public string DwnLpdES { get; set; }
|
[JsonPropertyName("DwnLpdES")] public string DwnLpdES { get; set; }
|
||||||
public string DwnLpdN { get; set; }
|
[JsonPropertyName("DwnLpdN")] public string DwnLpdN { get; set; }
|
||||||
public string DwnMicroScr { get; set; }
|
[JsonPropertyName("DwnMicroScr")] public string DwnMicroScr { get; set; }
|
||||||
public string DwnScr { get; set; }
|
[JsonPropertyName("DwnScr")] public string DwnScr { get; set; }
|
||||||
public string DwnSlip { get; set; }
|
[JsonPropertyName("DwnSlip")] public string DwnSlip { get; set; }
|
||||||
|
|
||||||
string IDescription.GetEventDescription() => "File Has been read and parsed";
|
string IDescription.GetEventDescription() => "File Has been read and parsed";
|
||||||
|
|
||||||
@ -782,6 +785,8 @@ public class Description : IDescription, Shared.Properties.IDescription
|
|||||||
PSN = processData.PSN,
|
PSN = processData.PSN,
|
||||||
Reactor = processData.Reactor,
|
Reactor = processData.Reactor,
|
||||||
Recipe = processData.Recipe,
|
Recipe = processData.Recipe,
|
||||||
|
IndexOf = nameof(IndexOf),
|
||||||
|
AttemptCounter = nameof(AttemptCounter),
|
||||||
//
|
//
|
||||||
Grade = detail.Grade,
|
Grade = detail.Grade,
|
||||||
HeaderUniqueId = detail.HeaderUniqueID,
|
HeaderUniqueId = detail.HeaderUniqueID,
|
||||||
@ -1128,6 +1133,8 @@ public class Description : IDescription, Shared.Properties.IDescription
|
|||||||
PSN = nameof(PSN),
|
PSN = nameof(PSN),
|
||||||
Reactor = nameof(Reactor),
|
Reactor = nameof(Reactor),
|
||||||
Recipe = nameof(Recipe),
|
Recipe = nameof(Recipe),
|
||||||
|
IndexOf = nameof(IndexOf),
|
||||||
|
AttemptCounter = nameof(AttemptCounter),
|
||||||
//
|
//
|
||||||
Grade = nameof(Grade),
|
Grade = nameof(Grade),
|
||||||
HeaderUniqueId = nameof(HeaderUniqueId),
|
HeaderUniqueId = nameof(HeaderUniqueId),
|
||||||
@ -1444,4 +1451,16 @@ public class Description : IDescription, Shared.Properties.IDescription
|
|||||||
|
|
||||||
internal static string GetDateFormat() => "MM/dd/yyyy hh:mm:ss tt";
|
internal static string GetDateFormat() => "MM/dd/yyyy hh:mm:ss tt";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
[JsonSourceGenerationOptions(WriteIndented = true, NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
|
||||||
|
[JsonSerializable(typeof(Description))]
|
||||||
|
internal partial class DescriptionSourceGenerationContext : JsonSerializerContext
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[JsonSourceGenerationOptions(WriteIndented = true, NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
|
||||||
|
[JsonSerializable(typeof(Description[]))]
|
||||||
|
internal partial class DescriptionArraySourceGenerationContext : JsonSerializerContext
|
||||||
|
{
|
||||||
}
|
}
|
||||||
@ -1,76 +1,90 @@
|
|||||||
namespace Adaptation.FileHandlers.txt;
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
|
namespace Adaptation.FileHandlers.txt;
|
||||||
|
|
||||||
public class Detail
|
public class Detail
|
||||||
{
|
{
|
||||||
|
|
||||||
public string Grade { get; set; }
|
[JsonPropertyName("Grade")] public string Grade { get; set; }
|
||||||
public string HeaderUniqueID { get; set; }
|
public string HeaderUniqueID { get; set; }
|
||||||
public string Side { get; set; }
|
[JsonPropertyName("Side")] public string Side { get; set; }
|
||||||
public string SrcDest { get; set; }
|
[JsonPropertyName("SrcDest")] public string SrcDest { get; set; }
|
||||||
public string UniqueID { get; set; }
|
public string UniqueID { get; set; }
|
||||||
public string WaferID { get; set; }
|
[JsonPropertyName("WaferID")] public string WaferID { get; set; }
|
||||||
public string Data { get; set; }
|
public string Data { get; set; }
|
||||||
public string DcnAll { get; set; }
|
[JsonPropertyName("DcnAll")] public string DcnAll { get; set; }
|
||||||
public string DcnArea { get; set; }
|
[JsonPropertyName("DcnArea")] public string DcnArea { get; set; }
|
||||||
public string DcnAreaCount { get; set; }
|
[JsonPropertyName("DcnAreaCount")] public string DcnAreaCount { get; set; }
|
||||||
public string DcnBin1 { get; set; }
|
[JsonPropertyName("DcnBin1")] public string DcnBin1 { get; set; }
|
||||||
public string DcnBin2 { get; set; }
|
[JsonPropertyName("DcnBin2")] public string DcnBin2 { get; set; }
|
||||||
public string DcnBin3 { get; set; }
|
[JsonPropertyName("DcnBin3")] public string DcnBin3 { get; set; }
|
||||||
public string DcnBin4 { get; set; }
|
[JsonPropertyName("DcnBin4")] public string DcnBin4 { get; set; }
|
||||||
public string DcnBin5 { get; set; }
|
[JsonPropertyName("DcnBin5")] public string DcnBin5 { get; set; }
|
||||||
public string DcnBin6 { get; set; }
|
[JsonPropertyName("DcnBin6")] public string DcnBin6 { get; set; }
|
||||||
public string DcnBin7 { get; set; }
|
[JsonPropertyName("DcnBin7")] public string DcnBin7 { get; set; }
|
||||||
public string DcnBin8 { get; set; }
|
[JsonPropertyName("DcnBin8")] public string DcnBin8 { get; set; }
|
||||||
public string DcnHazeAvg { get; set; }
|
[JsonPropertyName("DcnHazeAvg")] public string DcnHazeAvg { get; set; }
|
||||||
public string DcnHazeMedian { get; set; }
|
[JsonPropertyName("DcnHazeMedian")] public string DcnHazeMedian { get; set; }
|
||||||
public string DcnHazeStdDev { get; set; }
|
[JsonPropertyName("DcnHazeStdDev")] public string DcnHazeStdDev { get; set; }
|
||||||
public string DcnLpd { get; set; }
|
[JsonPropertyName("DcnLpd")] public string DcnLpd { get; set; }
|
||||||
public string DcnLpdES { get; set; }
|
[JsonPropertyName("DcnLpdES")] public string DcnLpdES { get; set; }
|
||||||
public string DcnLpdN { get; set; }
|
[JsonPropertyName("DcnLpdN")] public string DcnLpdN { get; set; }
|
||||||
public string DcnMicroScr { get; set; }
|
[JsonPropertyName("DcnMicroScr")] public string DcnMicroScr { get; set; }
|
||||||
public string DcnScr { get; set; }
|
[JsonPropertyName("DcnScr")] public string DcnScr { get; set; }
|
||||||
public string DcnSlip { get; set; }
|
[JsonPropertyName("DcnSlip")] public string DcnSlip { get; set; }
|
||||||
public string DnnAll { get; set; }
|
[JsonPropertyName("DnnAll")] public string DnnAll { get; set; }
|
||||||
public string DnnArea { get; set; }
|
[JsonPropertyName("DnnArea")] public string DnnArea { get; set; }
|
||||||
public string DnnAreaCount { get; set; }
|
[JsonPropertyName("DnnAreaCount")] public string DnnAreaCount { get; set; }
|
||||||
public string DnnBin1 { get; set; }
|
[JsonPropertyName("DnnBin1")] public string DnnBin1 { get; set; }
|
||||||
public string DnnBin2 { get; set; }
|
[JsonPropertyName("DnnBin2")] public string DnnBin2 { get; set; }
|
||||||
public string DnnBin3 { get; set; }
|
[JsonPropertyName("DnnBin3")] public string DnnBin3 { get; set; }
|
||||||
public string DnnBin4 { get; set; }
|
[JsonPropertyName("DnnBin4")] public string DnnBin4 { get; set; }
|
||||||
public string DnnBin5 { get; set; }
|
[JsonPropertyName("DnnBin5")] public string DnnBin5 { get; set; }
|
||||||
public string DnnBin6 { get; set; }
|
[JsonPropertyName("DnnBin6")] public string DnnBin6 { get; set; }
|
||||||
public string DnnBin7 { get; set; }
|
[JsonPropertyName("DnnBin7")] public string DnnBin7 { get; set; }
|
||||||
public string DnnBin8 { get; set; }
|
[JsonPropertyName("DnnBin8")] public string DnnBin8 { get; set; }
|
||||||
public string DnnHazeAvg { get; set; }
|
[JsonPropertyName("DnnHazeAvg")] public string DnnHazeAvg { get; set; }
|
||||||
public string DnnHazeMedian { get; set; }
|
[JsonPropertyName("DnnHazeMedian")] public string DnnHazeMedian { get; set; }
|
||||||
public string DnnHazeStdDev { get; set; }
|
[JsonPropertyName("DnnHazeStdDev")] public string DnnHazeStdDev { get; set; }
|
||||||
public string DnnLpd { get; set; }
|
[JsonPropertyName("DnnLpd")] public string DnnLpd { get; set; }
|
||||||
public string DnnLpdES { get; set; }
|
[JsonPropertyName("DnnLpdES")] public string DnnLpdES { get; set; }
|
||||||
public string DnnLpdN { get; set; }
|
[JsonPropertyName("DnnLpdN")] public string DnnLpdN { get; set; }
|
||||||
public string DnnMicroScr { get; set; }
|
[JsonPropertyName("DnnMicroScr")] public string DnnMicroScr { get; set; }
|
||||||
public string DnnScr { get; set; }
|
[JsonPropertyName("DnnScr")] public string DnnScr { get; set; }
|
||||||
public string DnnSlip { get; set; }
|
[JsonPropertyName("DnnSlip")] public string DnnSlip { get; set; }
|
||||||
public string DwnAll { get; set; }
|
[JsonPropertyName("DwnAll")] public string DwnAll { get; set; }
|
||||||
public string DwnArea { get; set; }
|
[JsonPropertyName("DwnArea")] public string DwnArea { get; set; }
|
||||||
public string DwnAreaCount { get; set; }
|
[JsonPropertyName("DwnAreaCount")] public string DwnAreaCount { get; set; }
|
||||||
public string DwnBin1 { get; set; }
|
[JsonPropertyName("DwnBin1")] public string DwnBin1 { get; set; }
|
||||||
public string DwnBin2 { get; set; }
|
[JsonPropertyName("DwnBin2")] public string DwnBin2 { get; set; }
|
||||||
public string DwnBin3 { get; set; }
|
[JsonPropertyName("DwnBin3")] public string DwnBin3 { get; set; }
|
||||||
public string DwnBin4 { get; set; }
|
[JsonPropertyName("DwnBin4")] public string DwnBin4 { get; set; }
|
||||||
public string DwnBin5 { get; set; }
|
[JsonPropertyName("DwnBin5")] public string DwnBin5 { get; set; }
|
||||||
public string DwnBin6 { get; set; }
|
[JsonPropertyName("DwnBin6")] public string DwnBin6 { get; set; }
|
||||||
public string DwnBin7 { get; set; }
|
[JsonPropertyName("DwnBin7")] public string DwnBin7 { get; set; }
|
||||||
public string DwnBin8 { get; set; }
|
[JsonPropertyName("DwnBin8")] public string DwnBin8 { get; set; }
|
||||||
public string DwnHazeAvg { get; set; }
|
[JsonPropertyName("DwnHazeAvg")] public string DwnHazeAvg { get; set; }
|
||||||
public string DwnHazeMedian { get; set; }
|
[JsonPropertyName("DwnHazeMedian")] public string DwnHazeMedian { get; set; }
|
||||||
public string DwnHazeStdDev { get; set; }
|
[JsonPropertyName("DwnHazeStdDev")] public string DwnHazeStdDev { get; set; }
|
||||||
public string DwnLpd { get; set; }
|
[JsonPropertyName("DwnLpd")] public string DwnLpd { get; set; }
|
||||||
public string DwnLpdES { get; set; }
|
[JsonPropertyName("DwnLpdES")] public string DwnLpdES { get; set; }
|
||||||
public string DwnLpdN { get; set; }
|
[JsonPropertyName("DwnLpdN")] public string DwnLpdN { get; set; }
|
||||||
public string DwnMicroScr { get; set; }
|
[JsonPropertyName("DwnMicroScr")] public string DwnMicroScr { get; set; }
|
||||||
public string DwnScr { get; set; }
|
[JsonPropertyName("DwnScr")] public string DwnScr { get; set; }
|
||||||
public string DwnSlip { get; set; }
|
[JsonPropertyName("DwnSlip")] public string DwnSlip { get; set; }
|
||||||
|
|
||||||
public Detail() => Data = "*Data*";
|
public Detail() => Data = "*Data*";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
[JsonSourceGenerationOptions(WriteIndented = true, NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
|
||||||
|
[JsonSerializable(typeof(Detail))]
|
||||||
|
internal partial class DetailSourceGenerationContext : JsonSerializerContext
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[JsonSourceGenerationOptions(WriteIndented = true, NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
|
||||||
|
[JsonSerializable(typeof(Detail[]))]
|
||||||
|
internal partial class DetailArraySourceGenerationContext : JsonSerializerContext
|
||||||
|
{
|
||||||
}
|
}
|
||||||
@ -15,7 +15,7 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
|
|
||||||
private long? _TickOffset;
|
private long? _TickOffset;
|
||||||
|
|
||||||
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<Shared.Metrology.WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
||||||
base(new Description(), true, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
base(new Description(), true, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
||||||
{
|
{
|
||||||
_MinFileLength = 10;
|
_MinFileLength = 10;
|
||||||
@ -111,22 +111,26 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
throw new Exception(string.Concat("A) No Data - ", dateTime.Ticks));
|
throw new Exception(string.Concat("A) No Data - ", dateTime.Ticks));
|
||||||
IProcessData iProcessData = new ProcessData(this, _Logistics, results.Item4);
|
IProcessData iProcessData = new ProcessData(this, _Logistics, results.Item4);
|
||||||
if (iProcessData is not ProcessData processData)
|
if (iProcessData is not ProcessData processData)
|
||||||
throw new Exception(string.Concat("B) No Data - ", dateTime.Ticks));
|
results = new(string.Concat("B) No Data - ", dateTime.Ticks), Array.Empty<Test>(), Array.Empty<JsonElement>(), results.Item4);
|
||||||
string mid;
|
|
||||||
if (!string.IsNullOrEmpty(processData.Lot) && string.IsNullOrEmpty(processData.Reactor) && string.IsNullOrEmpty(processData.RDS) && string.IsNullOrEmpty(processData.PSN))
|
|
||||||
mid = processData.Lot;
|
|
||||||
else if (!string.IsNullOrEmpty(processData.Employee) && string.IsNullOrEmpty(processData.Reactor) && string.IsNullOrEmpty(processData.RDS) && string.IsNullOrEmpty(processData.PSN))
|
|
||||||
mid = processData.Employee;
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mid = string.Concat(processData.Reactor, "-", processData.RDS, "-", processData.PSN);
|
string mid;
|
||||||
mid = Regex.Replace(mid, @"[\\,\/,\:,\*,\?,\"",\<,\>,\|]", "_").Split('\r')[0].Split('\n')[0];
|
if (!string.IsNullOrEmpty(processData.Lot) && string.IsNullOrEmpty(processData.Reactor) && string.IsNullOrEmpty(processData.RDS) && string.IsNullOrEmpty(processData.PSN))
|
||||||
|
mid = processData.Lot;
|
||||||
|
else if (!string.IsNullOrEmpty(processData.Employee) && string.IsNullOrEmpty(processData.Reactor) && string.IsNullOrEmpty(processData.RDS) && string.IsNullOrEmpty(processData.PSN))
|
||||||
|
mid = processData.Employee;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mid = string.Concat(processData.Reactor, "-", processData.RDS, "-", processData.PSN);
|
||||||
|
mid = Regex.Replace(mid, @"[\\,\/,\:,\*,\?,\"",\<,\>,\|]", "_").Split('\r')[0].Split('\n')[0];
|
||||||
|
}
|
||||||
|
SetFileParameterLotID(mid);
|
||||||
|
_Logistics.Update(mid, processData.Reactor);
|
||||||
|
if (iProcessData.Details.Count > 0)
|
||||||
|
results = iProcessData.GetResults(this, _Logistics, results.Item4);
|
||||||
|
else
|
||||||
|
results = new(string.Concat("C) No Data - ", dateTime.Ticks), Array.Empty<Test>(), Array.Empty<JsonElement>(), results.Item4);
|
||||||
}
|
}
|
||||||
SetFileParameterLotID(mid);
|
|
||||||
_Logistics.Update(mid, processData.Reactor);
|
|
||||||
if (iProcessData.Details.Count == 0)
|
|
||||||
throw new Exception(string.Concat("C) No Data - ", dateTime.Ticks));
|
|
||||||
results = iProcessData.GetResults(this, _Logistics, results.Item4);
|
|
||||||
}
|
}
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -277,7 +277,6 @@ public class ProcessData : IProcessData
|
|||||||
|
|
||||||
public ProcessData(IFileRead fileRead, Logistics logistics, List<FileInfo> fileInfoCollection)
|
public ProcessData(IFileRead fileRead, Logistics logistics, List<FileInfo> fileInfoCollection)
|
||||||
{
|
{
|
||||||
fileInfoCollection.Clear();
|
|
||||||
_Details = new List<object>();
|
_Details = new List<object>();
|
||||||
_I = 0;
|
_I = 0;
|
||||||
_Data = string.Empty;
|
_Data = string.Empty;
|
||||||
@ -309,9 +308,13 @@ public class ProcessData : IProcessData
|
|||||||
if (description.Test != (int)tests[i])
|
if (description.Test != (int)tests[i])
|
||||||
throw new Exception();
|
throw new Exception();
|
||||||
}
|
}
|
||||||
|
FileInfo fileInfo = new($"{logistics.ReportFullPath}.descriptions.json");
|
||||||
List<Description> fileReadDescriptions = (from l in descriptions select (Description)l).ToList();
|
List<Description> fileReadDescriptions = (from l in descriptions select (Description)l).ToList();
|
||||||
string json = JsonSerializer.Serialize(fileReadDescriptions, fileReadDescriptions.GetType());
|
string json = JsonSerializer.Serialize(fileReadDescriptions, fileReadDescriptions.GetType());
|
||||||
JsonElement[] jsonElements = JsonSerializer.Deserialize<JsonElement[]>(json);
|
File.WriteAllText(fileInfo.FullName, json);
|
||||||
|
File.SetLastWriteTime(fileInfo.FullName, logistics.DateTimeFromSequence);
|
||||||
|
fileInfoCollection.Add(fileInfo);
|
||||||
|
JsonElement[] jsonElements = JsonSerializer.Deserialize<JsonElement[]>(json) ?? throw new Exception();
|
||||||
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(logistics.Logistics1[0], tests.ToArray(), jsonElements, fileInfoCollection);
|
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(logistics.Logistics1[0], tests.ToArray(), jsonElements, fileInfoCollection);
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
@ -952,8 +955,6 @@ public class ProcessData : IProcessData
|
|||||||
{
|
{
|
||||||
// NOTE: get the UniqueID during DataCalculation in order to retrieve the SPCToolID from the cell component Tag field.
|
// NOTE: get the UniqueID during DataCalculation in order to retrieve the SPCToolID from the cell component Tag field.
|
||||||
// id
|
// id
|
||||||
//runData.UniqueID = string.Format("{0}_{1}", sp1Header.UniqueId, i + 1);
|
|
||||||
//runData.HeaderUniqueID = sp1Header.UniqueId;
|
|
||||||
|
|
||||||
// General Wafer Info
|
// General Wafer Info
|
||||||
Side = dcnTotals[i].Side,
|
Side = dcnTotals[i].Side,
|
||||||
@ -1026,7 +1027,6 @@ public class ProcessData : IProcessData
|
|||||||
DnnBin6 = dnnTotals[i].Bin6 ?? string.Empty,
|
DnnBin6 = dnnTotals[i].Bin6 ?? string.Empty,
|
||||||
DnnBin7 = dnnTotals[i].Bin7 ?? string.Empty,
|
DnnBin7 = dnnTotals[i].Bin7 ?? string.Empty,
|
||||||
DnnBin8 = dnnTotals[i].Bin8 ?? string.Empty,
|
DnnBin8 = dnnTotals[i].Bin8 ?? string.Empty,
|
||||||
//result.HeaderUniqueID = string.Concat(MesEntity, "_", Lot, "_Summary_", Date);
|
|
||||||
HeaderUniqueID = UniqueID
|
HeaderUniqueID = UniqueID
|
||||||
};
|
};
|
||||||
result.UniqueID = string.Concat(result.HeaderUniqueID, "_", result.WaferID.PadLeft(2, '0'));
|
result.UniqueID = string.Concat(result.HeaderUniqueID, "_", result.WaferID.PadLeft(2, '0'));
|
||||||
@ -1060,12 +1060,11 @@ public class ProcessData : IProcessData
|
|||||||
{
|
{
|
||||||
List<Description> results = new();
|
List<Description> results = new();
|
||||||
Description? description;
|
Description? description;
|
||||||
JsonSerializerOptions jsonSerializerOptions = new() { NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString };
|
|
||||||
foreach (JsonElement jsonElement in jsonElements)
|
foreach (JsonElement jsonElement in jsonElements)
|
||||||
{
|
{
|
||||||
if (jsonElement.ValueKind != JsonValueKind.Object)
|
if (jsonElement.ValueKind != JsonValueKind.Object)
|
||||||
throw new Exception();
|
throw new Exception();
|
||||||
description = JsonSerializer.Deserialize<Description>(jsonElement.ToString(), jsonSerializerOptions);
|
description = JsonSerializer.Deserialize(jsonElement.ToString(), DescriptionSourceGenerationContext.Default.Description);
|
||||||
if (description is null)
|
if (description is null)
|
||||||
continue;
|
continue;
|
||||||
results.Add(description);
|
results.Add(description);
|
||||||
|
|||||||
@ -9,6 +9,8 @@ internal class Row
|
|||||||
|
|
||||||
public Row(Run run, int i)
|
public Row(Run run, int i)
|
||||||
{
|
{
|
||||||
|
Index = i;
|
||||||
|
//
|
||||||
Lot = run.Header.Lot;
|
Lot = run.Header.Lot;
|
||||||
Session = run.Header.Session;
|
Session = run.Header.Session;
|
||||||
DcnAllMin = run.Summary.DcnAllMin;
|
DcnAllMin = run.Summary.DcnAllMin;
|
||||||
@ -318,6 +320,8 @@ internal class Row
|
|||||||
DnnBin8 = run.Wafers[i].DnnBin8;
|
DnnBin8 = run.Wafers[i].DnnBin8;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int Index { get; }
|
||||||
|
//
|
||||||
public string Lot { get; }
|
public string Lot { get; }
|
||||||
public string Session { get; }
|
public string Session { get; }
|
||||||
public string DcnAllMin { get; }
|
public string DcnAllMin { get; }
|
||||||
|
|||||||
@ -27,24 +27,29 @@ internal class Run
|
|||||||
|
|
||||||
private static void WriteJson(Logistics logistics, List<FileInfo> fileInfoCollection, Run result)
|
private static void WriteJson(Logistics logistics, List<FileInfo> fileInfoCollection, Run result)
|
||||||
{
|
{
|
||||||
FileInfo fileInfo = new($"{logistics.ReportFullPath}.json");
|
FileInfo fileInfo = new($"{logistics.ReportFullPath}.run.json");
|
||||||
string json = JsonSerializer.Serialize(result, RunSourceGenerationContext.Default.Run);
|
string json = JsonSerializer.Serialize(result, RunSourceGenerationContext.Default.Run);
|
||||||
File.WriteAllText(fileInfo.FullName, json);
|
File.WriteAllText(fileInfo.FullName, json);
|
||||||
File.SetLastWriteTime(fileInfo.FullName, logistics.DateTimeFromSequence);
|
File.SetLastWriteTime(fileInfo.FullName, logistics.DateTimeFromSequence);
|
||||||
fileInfoCollection.Add(fileInfo);
|
fileInfoCollection.Add(fileInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ReadOnlyCollection<string> GetLines(JsonElement[]? jsonElements)
|
private static ReadOnlyCollection<string> GetLines(Logistics logistics, JsonElement[]? jsonElements)
|
||||||
{
|
{
|
||||||
List<string> results = new();
|
List<string> results = new();
|
||||||
int columns = 0;
|
int columns = 0;
|
||||||
StringBuilder stringBuilder = new();
|
StringBuilder stringBuilder = new();
|
||||||
|
results.Add($"\"Count\",{jsonElements?.Length}");
|
||||||
|
results.Add($"\"{nameof(logistics.Sequence)}\",\"{logistics.Sequence}\"");
|
||||||
|
results.Add($"\"{nameof(logistics.MesEntity)}\",\"{logistics.MesEntity}\"");
|
||||||
|
string dateTimeFromSequence = logistics.DateTimeFromSequence.ToString("MM/dd/yyyy hh:mm:ss tt");
|
||||||
for (int i = 0; i < jsonElements?.Length;)
|
for (int i = 0; i < jsonElements?.Length;)
|
||||||
{
|
{
|
||||||
|
_ = stringBuilder.Append('"').Append(nameof(logistics.DateTimeFromSequence)).Append('"').Append(',');
|
||||||
foreach (JsonProperty jsonProperty in jsonElements[0].EnumerateObject())
|
foreach (JsonProperty jsonProperty in jsonElements[0].EnumerateObject())
|
||||||
{
|
{
|
||||||
columns += 1;
|
columns += 1;
|
||||||
_ = stringBuilder.Append('"').Append(jsonProperty.Name).Append('"').Append('\t');
|
_ = stringBuilder.Append('"').Append(jsonProperty.Name).Append('"').Append(',');
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -54,14 +59,15 @@ internal class Run
|
|||||||
for (int i = 0; i < jsonElements?.Length; i++)
|
for (int i = 0; i < jsonElements?.Length; i++)
|
||||||
{
|
{
|
||||||
_ = stringBuilder.Clear();
|
_ = stringBuilder.Clear();
|
||||||
|
_ = stringBuilder.Append('"').Append(dateTimeFromSequence).Append('"').Append(',');
|
||||||
foreach (JsonProperty jsonProperty in jsonElements[i].EnumerateObject())
|
foreach (JsonProperty jsonProperty in jsonElements[i].EnumerateObject())
|
||||||
{
|
{
|
||||||
if (jsonProperty.Value.ValueKind == JsonValueKind.Object)
|
if (jsonProperty.Value.ValueKind == JsonValueKind.Object)
|
||||||
_ = stringBuilder.Append('\t');
|
_ = stringBuilder.Append(',');
|
||||||
else if (jsonProperty.Value.ValueKind != JsonValueKind.String)
|
else if (jsonProperty.Value.ValueKind != JsonValueKind.String)
|
||||||
_ = stringBuilder.Append(jsonProperty.Value).Append('\t');
|
_ = stringBuilder.Append(jsonProperty.Value).Append(',');
|
||||||
else
|
else
|
||||||
_ = stringBuilder.Append('"').Append(jsonProperty.Value).Append('"').Append('\t');
|
_ = stringBuilder.Append('"').Append(jsonProperty.Value).Append('"').Append(',');
|
||||||
}
|
}
|
||||||
_ = stringBuilder.Remove(stringBuilder.Length - 1, 1);
|
_ = stringBuilder.Remove(stringBuilder.Length - 1, 1);
|
||||||
results.Add(stringBuilder.ToString());
|
results.Add(stringBuilder.ToString());
|
||||||
@ -69,14 +75,10 @@ internal class Run
|
|||||||
return results.AsReadOnly();
|
return results.AsReadOnly();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ReadOnlyCollection<string> GetLines(JsonElement jsonElement) =>
|
private static void WriteCommaSeparatedValues(Logistics logistics, Run run)
|
||||||
GetLines(new JsonElement[] { jsonElement });
|
|
||||||
|
|
||||||
private static void WriteTabSeparatedValues(Logistics logistics, List<FileInfo> fileInfoCollection, Run run)
|
|
||||||
{
|
{
|
||||||
List<Row> results = new();
|
List<Row> results = new();
|
||||||
Row row;
|
Row row;
|
||||||
FileInfo fileInfo = new($"{logistics.ReportFullPath}.tsv");
|
|
||||||
for (int i = 0; i < run.Wafers.Count; i++)
|
for (int i = 0; i < run.Wafers.Count; i++)
|
||||||
{
|
{
|
||||||
row = new(run, i);
|
row = new(run, i);
|
||||||
@ -84,16 +86,8 @@ internal class Run
|
|||||||
}
|
}
|
||||||
string json = JsonSerializer.Serialize(results);
|
string json = JsonSerializer.Serialize(results);
|
||||||
JsonElement[]? jsonElements = JsonSerializer.Deserialize<JsonElement[]>(json);
|
JsonElement[]? jsonElements = JsonSerializer.Deserialize<JsonElement[]>(json);
|
||||||
ReadOnlyCollection<string> lines = GetLines(jsonElements);
|
ReadOnlyCollection<string> lines = GetLines(logistics, jsonElements);
|
||||||
File.WriteAllText(fileInfo.FullName, string.Join(Environment.NewLine, lines));
|
File.WriteAllText($"{logistics.ReportFullPath}.csv", string.Join(Environment.NewLine, lines));
|
||||||
File.SetLastWriteTime(fileInfo.FullName, logistics.DateTimeFromSequence);
|
|
||||||
fileInfoCollection.Add(fileInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void WriteException(Logistics logistics, Exception ex)
|
|
||||||
{
|
|
||||||
FileInfo fileInfo = new($"{logistics.ReportFullPath}.{nameof(Exception)}.txt");
|
|
||||||
File.WriteAllText(fileInfo.FullName, $"{ex.Message}{Environment.NewLine}{ex.StackTrace}");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static Run? Get(Logistics logistics, List<FileInfo> fileInfoCollection)
|
internal static Run? Get(Logistics logistics, List<FileInfo> fileInfoCollection)
|
||||||
@ -111,21 +105,14 @@ internal class Run
|
|||||||
List<WaferSummaryInfo> dnnTotals = new();
|
List<WaferSummaryInfo> dnnTotals = new();
|
||||||
Header header = Header.Get(constant, i, text);
|
Header header = Header.Get(constant, i, text);
|
||||||
Summary summary = Summary.Get(constant, i, text, dcnTotals, dwnTotals, dnnTotals);
|
Summary summary = Summary.Get(constant, i, text, dcnTotals, dwnTotals, dnnTotals);
|
||||||
ReadOnlyCollection<Wafer> wafers = Wafer.Get(constant, dcnTotals, dwnTotals, dnnTotals);
|
ReadOnlyCollection<Wafer> wafers = Wafer.Get(dcnTotals, dwnTotals, dnnTotals);
|
||||||
if (wafers.Count == 0)
|
if (wafers.Count == 0)
|
||||||
result = null;
|
result = null;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result = new(header, summary, wafers);
|
result = new(header, summary, wafers);
|
||||||
WriteJson(logistics, fileInfoCollection, result);
|
WriteJson(logistics, fileInfoCollection, result);
|
||||||
try
|
WriteCommaSeparatedValues(logistics, result);
|
||||||
{
|
|
||||||
WriteTabSeparatedValues(logistics, fileInfoCollection, result);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
WriteException(logistics, ex);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@ -203,7 +203,7 @@ public class Wafer
|
|||||||
public string DnnBin7 { get; }
|
public string DnnBin7 { get; }
|
||||||
public string DnnBin8 { get; }
|
public string DnnBin8 { get; }
|
||||||
|
|
||||||
internal static ReadOnlyCollection<Wafer> Get(Constant constant, List<WaferSummaryInfo> dcnTotals, List<WaferSummaryInfo> dwnTotals, List<WaferSummaryInfo> dnnTotals)
|
internal static ReadOnlyCollection<Wafer> Get(List<WaferSummaryInfo> dcnTotals, List<WaferSummaryInfo> dwnTotals, List<WaferSummaryInfo> dnnTotals)
|
||||||
{
|
{
|
||||||
List<Wafer> results = new();
|
List<Wafer> results = new();
|
||||||
Wafer wafer;
|
Wafer wafer;
|
||||||
|
|||||||
@ -226,9 +226,9 @@ public class MonIn : IMonIn, IDisposable
|
|||||||
{
|
{
|
||||||
StringBuilder stringBuilder = new();
|
StringBuilder stringBuilder = new();
|
||||||
if (string.IsNullOrEmpty(subresource))
|
if (string.IsNullOrEmpty(subresource))
|
||||||
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" {4} \n{5}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : (object)"now", resource.Trim(), stateName.Trim(), state.Trim(), description.Trim());
|
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" {4} \n{5}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : "now", resource.Trim(), stateName.Trim(), state.Trim(), description.Trim());
|
||||||
else
|
else
|
||||||
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" \"{4}\" {5} \n{6}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : (object)"now", resource.Trim(), subresource.Trim(), stateName.Trim(), state.Trim(), description.Trim());
|
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" \"{4}\" {5} \n{6}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : "now", resource.Trim(), subresource.Trim(), stateName.Trim(), state.Trim(), description.Trim());
|
||||||
return stringBuilder.ToString();
|
return stringBuilder.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -247,14 +247,14 @@ public class MonIn : IMonIn, IDisposable
|
|||||||
if (string.IsNullOrEmpty(subresource))
|
if (string.IsNullOrEmpty(subresource))
|
||||||
{
|
{
|
||||||
if (unit.Equals(string.Empty) && !interval.HasValue)
|
if (unit.Equals(string.Empty) && !interval.HasValue)
|
||||||
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" {4} \n{5}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : (object)"now", resource.Trim(), performanceName.Trim(), value, description.Trim());
|
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" {4} \n{5}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : "now", resource.Trim(), performanceName.Trim(), value, description.Trim());
|
||||||
else
|
else
|
||||||
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" {4} {5} {{interval={6}, unit={7}}}\n", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : (object)"now", resource.Trim(), performanceName.Trim(), value, description.Trim(), interval.HasValue ? interval.Value.ToString() : (object)string.Empty, unit.Trim());
|
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" {4} {5} {{interval={6}, unit={7}}}\n", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : "now", resource.Trim(), performanceName.Trim(), value, description.Trim(), interval.HasValue ? interval.Value.ToString() : string.Empty, unit.Trim());
|
||||||
}
|
}
|
||||||
else if (unit.Equals(string.Empty) && !interval.HasValue)
|
else if (unit.Equals(string.Empty) && !interval.HasValue)
|
||||||
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" \"{4}\" {5} \n{6}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : (object)"now", resource.Trim(), subresource.Trim(), performanceName.Trim(), value, description.Trim());
|
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" \"{4}\" {5} \n{6}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : "now", resource.Trim(), subresource.Trim(), performanceName.Trim(), value, description.Trim());
|
||||||
else
|
else
|
||||||
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" \"{4}\" {5} {6} {{interval={7}, unit={8}}}\n", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : (object)"now", resource.Trim(), subresource.Trim(), performanceName.Trim(), value, description.Trim(), interval.HasValue ? interval.Value.ToString() : (object)string.Empty, unit.Trim());
|
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" \"{4}\" {5} {6} {{interval={7}, unit={8}}}\n", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : "now", resource.Trim(), subresource.Trim(), performanceName.Trim(), value, description.Trim(), interval.HasValue ? interval.Value.ToString() : string.Empty, unit.Trim());
|
||||||
return stringBuilder.ToString();
|
return stringBuilder.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,190 +1 @@
|
|||||||
trigger:
|
# dotnet nuget push --source https://tfs.intra.infineon.com/tfs/FactoryIntegration/fccf8303-9cf7-4788-a9e0-4042541503fa/_packaging/EAF-Mesa-Integration/nuget/v3/index.json --api-key az D:\vsts-agent-win-x64-2.210.1-eaf\nuget\infineon.mesa.pdf.text.stripper.4.8.0.1.nupkg
|
||||||
branches:
|
|
||||||
include:
|
|
||||||
- development
|
|
||||||
paths:
|
|
||||||
include:
|
|
||||||
- "Adaptation/*"
|
|
||||||
|
|
||||||
pool:
|
|
||||||
name: eaf
|
|
||||||
demands: MET08DDUPSP1TBI-Development
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- script: |
|
|
||||||
set coreVersion=net7.0
|
|
||||||
echo %coreVersion%
|
|
||||||
echo ##vso[task.setvariable variable=CoreVersion;]%coreVersion%
|
|
||||||
echo $(CoreVersion)
|
|
||||||
displayName: CoreVersion
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
set configuration=Debug
|
|
||||||
echo %configuration%
|
|
||||||
echo ##vso[task.setvariable variable=Configuration;]%configuration%
|
|
||||||
echo $(Configuration)
|
|
||||||
displayName: Configuration
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
set nugetSource=https://artifactory.intra.infineon.com/artifactory/api/nuget/ngt-fi-package-main-vir/index.json;D:/vsts-agent-win-x64-2.210.1-eaf/nuget
|
|
||||||
echo %nugetSource%
|
|
||||||
echo ##vso[task.setvariable variable=NugetSource;]%nugetSource%
|
|
||||||
echo $(NugetSource)
|
|
||||||
displayName: NugetSource
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
set gitCommit=$(Build.SourceVersion)
|
|
||||||
set gitCommitSeven=%gitCommit:~0,7%
|
|
||||||
echo %gitCommitSeven%
|
|
||||||
echo ##vso[task.setvariable variable=GitCommitSeven;]%gitCommitSeven%
|
|
||||||
echo $(GitCommitSeven)
|
|
||||||
displayName: GitCommitSeven
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
echo $(Build.BuildId)
|
|
||||||
echo $(Build.Reason)
|
|
||||||
echo $(Build.Repository.Id)
|
|
||||||
echo $(Build.Repository.Name)
|
|
||||||
echo $(Build.SourceVersion)
|
|
||||||
echo $(CoreVersion)
|
|
||||||
echo $(Configuration)
|
|
||||||
echo $(NugetSource)
|
|
||||||
echo $(GitCommitSeven)
|
|
||||||
REM echo $(pipelinePassword)
|
|
||||||
displayName: "Echo Check"
|
|
||||||
|
|
||||||
- script: '"C:\program files\dotnet\dotnet.exe" nuget locals all --clear'
|
|
||||||
displayName: "Nuget Clear"
|
|
||||||
# enabled: false
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
"C:\program files\dotnet\dotnet.exe" user-secrets init
|
|
||||||
"C:\program files\dotnet\dotnet.exe" user-secrets set "BuildNumber" "$(Build.BuildId)"
|
|
||||||
"C:\program files\dotnet\dotnet.exe" user-secrets set "GitCommitSeven" "$(GitCommitSeven)"
|
|
||||||
"C:\program files\dotnet\dotnet.exe" user-secrets list
|
|
||||||
workingDirectory: Adaptation
|
|
||||||
displayName: "Safe storage of app secrets - Adaptation"
|
|
||||||
|
|
||||||
- task: CopyFiles@2
|
|
||||||
displayName: "Copy Files to: - GhostPCL"
|
|
||||||
inputs:
|
|
||||||
Contents: '*'
|
|
||||||
SourceFolder: '\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64'
|
|
||||||
TargetFolder: 'Adaptation\bin\$(Configuration)\net6.0\win-x64'
|
|
||||||
OverWrite: true
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
- task: CopyFiles@2
|
|
||||||
displayName: "Copy Files to: - LincPDFC"
|
|
||||||
inputs:
|
|
||||||
Contents: '*'
|
|
||||||
SourceFolder: '\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\LincPDFC\v2.6.6.21'
|
|
||||||
TargetFolder: 'Adaptation\bin\$(Configuration)\net6.0\win-x64'
|
|
||||||
OverWrite: true
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
- task: CopyFiles@2
|
|
||||||
displayName: "Copy Files to: - PDF-Text-Stripper"
|
|
||||||
inputs:
|
|
||||||
Contents: '*'
|
|
||||||
SourceFolder: '\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\PDF-Text-Stripper\v4.8.0.1'
|
|
||||||
TargetFolder: 'Adaptation\bin\$(Configuration)\net6.0\win-x64'
|
|
||||||
OverWrite: true
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
- script: '"C:\program files\dotnet\dotnet.exe" build --configuration $(Configuration) --source $(NugetSource)'
|
|
||||||
workingDirectory: Adaptation
|
|
||||||
displayName: "Core Build - Adaptation"
|
|
||||||
|
|
||||||
- powershell: Get-ChildItem .\ -include TestResults -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }
|
|
||||||
workingDirectory: "$(System.DefaultWorkingDirectory)/../../../$(Build.Repository.Name)"
|
|
||||||
displayName: "PowerShell Script"
|
|
||||||
continueOnError: true
|
|
||||||
|
|
||||||
- script: "dotnet test --configuration $(Configuration)"
|
|
||||||
workingDirectory: Adaptation
|
|
||||||
displayName: "Core Test"
|
|
||||||
|
|
||||||
- script: 'move /y "$(System.DefaultWorkingDirectory)/../../../$(Build.Repository.Name)/05_TestResults/TestResults" $(System.DefaultWorkingDirectory)'
|
|
||||||
displayName: "Move Results"
|
|
||||||
|
|
||||||
- script: '"C:\program files\dotnet\dotnet.exe" tool restore'
|
|
||||||
workingDirectory: Adaptation
|
|
||||||
displayName: "Tool Restore"
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
- script: '"C:\program files\dotnet\dotnet.exe" ReportGenerator -reports:$(System.DefaultWorkingDirectory)/TestResults/**/coverage.cobertura.xml -targetDir:$(Build.ArtifactStagingDirectory)\Coverage -reportTypes:Html_Dark'
|
|
||||||
workingDirectory: Adaptation
|
|
||||||
displayName: "Report Generator"
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
- task: PublishTestResults@2
|
|
||||||
displayName: "Publish Test Results **/*.trx"
|
|
||||||
inputs:
|
|
||||||
testResultsFormat: VSTest
|
|
||||||
testResultsFiles: "**/*.trx"
|
|
||||||
testRunTitle: "$(GitCommitSeven)-$(Build.BuildId)-$(CoreVersion)-$(Configuration)-$(Build.Repository.Name)"
|
|
||||||
searchFolder: "$(System.DefaultWorkingDirectory)/TestResults"
|
|
||||||
|
|
||||||
- task: PublishTestResults@2
|
|
||||||
displayName: "Publish Test Results */coverage.cobertura.xml"
|
|
||||||
inputs:
|
|
||||||
testResultsFormat: VSTest
|
|
||||||
testResultsFiles: "*/coverage.cobertura.xml"
|
|
||||||
testRunTitle: "$(GitCommitSeven)-$(Build.BuildId)-$(CoreVersion)-$(Configuration)-$(Build.Repository.Name)"
|
|
||||||
searchFolder: "$(System.DefaultWorkingDirectory)/TestResults"
|
|
||||||
|
|
||||||
- task: mspremier.CreateWorkItem.CreateWorkItem-task.CreateWorkItem@1
|
|
||||||
displayName: "Create work item"
|
|
||||||
inputs:
|
|
||||||
teamProject: "Mesa_FI"
|
|
||||||
workItemType: Bug
|
|
||||||
title: $(GitCommitSeven)-$(Build.BuildId)-$(Build.Repository.Name)-$(Configuration)
|
|
||||||
assignedTo: "$(Build.RequestedForId)"
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
- script: '"C:\program files\dotnet\dotnet.exe" publish --configuration $(Configuration) --runtime win-x64 --self-contained -o $(Build.ArtifactStagingDirectory)\Adaptation --source $(NugetSource)'
|
|
||||||
workingDirectory: Adaptation
|
|
||||||
displayName: "Core Publish"
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
- script: '"C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe" /target:Restore /detailedsummary /consoleloggerparameters:PerformanceSummary;ErrorsOnly; /property:Configuration=$(Configuration);TargetFrameworkVersion=v4.8 /p:RestoreSources="$(NugetSource)"'
|
|
||||||
displayName: "MSBuild Restore"
|
|
||||||
|
|
||||||
- script: '"C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe" /target:Build /detailedsummary /consoleloggerparameters:PerformanceSummary;ErrorsOnly; /property:Configuration=$(Configuration);TargetFrameworkVersion=v4.8'
|
|
||||||
displayName: MSBuild
|
|
||||||
|
|
||||||
- script: 'echo $(Build.SourceVersion)-$(Build.BuildId)-$(Build.Repository.Name)>bin\$(Configuration)\$(Build.Repository.Name).txt'
|
|
||||||
displayName: "Commit Id"
|
|
||||||
|
|
||||||
- task: CopyFiles@2
|
|
||||||
displayName: 'Copy Files to: D:\Framework4.8'
|
|
||||||
inputs:
|
|
||||||
Contents: "*$(Build.Repository.Name)*"
|
|
||||||
SourceFolder: 'bin\$(Configuration)'
|
|
||||||
TargetFolder: 'D:\Framework4.8\$(GitCommitSeven)-$(Build.BuildId)-$(Build.Repository.Name)-$(Configuration)'
|
|
||||||
OverWrite: true
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
- task: CopyFiles@2
|
|
||||||
displayName: 'Copy Files to: Local D EAF Deployment Storage'
|
|
||||||
inputs:
|
|
||||||
Contents: "*$(Build.Repository.Name)*"
|
|
||||||
SourceFolder: 'bin\$(Configuration)'
|
|
||||||
TargetFolder: 'D:\EAF\EAF Deployment Storage\Adaptation_$(Build.Repository.Name)'
|
|
||||||
OverWrite: true
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
"C:\program files\dotnet\dotnet.exe" clean --configuration $(Configuration)
|
|
||||||
workingDirectory: Adaptation
|
|
||||||
displayName: "Core Clean - Tests"
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
"C:\program files\dotnet\dotnet.exe" clean --configuration $(Configuration)
|
|
||||||
workingDirectory: Adaptation
|
|
||||||
displayName: "Core Clean - Adaptation"
|
|
||||||
|
|
||||||
- script: 'echo $(Build.SourceVersion)-$(Build.BuildId)>bin_x_x_\$(Configuration)\$(CoreVersion)\win-x64\$(Build.Repository.Name).txt'
|
|
||||||
displayName: "Force Fail"
|
|
||||||
enabled: false
|
|
||||||
@ -69,7 +69,7 @@
|
|||||||
<PackageReference Include="System.Text.Json" Version="9.0.0" />
|
<PackageReference Include="System.Text.Json" Version="9.0.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Infineon.Mesa.PDF.Text.Stripper" Version="4.8.0.1"><NoWarn>NU1701</NoWarn></PackageReference>
|
<PackageReference Include="Infineon.Mesa.PDF.Text.Stripper" Version="4.8.0.2"><NoWarn>NU1701</NoWarn></PackageReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Infineon.Yoda.DotNetCore" Version="5.4.3" />
|
<PackageReference Include="Infineon.Yoda.DotNetCore" Version="5.4.3" />
|
||||||
@ -87,16 +87,16 @@
|
|||||||
</None>
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Condition="'$(Configuration)' == 'Debug'" Include="\\mestsa003.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6dll64.dll">
|
<None Condition="'$(Configuration)' == 'Debug'" Include="D:\EAF-Mesa-Integration\copy\GhostPCL\gpcl6win64\gpcl6dll64.dll">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
<None Condition="'$(Configuration)' == 'Debug'" Include="\\mestsa003.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6win64.exe">
|
<None Condition="'$(Configuration)' == 'Debug'" Include="D:\EAF-Mesa-Integration\copy\GhostPCL\gpcl6win64\gpcl6win64.exe">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
<None Condition="'$(Configuration)' == 'Release'" Include="\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6dll64.dll">
|
<None Condition="'$(Configuration)' == 'Release'" Include="D:\EAF-Mesa-Integration\copy\GhostPCL\gpcl6win64\gpcl6dll64.dll">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
<None Condition="'$(Configuration)' == 'Release'" Include="\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6win64.exe">
|
<None Condition="'$(Configuration)' == 'Release'" Include="D:\EAF-Mesa-Integration\copy\GhostPCL\gpcl6win64\gpcl6win64.exe">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
@ -1,3 +1,9 @@
|
|||||||
|
# D:
|
||||||
|
# cd D:\EAF-Mesa-Integration
|
||||||
|
# config --url https://tfs.intra.infineon.com/tfs/FactoryIntegration --pool "EAF Mesa Integration" --agent mestsa003-meseafsvc --work _work --runAsService --auth negotiate --userName infineon\phares
|
||||||
|
# D:
|
||||||
|
# cd D:\EAF-Mesa-Integration
|
||||||
|
# config --url https://tfs.intra.infineon.com/tfs/FactoryIntegration --pool "EAF Mesa Integration" --agent mestsa07ec-ecmeseaf --work _work --runAsService --auth negotiate --userName infineon\phares
|
||||||
trigger:
|
trigger:
|
||||||
branches:
|
branches:
|
||||||
include:
|
include:
|
||||||
@ -6,180 +12,273 @@ trigger:
|
|||||||
include:
|
include:
|
||||||
- "Adaptation/*"
|
- "Adaptation/*"
|
||||||
|
|
||||||
pool:
|
stages:
|
||||||
name: eaf
|
- stage: DevServer
|
||||||
demands: MET08DDUPSP1TBI
|
displayName: DevServer
|
||||||
|
|
||||||
steps:
|
pool:
|
||||||
- script: |
|
name: EAF Mesa Integration
|
||||||
set coreVersion=net7.0
|
demands: MET08DDUPSP1TBI-Development
|
||||||
echo %coreVersion%
|
|
||||||
echo ##vso[task.setvariable variable=CoreVersion;]%coreVersion%
|
|
||||||
echo $(CoreVersion)
|
|
||||||
displayName: CoreVersion
|
|
||||||
|
|
||||||
- script: |
|
variables:
|
||||||
set configuration=Release
|
coreVersion: "net8.0"
|
||||||
echo %configuration%
|
nugetSource: "https://artifactory.intra.infineon.com/artifactory/api/nuget/ngt-fi-package-main-vir/"
|
||||||
echo ##vso[task.setvariable variable=Configuration;]%configuration%
|
|
||||||
echo $(Configuration)
|
|
||||||
displayName: Configuration
|
|
||||||
|
|
||||||
- script: |
|
jobs:
|
||||||
set nugetSource=https://artifactory.intra.infineon.com/artifactory/api/nuget/ngt-fi-package-main-vir/index.json;D:/vsts-agent-win-x64-2.210.1-eaf/nuget
|
- job: SetupEnvironment
|
||||||
echo %nugetSource%
|
steps:
|
||||||
echo ##vso[task.setvariable variable=NugetSource;]%nugetSource%
|
- script: |
|
||||||
echo $(NugetSource)
|
echo $(Build.BuildId)
|
||||||
displayName: NugetSource
|
echo $(Build.Reason)
|
||||||
|
echo $(Build.Repository.Id)
|
||||||
|
echo $(Build.Repository.Name)
|
||||||
|
echo $(Build.SourceVersion)
|
||||||
|
echo $(CoreVersion)
|
||||||
|
echo $(NugetSource)
|
||||||
|
displayName: "Echo Check"
|
||||||
|
|
||||||
- script: |
|
- script: '"C:\program files\dotnet\dotnet.exe" nuget locals all --clear'
|
||||||
set gitCommit=$(Build.SourceVersion)
|
displayName: "Nuget Clear"
|
||||||
set gitCommitSeven=%gitCommit:~0,7%
|
enabled: false
|
||||||
echo %gitCommitSeven%
|
|
||||||
echo ##vso[task.setvariable variable=GitCommitSeven;]%gitCommitSeven%
|
|
||||||
echo $(GitCommitSeven)
|
|
||||||
displayName: GitCommitSeven
|
|
||||||
|
|
||||||
- script: |
|
- script: |
|
||||||
echo $(Build.BuildId)
|
"C:\program files\dotnet\dotnet.exe" user-secrets init
|
||||||
echo $(Build.Reason)
|
"C:\program files\dotnet\dotnet.exe" user-secrets set "BuildNumber" "$(Build.BuildId)"
|
||||||
echo $(Build.Repository.Id)
|
"C:\program files\dotnet\dotnet.exe" user-secrets set "GitCommit" "$(Build.SourceVersion)"
|
||||||
echo $(Build.Repository.Name)
|
"C:\program files\dotnet\dotnet.exe" user-secrets list
|
||||||
echo $(Build.SourceVersion)
|
workingDirectory: Adaptation
|
||||||
echo $(CoreVersion)
|
displayName: "Safe storage of app secrets - Adaptation"
|
||||||
echo $(Configuration)
|
|
||||||
echo $(NugetSource)
|
|
||||||
echo $(GitCommitSeven)
|
|
||||||
REM echo $(pipelinePassword)
|
|
||||||
displayName: "Echo Check"
|
|
||||||
|
|
||||||
- script: '"C:\program files\dotnet\dotnet.exe" nuget locals all --clear'
|
- job: BuildDebug
|
||||||
displayName: "Nuget Clear"
|
dependsOn:
|
||||||
enabled: false
|
- SetupEnvironment
|
||||||
|
steps:
|
||||||
|
- script: |
|
||||||
|
set configuration=Debug
|
||||||
|
echo %configuration%
|
||||||
|
echo ##vso[task.setvariable variable=Configuration;]%configuration%
|
||||||
|
echo $(Configuration)
|
||||||
|
displayName: Configuration
|
||||||
|
|
||||||
- script: |
|
- script: '"C:\program files\dotnet\dotnet.exe" build --configuration $(Configuration) --source $(NugetSource)'
|
||||||
"C:\program files\dotnet\dotnet.exe" user-secrets init
|
workingDirectory: Adaptation
|
||||||
"C:\program files\dotnet\dotnet.exe" user-secrets set "BuildNumber" "$(Build.BuildId)"
|
displayName: "Core Build - Adaptation"
|
||||||
"C:\program files\dotnet\dotnet.exe" user-secrets set "GitCommitSeven" "$(GitCommitSeven)"
|
|
||||||
"C:\program files\dotnet\dotnet.exe" user-secrets list
|
|
||||||
workingDirectory: Adaptation
|
|
||||||
displayName: "Safe storage of app secrets - Adaptation"
|
|
||||||
|
|
||||||
- task: CopyFiles@2
|
- job: BuildRelease
|
||||||
displayName: "Copy Files to: - GhostPCL"
|
dependsOn:
|
||||||
inputs:
|
- SetupEnvironment
|
||||||
Contents: '*'
|
steps:
|
||||||
SourceFolder: '\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64'
|
- script: |
|
||||||
TargetFolder: 'Adaptation\bin\$(Configuration)\net6.0\win-x64'
|
set configuration=Release
|
||||||
OverWrite: true
|
echo %configuration%
|
||||||
|
echo ##vso[task.setvariable variable=Configuration;]%configuration%
|
||||||
|
echo $(Configuration)
|
||||||
|
displayName: Configuration
|
||||||
|
|
||||||
- task: CopyFiles@2
|
- script: '"C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe" /target:Restore /detailedsummary /consoleloggerparameters:PerformanceSummary;ErrorsOnly; /property:Configuration=$(Configuration);TargetFrameworkVersion=v4.8 /p:RestoreSources=$(NugetSource)'
|
||||||
displayName: "Copy Files to: - LincPDFC"
|
displayName: "MSBuild Restore"
|
||||||
inputs:
|
|
||||||
Contents: '*'
|
|
||||||
SourceFolder: '\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\LincPDFC\v2.6.6.21'
|
|
||||||
TargetFolder: 'Adaptation\bin\$(Configuration)\net6.0\win-x64'
|
|
||||||
OverWrite: true
|
|
||||||
|
|
||||||
- task: CopyFiles@2
|
- script: '"C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe" /target:Build /detailedsummary /consoleloggerparameters:PerformanceSummary;ErrorsOnly; /property:Configuration=$(Configuration);TargetFrameworkVersion=v4.8'
|
||||||
displayName: "Copy Files to: - PDF-Text-Stripper"
|
displayName: MSBuild
|
||||||
inputs:
|
|
||||||
Contents: '*'
|
|
||||||
SourceFolder: '\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\PDF-Text-Stripper\v4.8.0.1'
|
|
||||||
TargetFolder: 'Adaptation\bin\$(Configuration)\net6.0\win-x64'
|
|
||||||
OverWrite: true
|
|
||||||
|
|
||||||
- script: '"C:\program files\dotnet\dotnet.exe" build --configuration $(Configuration) --source $(NugetSource)'
|
- script: '"C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe" /target:Build /detailedsummary /consoleloggerparameters:PerformanceSummary;ErrorsOnly; /property:Configuration=$(Configuration);TargetFrameworkVersion=v4.8'
|
||||||
workingDirectory: Adaptation
|
displayName: MSBuild
|
||||||
displayName: "Core Build - Adaptation"
|
|
||||||
|
|
||||||
- powershell: Get-ChildItem .\ -include TestResults -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }
|
- script: 'echo $(Build.Repository.Name)-$(Build.BuildId)-$(Build.SourceVersion)>bin\$(Configuration)\$(Build.Repository.Name).txt'
|
||||||
workingDirectory: "$(System.DefaultWorkingDirectory)/../../../$(Build.Repository.Name)"
|
displayName: "Commit Id"
|
||||||
displayName: "PowerShell Script"
|
|
||||||
continueOnError: true
|
|
||||||
|
|
||||||
- script: "dotnet test --configuration $(Configuration)"
|
- task: CopyFiles@2
|
||||||
workingDirectory: Adaptation
|
displayName: 'Copy Files to: D:\EAF'
|
||||||
displayName: "Core Test"
|
inputs:
|
||||||
|
Contents: "*$(Build.Repository.Name)*"
|
||||||
|
SourceFolder: 'bin\$(Configuration)'
|
||||||
|
TargetFolder: 'D:\EAF\EAF Deployment Storage\Adaptation_$(Build.Repository.Name)'
|
||||||
|
OverWrite: true
|
||||||
|
enabled: true
|
||||||
|
|
||||||
- script: 'move /y "$(System.DefaultWorkingDirectory)/../../../$(Build.Repository.Name)/05_TestResults/TestResults" $(System.DefaultWorkingDirectory)'
|
- job: TestDebug
|
||||||
displayName: "Move Results"
|
dependsOn:
|
||||||
|
- SetupEnvironment
|
||||||
|
- BuildDebug
|
||||||
|
- BuildRelease
|
||||||
|
steps:
|
||||||
|
- script: |
|
||||||
|
set configuration=Debug
|
||||||
|
echo %configuration%
|
||||||
|
echo ##vso[task.setvariable variable=Configuration;]%configuration%
|
||||||
|
echo $(Configuration)
|
||||||
|
displayName: Configuration
|
||||||
|
|
||||||
- script: '"C:\program files\dotnet\dotnet.exe" tool restore'
|
- powershell: Get-ChildItem .\ -include TestResults -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }
|
||||||
workingDirectory: Adaptation
|
workingDirectory: "$(System.DefaultWorkingDirectory)/../../../$(Build.Repository.Name)"
|
||||||
displayName: "Tool Restore"
|
displayName: "PowerShell Script"
|
||||||
enabled: false
|
continueOnError: true
|
||||||
|
|
||||||
- script: '"C:\program files\dotnet\dotnet.exe" ReportGenerator -reports:$(System.DefaultWorkingDirectory)/TestResults/**/coverage.cobertura.xml -targetDir:$(Build.ArtifactStagingDirectory)\Coverage -reportTypes:Html_Dark'
|
- script: "dotnet test --configuration $(Configuration)"
|
||||||
workingDirectory: Adaptation
|
workingDirectory: Adaptation
|
||||||
displayName: "Report Generator"
|
displayName: "Core Test"
|
||||||
enabled: false
|
|
||||||
|
|
||||||
- task: PublishTestResults@2
|
- script: 'move /y "$(System.DefaultWorkingDirectory)/../../../$(Build.Repository.Name)/05_TestResults/TestResults" $(System.DefaultWorkingDirectory)'
|
||||||
displayName: "Publish Test Results **/*.trx"
|
displayName: "Move Results"
|
||||||
inputs:
|
|
||||||
testResultsFormat: VSTest
|
|
||||||
testResultsFiles: "**/*.trx"
|
|
||||||
testRunTitle: "$(GitCommitSeven)-$(Build.BuildId)-$(CoreVersion)-$(Configuration)-$(Build.Repository.Name)"
|
|
||||||
searchFolder: "$(System.DefaultWorkingDirectory)/TestResults"
|
|
||||||
|
|
||||||
- task: PublishTestResults@2
|
- script: '"C:\program files\dotnet\dotnet.exe" tool restore'
|
||||||
displayName: "Publish Test Results */coverage.cobertura.xml"
|
workingDirectory: Adaptation
|
||||||
inputs:
|
displayName: "Tool Restore"
|
||||||
testResultsFormat: VSTest
|
enabled: false
|
||||||
testResultsFiles: "*/coverage.cobertura.xml"
|
|
||||||
testRunTitle: "$(GitCommitSeven)-$(Build.BuildId)-$(CoreVersion)-$(Configuration)-$(Build.Repository.Name)"
|
|
||||||
searchFolder: "$(System.DefaultWorkingDirectory)/TestResults"
|
|
||||||
|
|
||||||
- task: mspremier.CreateWorkItem.CreateWorkItem-task.CreateWorkItem@1
|
- script: '"C:\program files\dotnet\dotnet.exe" ReportGenerator -reports:$(System.DefaultWorkingDirectory)/TestResults/**/coverage.cobertura.xml -targetDir:$(Build.ArtifactStagingDirectory)\Coverage -reportTypes:Html_Dark'
|
||||||
displayName: "Create work item"
|
workingDirectory: Adaptation
|
||||||
inputs:
|
displayName: "Report Generator"
|
||||||
teamProject: "Mesa_FI"
|
enabled: false
|
||||||
workItemType: Bug
|
|
||||||
title: $(GitCommitSeven)-$(Build.BuildId)-$(Build.Repository.Name)-$(Configuration)
|
|
||||||
assignedTo: "$(Build.RequestedForId)"
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
- script: '"C:\program files\dotnet\dotnet.exe" publish --configuration $(Configuration) --runtime win-x64 --self-contained -o $(Build.ArtifactStagingDirectory)\Adaptation --source $(NugetSource)'
|
- task: PublishTestResults@2
|
||||||
workingDirectory: Adaptation
|
displayName: "Publish Test Results **/*.trx"
|
||||||
displayName: "Core Publish"
|
inputs:
|
||||||
enabled: false
|
testResultsFormat: VSTest
|
||||||
|
testResultsFiles: "**/*.trx"
|
||||||
|
testRunTitle: "$(Build.BuildId)-$(Build.SourceVersion)-$(CoreVersion)-$(Configuration)-$(Build.Repository.Name)"
|
||||||
|
searchFolder: "$(System.DefaultWorkingDirectory)/TestResults"
|
||||||
|
|
||||||
- script: '"C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe" /target:Restore /detailedsummary /consoleloggerparameters:PerformanceSummary;ErrorsOnly; /property:Configuration=$(Configuration);TargetFrameworkVersion=v4.8 /p:RestoreSources="$(NugetSource)"'
|
- task: PublishTestResults@2
|
||||||
displayName: "MSBuild Restore"
|
displayName: "Publish Test Results */coverage.cobertura.xml"
|
||||||
|
inputs:
|
||||||
|
testResultsFormat: VSTest
|
||||||
|
testResultsFiles: "*/coverage.cobertura.xml"
|
||||||
|
testRunTitle: "$(Build.BuildId)-$(Build.SourceVersion)-$(CoreVersion)-$(Configuration)-$(Build.Repository.Name)"
|
||||||
|
searchFolder: "$(System.DefaultWorkingDirectory)/TestResults"
|
||||||
|
|
||||||
- script: '"C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe" /target:Build /detailedsummary /consoleloggerparameters:PerformanceSummary;ErrorsOnly; /property:Configuration=$(Configuration);TargetFrameworkVersion=v4.8'
|
- script: |
|
||||||
displayName: MSBuild
|
"C:\program files\dotnet\dotnet.exe" clean --configuration $(Configuration)
|
||||||
|
workingDirectory: Adaptation
|
||||||
|
displayName: "Core Clean - Adaptation"
|
||||||
|
|
||||||
- script: 'echo $(Build.SourceVersion)-$(Build.BuildId)-$(Build.Repository.Name)>bin\$(Configuration)\$(Build.Repository.Name).txt'
|
- script: 'echo $(Build.BuildId)-$(Build.SourceVersion)-bin_x_x_\$(Configuration)\$(CoreVersion)\win-x64\$(Build.Repository.Name).txt'
|
||||||
displayName: "Commit Id"
|
displayName: "Force Fail"
|
||||||
|
enabled: false
|
||||||
|
|
||||||
- task: CopyFiles@2
|
- stage: ProductionServer
|
||||||
displayName: 'Copy Files to: D:\Framework4.8'
|
displayName: ProductionServer
|
||||||
inputs:
|
|
||||||
Contents: "*$(Build.Repository.Name)*"
|
|
||||||
SourceFolder: 'bin\$(Configuration)'
|
|
||||||
TargetFolder: 'D:\Framework4.8\$(GitCommitSeven)-$(Build.BuildId)-$(Build.Repository.Name)-$(Configuration)'
|
|
||||||
OverWrite: true
|
|
||||||
|
|
||||||
- task: CopyFiles@2
|
pool:
|
||||||
displayName: 'Copy Files to: Local D EAF Deployment Storage'
|
name: EAF Mesa Integration
|
||||||
inputs:
|
demands: MET08DDUPSP1TBI
|
||||||
Contents: "*$(Build.Repository.Name)*"
|
|
||||||
SourceFolder: 'bin\$(Configuration)'
|
|
||||||
TargetFolder: 'D:\EAF\EAF Deployment Storage\Adaptation_$(Build.Repository.Name)'
|
|
||||||
OverWrite: true
|
|
||||||
|
|
||||||
- script: |
|
variables:
|
||||||
"C:\program files\dotnet\dotnet.exe" clean --configuration $(Configuration)
|
coreVersion: "net8.0"
|
||||||
workingDirectory: Adaptation
|
nugetSource: "https://artifactory.intra.infineon.com/artifactory/api/nuget/ngt-fi-package-main-vir/"
|
||||||
displayName: "Core Clean - Tests"
|
|
||||||
|
|
||||||
- script: |
|
jobs:
|
||||||
"C:\program files\dotnet\dotnet.exe" clean --configuration $(Configuration)
|
- job: SetupEnvironment
|
||||||
workingDirectory: Adaptation
|
steps:
|
||||||
displayName: "Core Clean - Adaptation"
|
- script: |
|
||||||
|
echo $(Build.BuildId)
|
||||||
|
echo $(Build.Reason)
|
||||||
|
echo $(Build.Repository.Id)
|
||||||
|
echo $(Build.Repository.Name)
|
||||||
|
echo $(Build.SourceVersion)
|
||||||
|
echo $(CoreVersion)
|
||||||
|
echo $(NugetSource)
|
||||||
|
displayName: "Echo Check"
|
||||||
|
|
||||||
- script: 'echo $(Build.SourceVersion)-$(Build.BuildId)>bin_x_x_\$(Configuration)\$(CoreVersion)\win-x64\$(Build.Repository.Name).txt'
|
- script: '"C:\program files\dotnet\dotnet.exe" nuget locals all --clear'
|
||||||
displayName: "Force Fail"
|
displayName: "Nuget Clear"
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
|
- script: |
|
||||||
|
"C:\program files\dotnet\dotnet.exe" user-secrets init
|
||||||
|
"C:\program files\dotnet\dotnet.exe" user-secrets set "BuildNumber" "$(Build.BuildId)"
|
||||||
|
"C:\program files\dotnet\dotnet.exe" user-secrets set "GitCommit" "$(Build.SourceVersion)"
|
||||||
|
"C:\program files\dotnet\dotnet.exe" user-secrets list
|
||||||
|
workingDirectory: Adaptation
|
||||||
|
displayName: "Safe storage of app secrets - Adaptation"
|
||||||
|
|
||||||
|
- job: BuildRelease
|
||||||
|
dependsOn:
|
||||||
|
- SetupEnvironment
|
||||||
|
steps:
|
||||||
|
- script: |
|
||||||
|
set configuration=Release
|
||||||
|
echo %configuration%
|
||||||
|
echo ##vso[task.setvariable variable=Configuration;]%configuration%
|
||||||
|
echo $(Configuration)
|
||||||
|
displayName: Configuration
|
||||||
|
|
||||||
|
- script: '"C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe" /target:Restore /detailedsummary /consoleloggerparameters:PerformanceSummary;ErrorsOnly; /property:Configuration=$(Configuration);TargetFrameworkVersion=v4.8 /p:RestoreSources=$(NugetSource)'
|
||||||
|
displayName: "MSBuild Restore"
|
||||||
|
|
||||||
|
- script: '"C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe" /target:Build /detailedsummary /consoleloggerparameters:PerformanceSummary;ErrorsOnly; /property:Configuration=$(Configuration);TargetFrameworkVersion=v4.8'
|
||||||
|
displayName: MSBuild
|
||||||
|
|
||||||
|
- script: 'echo $(Build.Repository.Name)-$(Build.BuildId)-$(Build.SourceVersion)>bin\$(Configuration)\$(Build.Repository.Name).txt'
|
||||||
|
displayName: "Commit Id"
|
||||||
|
|
||||||
|
- task: CopyFiles@2
|
||||||
|
displayName: 'Copy Files to: D:\EAF'
|
||||||
|
inputs:
|
||||||
|
Contents: "*$(Build.Repository.Name)*"
|
||||||
|
SourceFolder: 'bin\$(Configuration)'
|
||||||
|
TargetFolder: 'D:\EAF\EAF Deployment Storage\Adaptation_$(Build.Repository.Name)'
|
||||||
|
OverWrite: true
|
||||||
|
|
||||||
|
- script: '"C:\program files\dotnet\dotnet.exe" build --configuration $(Configuration) --source $(NugetSource)'
|
||||||
|
workingDirectory: Adaptation
|
||||||
|
displayName: "Core Build - Adaptation"
|
||||||
|
|
||||||
|
- job: TestRelease
|
||||||
|
dependsOn:
|
||||||
|
- SetupEnvironment
|
||||||
|
- BuildRelease
|
||||||
|
steps:
|
||||||
|
- script: |
|
||||||
|
set configuration=Release
|
||||||
|
echo %configuration%
|
||||||
|
echo ##vso[task.setvariable variable=Configuration;]%configuration%
|
||||||
|
echo $(Configuration)
|
||||||
|
displayName: Configuration
|
||||||
|
|
||||||
|
- powershell: Get-ChildItem .\ -include TestResults -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }
|
||||||
|
workingDirectory: "$(System.DefaultWorkingDirectory)/../../../$(Build.Repository.Name)"
|
||||||
|
displayName: "PowerShell Script"
|
||||||
|
continueOnError: true
|
||||||
|
|
||||||
|
- script: "dotnet test --configuration $(Configuration)"
|
||||||
|
workingDirectory: Adaptation
|
||||||
|
displayName: "Core Test"
|
||||||
|
|
||||||
|
- script: 'move /y "$(System.DefaultWorkingDirectory)/../../../$(Build.Repository.Name)/05_TestResults/TestResults" $(System.DefaultWorkingDirectory)'
|
||||||
|
displayName: "Move Results"
|
||||||
|
|
||||||
|
- script: '"C:\program files\dotnet\dotnet.exe" tool restore'
|
||||||
|
workingDirectory: Adaptation
|
||||||
|
displayName: "Tool Restore"
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
- script: '"C:\program files\dotnet\dotnet.exe" ReportGenerator -reports:$(System.DefaultWorkingDirectory)/TestResults/**/coverage.cobertura.xml -targetDir:$(Build.ArtifactStagingDirectory)\Coverage -reportTypes:Html_Dark'
|
||||||
|
workingDirectory: Adaptation
|
||||||
|
displayName: "Report Generator"
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
- task: PublishTestResults@2
|
||||||
|
displayName: "Publish Test Results **/*.trx"
|
||||||
|
inputs:
|
||||||
|
testResultsFormat: VSTest
|
||||||
|
testResultsFiles: "**/*.trx"
|
||||||
|
testRunTitle: "$(Build.BuildId)-$(Build.SourceVersion)-$(CoreVersion)-$(Configuration)-$(Build.Repository.Name)"
|
||||||
|
searchFolder: "$(System.DefaultWorkingDirectory)/TestResults"
|
||||||
|
|
||||||
|
- task: PublishTestResults@2
|
||||||
|
displayName: "Publish Test Results */coverage.cobertura.xml"
|
||||||
|
inputs:
|
||||||
|
testResultsFormat: VSTest
|
||||||
|
testResultsFiles: "*/coverage.cobertura.xml"
|
||||||
|
testRunTitle: "$(Build.BuildId)-$(Build.SourceVersion)-$(CoreVersion)-$(Configuration)-$(Build.Repository.Name)"
|
||||||
|
searchFolder: "$(System.DefaultWorkingDirectory)/TestResults"
|
||||||
|
|
||||||
|
- script: |
|
||||||
|
"C:\program files\dotnet\dotnet.exe" clean --configuration $(Configuration)
|
||||||
|
workingDirectory: Adaptation
|
||||||
|
displayName: "Core Clean - Adaptation"
|
||||||
|
|
||||||
|
- script: 'echo $(Build.BuildId)-$(Build.SourceVersion)-bin_x_x_\$(Configuration)\$(CoreVersion)\win-x64\$(Build.Repository.Name).txt'
|
||||||
|
displayName: "Force Fail"
|
||||||
|
enabled: true
|
||||||
|
|||||||
@ -3,6 +3,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
namespace Adaptation.Shared.Duplicator;
|
namespace Adaptation.Shared.Duplicator;
|
||||||
|
|
||||||
@ -178,4 +179,16 @@ public class Description : IDescription, Properties.IDescription
|
|||||||
|
|
||||||
internal static string GetDateFormat() => "MM/dd/yyyy hh:mm:ss tt";
|
internal static string GetDateFormat() => "MM/dd/yyyy hh:mm:ss tt";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
[JsonSourceGenerationOptions(WriteIndented = true, NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
|
||||||
|
[JsonSerializable(typeof(Description))]
|
||||||
|
internal partial class SharedDescriptionSourceGenerationContext : JsonSerializerContext
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[JsonSourceGenerationOptions(WriteIndented = true, NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
|
||||||
|
[JsonSerializable(typeof(Description[]))]
|
||||||
|
internal partial class SharedDescriptionArraySourceGenerationContext : JsonSerializerContext
|
||||||
|
{
|
||||||
}
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
@ -35,6 +35,9 @@ public class Logistics : ILogistics
|
|||||||
public long Sequence => _Sequence;
|
public long Sequence => _Sequence;
|
||||||
public double TotalSecondsSinceLastWriteTimeFromSequence => _TotalSecondsSinceLastWriteTimeFromSequence;
|
public double TotalSecondsSinceLastWriteTimeFromSequence => _TotalSecondsSinceLastWriteTimeFromSequence;
|
||||||
|
|
||||||
|
private static string DefaultMesEntity(DateTime dateTime) =>
|
||||||
|
string.Concat(dateTime.Ticks, "_MES_ENTITY");
|
||||||
|
|
||||||
public Logistics(IFileRead fileRead)
|
public Logistics(IFileRead fileRead)
|
||||||
{
|
{
|
||||||
DateTime dateTime = DateTime.Now;
|
DateTime dateTime = DateTime.Now;
|
||||||
@ -84,13 +87,13 @@ public class Logistics : ILogistics
|
|||||||
_Logistics2 = new List<Logistics2>();
|
_Logistics2 = new List<Logistics2>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Logistics(string reportFullPath, string logistics)
|
internal Logistics(string reportFullPath, ProcessDataStandardFormat processDataStandardFormat)
|
||||||
{
|
{
|
||||||
string key;
|
string key;
|
||||||
DateTime dateTime;
|
DateTime dateTime;
|
||||||
string[] segments;
|
string[] segments;
|
||||||
_FileInfo = new(reportFullPath);
|
_FileInfo = new(reportFullPath);
|
||||||
_Logistics1 = logistics.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList();
|
_Logistics1 = processDataStandardFormat.Logistics.ToList();
|
||||||
if (Logistics1.Count == 0 || !Logistics1[0].StartsWith("LOGISTICS_1"))
|
if (Logistics1.Count == 0 || !Logistics1[0].StartsWith("LOGISTICS_1"))
|
||||||
{
|
{
|
||||||
_NullData = null;
|
_NullData = null;
|
||||||
@ -190,8 +193,6 @@ public class Logistics : ILogistics
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string DefaultMesEntity(DateTime dateTime) => string.Concat(dateTime.Ticks, "_MES_ENTITY");
|
|
||||||
|
|
||||||
internal void Update(string mid, string processJobID)
|
internal void Update(string mid, string processJobID)
|
||||||
{
|
{
|
||||||
_MID = mid;
|
_MID = mid;
|
||||||
|
|||||||
@ -6,23 +6,25 @@ public partial class WS
|
|||||||
public class Attachment
|
public class Attachment
|
||||||
{
|
{
|
||||||
|
|
||||||
public string SubGroupId { get; set; }
|
#nullable enable
|
||||||
public long HeaderId { get; set; }
|
|
||||||
public string HeaderIdDirectory { get; set; }
|
|
||||||
public string UniqueId { get; set; }
|
|
||||||
public string DestinationFileName { get; set; }
|
|
||||||
public string SourceFileName { get; set; }
|
|
||||||
public string AttachmentId { get; set; }
|
|
||||||
|
|
||||||
public Attachment(string subGroupId, long headerId, string headerIdDirectory, string uniqueId, string destinationFileName, string sourceFileName)
|
public long HeaderId { get; set; }
|
||||||
|
public string UniqueId { get; set; }
|
||||||
|
public string SubGroupId { get; set; }
|
||||||
|
public string AttachmentId { get; set; }
|
||||||
|
public string SourceFileName { get; set; }
|
||||||
|
public string HeaderIdDirectory { get; set; }
|
||||||
|
public string DestinationFileName { get; set; }
|
||||||
|
|
||||||
|
public Attachment(Results? results, string headerIdDirectory, string uniqueId, string destinationFileName, string sourceFileName)
|
||||||
{
|
{
|
||||||
SubGroupId = subGroupId;
|
|
||||||
HeaderId = headerId;
|
|
||||||
HeaderIdDirectory = headerIdDirectory;
|
|
||||||
UniqueId = uniqueId;
|
UniqueId = uniqueId;
|
||||||
DestinationFileName = destinationFileName;
|
|
||||||
SourceFileName = sourceFileName;
|
SourceFileName = sourceFileName;
|
||||||
|
HeaderIdDirectory = headerIdDirectory;
|
||||||
|
DestinationFileName = destinationFileName;
|
||||||
AttachmentId = System.Guid.NewGuid().ToString();
|
AttachmentId = System.Guid.NewGuid().ToString();
|
||||||
|
HeaderId = results?.HeaderId is null ? -1 : results.HeaderId.Value;
|
||||||
|
SubGroupId = results?.SubgroupId is null ? string.Empty : results.SubgroupId.Value.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,27 +1,75 @@
|
|||||||
using System.Collections.Generic;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
namespace Adaptation.Shared.Metrology;
|
namespace Adaptation.Shared.Metrology;
|
||||||
|
|
||||||
public partial class WS
|
public partial class WS
|
||||||
{
|
{
|
||||||
// this class represents the response from the Inbound API endpoint
|
|
||||||
public class Results
|
public class Results
|
||||||
{
|
{
|
||||||
// true or false if data was written to the database
|
|
||||||
public bool Success { get; set; }
|
|
||||||
|
|
||||||
// if true, contains ID of the Header record in the database
|
#nullable enable
|
||||||
public long HeaderID { get; set; }
|
|
||||||
|
|
||||||
// if false, this collection will contain a list of errors
|
[JsonConstructor]
|
||||||
public List<string> Errors { get; set; }
|
public Results(List<string>? errors,
|
||||||
|
long? headerId,
|
||||||
|
long? subgroupId,
|
||||||
|
bool? success,
|
||||||
|
List<string>? warnings)
|
||||||
|
{
|
||||||
|
Errors = errors;
|
||||||
|
Success = success;
|
||||||
|
HeaderId = headerId;
|
||||||
|
Warnings = warnings;
|
||||||
|
SubgroupId = subgroupId;
|
||||||
|
}
|
||||||
|
|
||||||
// this collection will contain a list of warnings, they will not prevent data from being saved
|
[JsonPropertyName("errors")] public List<string>? Errors { get; set; }
|
||||||
public List<string> Warnings { get; set; }
|
[JsonPropertyName("headerID")] public long? HeaderId { get; set; }
|
||||||
|
[JsonPropertyName("subgroupId")] public long? SubgroupId { get; set; }
|
||||||
|
[JsonPropertyName("success")] public bool? Success { get; set; }
|
||||||
|
[JsonPropertyName("warnings")] public List<string>? Warnings { get; set; }
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
string result = JsonSerializer.Serialize(this, ResultsSourceGenerationContext.Default.Results);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static Results Get(Results results, long? subgroupId) =>
|
||||||
|
new(results.Errors, results.HeaderId, subgroupId, results.Success, results.Warnings);
|
||||||
|
|
||||||
|
internal static Results Get(string resultsJson, Exception e)
|
||||||
|
{
|
||||||
|
Results results;
|
||||||
|
Exception? exception = e;
|
||||||
|
List<string> errors = new();
|
||||||
|
StringBuilder stringBuilder = new();
|
||||||
|
while (exception is not null)
|
||||||
|
{
|
||||||
|
_ = stringBuilder.AppendLine(exception.Message);
|
||||||
|
exception = exception.InnerException;
|
||||||
|
}
|
||||||
|
errors.Add(resultsJson);
|
||||||
|
errors.Add(stringBuilder.ToString());
|
||||||
|
results = new(errors: errors,
|
||||||
|
headerId: null,
|
||||||
|
subgroupId: null,
|
||||||
|
success: false,
|
||||||
|
warnings: new());
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
// this is just a helper function to make displaying the results easier
|
|
||||||
public override string ToString() => JsonSerializer.Serialize(this, GetType());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
[JsonSourceGenerationOptions(WriteIndented = true)]
|
||||||
|
[JsonSerializable(typeof(WS.Results))]
|
||||||
|
internal partial class ResultsSourceGenerationContext : JsonSerializerContext
|
||||||
|
{
|
||||||
}
|
}
|
||||||
@ -10,9 +10,11 @@ namespace Adaptation.Shared.Metrology;
|
|||||||
public partial class WS
|
public partial class WS
|
||||||
{
|
{
|
||||||
|
|
||||||
|
#nullable enable
|
||||||
|
|
||||||
public static (string, Results) SendData(string url, long sequence, string directory, object payload, int timeoutSeconds = 120)
|
public static (string, Results) SendData(string url, long sequence, string directory, object payload, int timeoutSeconds = 120)
|
||||||
{
|
{
|
||||||
Results results = new();
|
Results? wsResults = null;
|
||||||
string resultsJson = string.Empty;
|
string resultsJson = string.Empty;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -30,29 +32,20 @@ public partial class WS
|
|||||||
};
|
};
|
||||||
HttpResponseMessage httpResponseMessage = httpClient.SendAsync(httpRequestMessage, HttpCompletionOption.ResponseContentRead).Result;
|
HttpResponseMessage httpResponseMessage = httpClient.SendAsync(httpRequestMessage, HttpCompletionOption.ResponseContentRead).Result;
|
||||||
resultsJson = httpResponseMessage.Content.ReadAsStringAsync().Result;
|
resultsJson = httpResponseMessage.Content.ReadAsStringAsync().Result;
|
||||||
results = JsonSerializer.Deserialize<Results>(resultsJson, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
|
wsResults = JsonSerializer.Deserialize(resultsJson, ResultsSourceGenerationContext.Default.Results);
|
||||||
string checkDirectory = Path.Combine(directory, $"-{results.HeaderID}");
|
if (wsResults is null)
|
||||||
|
throw new NullReferenceException(nameof(wsResults));
|
||||||
|
string checkDirectory = Path.Combine(directory, $"-{wsResults.HeaderId}");
|
||||||
if (!Directory.Exists(checkDirectory))
|
if (!Directory.Exists(checkDirectory))
|
||||||
_ = Directory.CreateDirectory(checkDirectory);
|
_ = Directory.CreateDirectory(checkDirectory);
|
||||||
File.WriteAllText(Path.Combine(checkDirectory, $"{sequence}.json"), json);
|
File.WriteAllText(Path.Combine(checkDirectory, $"{sequence}.json"), json);
|
||||||
}
|
}
|
||||||
if (!results.Success)
|
if (wsResults.Success is null || !wsResults.Success.Value)
|
||||||
results.Errors.Add(results.ToString());
|
wsResults.Errors?.Add(wsResults.ToString());
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{ wsResults ??= Results.Get(resultsJson, e); }
|
||||||
Exception exception = e;
|
return new(resultsJson, wsResults);
|
||||||
StringBuilder stringBuilder = new();
|
|
||||||
while (exception is not null)
|
|
||||||
{
|
|
||||||
_ = stringBuilder.AppendLine(exception.Message);
|
|
||||||
exception = exception.InnerException;
|
|
||||||
}
|
|
||||||
results.Errors ??= new List<string>();
|
|
||||||
results.Errors.Add(resultsJson);
|
|
||||||
results.Errors.Add(stringBuilder.ToString());
|
|
||||||
}
|
|
||||||
return new(resultsJson, results);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void AttachFile(string url, Attachment attachment, int timeoutSeconds = 60)
|
public static void AttachFile(string url, Attachment attachment, int timeoutSeconds = 60)
|
||||||
@ -69,16 +62,20 @@ public partial class WS
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void AttachFiles(string url, List<Attachment> headerAttachments = null, List<Attachment> dataAttachments = null)
|
public static void AttachFiles(string url, List<Attachment>? headerAttachments = null, List<Attachment>? dataAttachments = null)
|
||||||
{
|
{
|
||||||
string directory;
|
string directory;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
string? directoryName;
|
||||||
if (headerAttachments is not null)
|
if (headerAttachments is not null)
|
||||||
{
|
{
|
||||||
foreach (Attachment attachment in headerAttachments)
|
foreach (Attachment attachment in headerAttachments)
|
||||||
{
|
{
|
||||||
directory = Path.Combine(Path.GetDirectoryName(attachment.HeaderIdDirectory), attachment.AttachmentId) ?? throw new Exception();
|
directoryName = Path.GetDirectoryName(attachment.HeaderIdDirectory);
|
||||||
|
if (string.IsNullOrEmpty(directoryName))
|
||||||
|
continue;
|
||||||
|
directory = Path.Combine(directoryName, attachment.AttachmentId) ?? throw new Exception();
|
||||||
if (!Directory.Exists(directory))
|
if (!Directory.Exists(directory))
|
||||||
_ = Directory.CreateDirectory(directory);
|
_ = Directory.CreateDirectory(directory);
|
||||||
File.Copy(attachment.SourceFileName, Path.Combine(directory, attachment.DestinationFileName), overwrite: true);
|
File.Copy(attachment.SourceFileName, Path.Combine(directory, attachment.DestinationFileName), overwrite: true);
|
||||||
@ -88,7 +85,10 @@ public partial class WS
|
|||||||
{
|
{
|
||||||
foreach (Attachment attachment in dataAttachments)
|
foreach (Attachment attachment in dataAttachments)
|
||||||
{
|
{
|
||||||
directory = Path.Combine(Path.GetDirectoryName(attachment.HeaderIdDirectory.Replace("Header", "Data")), attachment.AttachmentId) ?? throw new Exception();
|
directoryName = Path.GetDirectoryName(attachment.HeaderIdDirectory.Replace("Header", "Data"));
|
||||||
|
if (string.IsNullOrEmpty(directoryName))
|
||||||
|
continue;
|
||||||
|
directory = Path.Combine(directoryName, attachment.AttachmentId) ?? throw new Exception();
|
||||||
if (!Directory.Exists(directory))
|
if (!Directory.Exists(directory))
|
||||||
_ = Directory.CreateDirectory(directory);
|
_ = Directory.CreateDirectory(directory);
|
||||||
File.Copy(attachment.SourceFileName, Path.Combine(directory, attachment.DestinationFileName), overwrite: true);
|
File.Copy(attachment.SourceFileName, Path.Combine(directory, attachment.DestinationFileName), overwrite: true);
|
||||||
@ -108,7 +108,7 @@ public partial class WS
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Exception exception = e;
|
Exception? exception = e;
|
||||||
StringBuilder stringBuilder = new();
|
StringBuilder stringBuilder = new();
|
||||||
while (exception is not null)
|
while (exception is not null)
|
||||||
{
|
{
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
34
Adaptation/Shared/ProcessDataStandardFormatMapping.cs
Normal file
34
Adaptation/Shared/ProcessDataStandardFormatMapping.cs
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
namespace Adaptation.Shared;
|
||||||
|
|
||||||
|
public class ProcessDataStandardFormatMapping
|
||||||
|
{
|
||||||
|
|
||||||
|
public ReadOnlyCollection<int> ColumnIndices { get; private set; }
|
||||||
|
public ReadOnlyCollection<string> NewColumnNames { get; private set; }
|
||||||
|
public ReadOnlyCollection<string> OldColumnNames { get; private set; }
|
||||||
|
|
||||||
|
public ProcessDataStandardFormatMapping(ReadOnlyCollection<int> columnIndices,
|
||||||
|
ReadOnlyCollection<string> newColumnNames,
|
||||||
|
ReadOnlyCollection<string> oldColumnNames)
|
||||||
|
{
|
||||||
|
ColumnIndices = columnIndices;
|
||||||
|
NewColumnNames = newColumnNames;
|
||||||
|
OldColumnNames = oldColumnNames;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static ProcessDataStandardFormatMapping Get(string processDataStandardFormatMappingOldColumnNames, string processDataStandardFormatMappingNewColumnNames, string processDataStandardFormatMappingColumnIndices)
|
||||||
|
{
|
||||||
|
ProcessDataStandardFormatMapping result;
|
||||||
|
ReadOnlyCollection<string> newColumnNames = new(processDataStandardFormatMappingNewColumnNames.Split(','));
|
||||||
|
ReadOnlyCollection<string> oldColumnNames = new(processDataStandardFormatMappingOldColumnNames.Split(','));
|
||||||
|
ReadOnlyCollection<int> columnIndices = new(processDataStandardFormatMappingColumnIndices.Split(',').Select(int.Parse).ToArray());
|
||||||
|
result = new(columnIndices: columnIndices,
|
||||||
|
newColumnNames: newColumnNames,
|
||||||
|
oldColumnNames: oldColumnNames);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,4 +1,4 @@
|
|||||||
#if true
|
#if v2_57_0
|
||||||
using Adaptation._Tests.Shared;
|
using Adaptation._Tests.Shared;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#if true
|
#if v2_57_0
|
||||||
using Adaptation._Tests.Shared;
|
using Adaptation._Tests.Shared;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#if true
|
#if v2_57_0
|
||||||
using Adaptation._Tests.Shared;
|
using Adaptation._Tests.Shared;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
|||||||
@ -0,0 +1,195 @@
|
|||||||
|
#if v2_58_0
|
||||||
|
using Adaptation._Tests.Shared;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.CreateSelfDescription.Production.v2_58_0;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class MET08DDUPSP1TBI : EAFLoggingUnitTesting
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
internal static string DummyRoot { get; private set; }
|
||||||
|
internal static MET08DDUPSP1TBI EAFLoggingUnitTesting { get; private set; }
|
||||||
|
|
||||||
|
static MET08DDUPSP1TBI() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy";
|
||||||
|
|
||||||
|
public MET08DDUPSP1TBI() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
if (EAFLoggingUnitTesting is null)
|
||||||
|
throw new Exception();
|
||||||
|
}
|
||||||
|
|
||||||
|
public MET08DDUPSP1TBI(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting ??= new MET08DDUPSP1TBI(testContext);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize"));
|
||||||
|
string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName);
|
||||||
|
File.WriteAllText(fileNameAndText[0], fileNameAndText[1]);
|
||||||
|
File.WriteAllText(fileNameAndText[2], fileNameAndText[3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassCleanup()]
|
||||||
|
public static void ClassCleanup()
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup");
|
||||||
|
EAFLoggingUnitTesting?.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__MET08DDUPSP1TBI__MoveMatchingFiles()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__MET08DDUPSP1TBI__OpenInsightMetrologyViewer()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__MET08DDUPSP1TBI__IQSSi()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__MET08DDUPSP1TBI__OpenInsight()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__MET08DDUPSP1TBI__OpenInsightMetrologyViewerAttachments()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__MET08DDUPSP1TBI__APC()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__MET08DDUPSP1TBI__SPaCe()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__MET08DDUPSP1TBI__Processed()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__MET08DDUPSP1TBI__Archive()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__MET08DDUPSP1TBI__Dummy()
|
||||||
|
{
|
||||||
|
string check = "637400748000000000.zip";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__MET08DDUPSP1TBI__TIBCO()
|
||||||
|
{
|
||||||
|
string check = "*.idc";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@ -0,0 +1,70 @@
|
|||||||
|
#if v2_58_0
|
||||||
|
using Adaptation._Tests.Shared;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
|
namespace Adaptation._Tests.CreateSelfDescription.Production.v2_58_0;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class SP101_EQPT : EAFLoggingUnitTesting
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
internal static string DummyRoot { get; private set; }
|
||||||
|
internal static SP101_EQPT EAFLoggingUnitTesting { get; private set; }
|
||||||
|
|
||||||
|
static SP101_EQPT() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy";
|
||||||
|
|
||||||
|
public SP101_EQPT() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
if (EAFLoggingUnitTesting is null)
|
||||||
|
throw new Exception();
|
||||||
|
}
|
||||||
|
|
||||||
|
public SP101_EQPT(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting ??= new SP101_EQPT(testContext);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize"));
|
||||||
|
string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName);
|
||||||
|
File.WriteAllText(fileNameAndText[0], fileNameAndText[1]);
|
||||||
|
File.WriteAllText(fileNameAndText[2], fileNameAndText[3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassCleanup()]
|
||||||
|
public static void ClassCleanup()
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup");
|
||||||
|
EAFLoggingUnitTesting?.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void NonThrowTryCatch()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{ throw new Exception(); }
|
||||||
|
catch (Exception) { }
|
||||||
|
}
|
||||||
|
|
||||||
|
[Ignore]
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__SP101_EQPT__MoveAllFiles()
|
||||||
|
{
|
||||||
|
string check = "*";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@ -0,0 +1,65 @@
|
|||||||
|
#if v2_58_0
|
||||||
|
using Adaptation._Tests.Shared;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.CreateSelfDescription.Production.v2_58_0;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class SP101 : EAFLoggingUnitTesting
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
internal static string DummyRoot { get; private set; }
|
||||||
|
internal static SP101 EAFLoggingUnitTesting { get; private set; }
|
||||||
|
|
||||||
|
static SP101() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy";
|
||||||
|
|
||||||
|
public SP101() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
if (EAFLoggingUnitTesting is null)
|
||||||
|
throw new Exception();
|
||||||
|
}
|
||||||
|
|
||||||
|
public SP101(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting ??= new SP101(testContext);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize"));
|
||||||
|
string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName);
|
||||||
|
File.WriteAllText(fileNameAndText[0], fileNameAndText[1]);
|
||||||
|
File.WriteAllText(fileNameAndText[2], fileNameAndText[3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassCleanup()]
|
||||||
|
public static void ClassCleanup()
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup");
|
||||||
|
EAFLoggingUnitTesting?.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__SP101__txt()
|
||||||
|
{
|
||||||
|
string check = "*.txt";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@ -0,0 +1,195 @@
|
|||||||
|
#if v2_59_0
|
||||||
|
using Adaptation._Tests.Shared;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.CreateSelfDescription.Production.v2_59_0;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class MET08DDUPSP1TBI : EAFLoggingUnitTesting
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
internal static string DummyRoot { get; private set; }
|
||||||
|
internal static MET08DDUPSP1TBI EAFLoggingUnitTesting { get; private set; }
|
||||||
|
|
||||||
|
static MET08DDUPSP1TBI() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy";
|
||||||
|
|
||||||
|
public MET08DDUPSP1TBI() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
if (EAFLoggingUnitTesting is null)
|
||||||
|
throw new Exception();
|
||||||
|
}
|
||||||
|
|
||||||
|
public MET08DDUPSP1TBI(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting ??= new MET08DDUPSP1TBI(testContext);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize"));
|
||||||
|
string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName);
|
||||||
|
File.WriteAllText(fileNameAndText[0], fileNameAndText[1]);
|
||||||
|
File.WriteAllText(fileNameAndText[2], fileNameAndText[3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassCleanup()]
|
||||||
|
public static void ClassCleanup()
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup");
|
||||||
|
EAFLoggingUnitTesting?.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__MET08DDUPSP1TBI__MoveMatchingFiles()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__MET08DDUPSP1TBI__OpenInsightMetrologyViewer()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__MET08DDUPSP1TBI__IQSSi()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__MET08DDUPSP1TBI__OpenInsight()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__MET08DDUPSP1TBI__OpenInsightMetrologyViewerAttachments()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__MET08DDUPSP1TBI__APC()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__MET08DDUPSP1TBI__SPaCe()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__MET08DDUPSP1TBI__Processed()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__MET08DDUPSP1TBI__Archive()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__MET08DDUPSP1TBI__Dummy()
|
||||||
|
{
|
||||||
|
string check = "637400748000000000.zip";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__MET08DDUPSP1TBI__TIBCO()
|
||||||
|
{
|
||||||
|
string check = "*.idc";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@ -0,0 +1,70 @@
|
|||||||
|
#if v2_59_0
|
||||||
|
using Adaptation._Tests.Shared;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
|
namespace Adaptation._Tests.CreateSelfDescription.Production.v2_59_0;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class SP101_EQPT : EAFLoggingUnitTesting
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
internal static string DummyRoot { get; private set; }
|
||||||
|
internal static SP101_EQPT EAFLoggingUnitTesting { get; private set; }
|
||||||
|
|
||||||
|
static SP101_EQPT() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy";
|
||||||
|
|
||||||
|
public SP101_EQPT() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
if (EAFLoggingUnitTesting is null)
|
||||||
|
throw new Exception();
|
||||||
|
}
|
||||||
|
|
||||||
|
public SP101_EQPT(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting ??= new SP101_EQPT(testContext);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize"));
|
||||||
|
string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName);
|
||||||
|
File.WriteAllText(fileNameAndText[0], fileNameAndText[1]);
|
||||||
|
File.WriteAllText(fileNameAndText[2], fileNameAndText[3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassCleanup()]
|
||||||
|
public static void ClassCleanup()
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup");
|
||||||
|
EAFLoggingUnitTesting?.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void NonThrowTryCatch()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{ throw new Exception(); }
|
||||||
|
catch (Exception) { }
|
||||||
|
}
|
||||||
|
|
||||||
|
[Ignore]
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__SP101_EQPT__MoveAllFiles()
|
||||||
|
{
|
||||||
|
string check = "*";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@ -0,0 +1,65 @@
|
|||||||
|
#if v2_59_0
|
||||||
|
using Adaptation._Tests.Shared;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.CreateSelfDescription.Production.v2_59_0;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class SP101 : EAFLoggingUnitTesting
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
internal static string DummyRoot { get; private set; }
|
||||||
|
internal static SP101 EAFLoggingUnitTesting { get; private set; }
|
||||||
|
|
||||||
|
static SP101() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy";
|
||||||
|
|
||||||
|
public SP101() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
if (EAFLoggingUnitTesting is null)
|
||||||
|
throw new Exception();
|
||||||
|
}
|
||||||
|
|
||||||
|
public SP101(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting ??= new SP101(testContext);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize"));
|
||||||
|
string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName);
|
||||||
|
File.WriteAllText(fileNameAndText[0], fileNameAndText[1]);
|
||||||
|
File.WriteAllText(fileNameAndText[2], fileNameAndText[3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassCleanup()]
|
||||||
|
public static void ClassCleanup()
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup");
|
||||||
|
EAFLoggingUnitTesting?.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__SP101__txt()
|
||||||
|
{
|
||||||
|
string check = "*.txt";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@ -0,0 +1,195 @@
|
|||||||
|
#if v2_60_0
|
||||||
|
using Adaptation._Tests.Shared;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.CreateSelfDescription.Production.v2_60_0;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class MET08DDUPSP1TBI : EAFLoggingUnitTesting
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
internal static string DummyRoot { get; private set; }
|
||||||
|
internal static MET08DDUPSP1TBI EAFLoggingUnitTesting { get; private set; }
|
||||||
|
|
||||||
|
static MET08DDUPSP1TBI() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy";
|
||||||
|
|
||||||
|
public MET08DDUPSP1TBI() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
if (EAFLoggingUnitTesting is null)
|
||||||
|
throw new Exception();
|
||||||
|
}
|
||||||
|
|
||||||
|
public MET08DDUPSP1TBI(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting ??= new MET08DDUPSP1TBI(testContext);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize"));
|
||||||
|
string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName);
|
||||||
|
File.WriteAllText(fileNameAndText[0], fileNameAndText[1]);
|
||||||
|
File.WriteAllText(fileNameAndText[2], fileNameAndText[3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassCleanup()]
|
||||||
|
public static void ClassCleanup()
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup");
|
||||||
|
EAFLoggingUnitTesting?.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__MET08DDUPSP1TBI__MoveMatchingFiles()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__MET08DDUPSP1TBI__OpenInsightMetrologyViewer()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__MET08DDUPSP1TBI__IQSSi()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__MET08DDUPSP1TBI__OpenInsight()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__MET08DDUPSP1TBI__OpenInsightMetrologyViewerAttachments()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__MET08DDUPSP1TBI__APC()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__MET08DDUPSP1TBI__SPaCe()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__MET08DDUPSP1TBI__Processed()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__MET08DDUPSP1TBI__Archive()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__MET08DDUPSP1TBI__Dummy()
|
||||||
|
{
|
||||||
|
string check = "637400748000000000.zip";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__MET08DDUPSP1TBI__TIBCO()
|
||||||
|
{
|
||||||
|
string check = "*.idc";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@ -0,0 +1,70 @@
|
|||||||
|
#if v2_60_0
|
||||||
|
using Adaptation._Tests.Shared;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
|
namespace Adaptation._Tests.CreateSelfDescription.Production.v2_60_0;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class SP101_EQPT : EAFLoggingUnitTesting
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
internal static string DummyRoot { get; private set; }
|
||||||
|
internal static SP101_EQPT EAFLoggingUnitTesting { get; private set; }
|
||||||
|
|
||||||
|
static SP101_EQPT() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy";
|
||||||
|
|
||||||
|
public SP101_EQPT() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
if (EAFLoggingUnitTesting is null)
|
||||||
|
throw new Exception();
|
||||||
|
}
|
||||||
|
|
||||||
|
public SP101_EQPT(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting ??= new SP101_EQPT(testContext);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize"));
|
||||||
|
string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName);
|
||||||
|
File.WriteAllText(fileNameAndText[0], fileNameAndText[1]);
|
||||||
|
File.WriteAllText(fileNameAndText[2], fileNameAndText[3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassCleanup()]
|
||||||
|
public static void ClassCleanup()
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup");
|
||||||
|
EAFLoggingUnitTesting?.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void NonThrowTryCatch()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{ throw new Exception(); }
|
||||||
|
catch (Exception) { }
|
||||||
|
}
|
||||||
|
|
||||||
|
[Ignore]
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__SP101_EQPT__MoveAllFiles()
|
||||||
|
{
|
||||||
|
string check = "*";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@ -0,0 +1,65 @@
|
|||||||
|
#if v2_60_0
|
||||||
|
using Adaptation._Tests.Shared;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.CreateSelfDescription.Production.v2_60_0;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class SP101 : EAFLoggingUnitTesting
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
internal static string DummyRoot { get; private set; }
|
||||||
|
internal static SP101 EAFLoggingUnitTesting { get; private set; }
|
||||||
|
|
||||||
|
static SP101() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy";
|
||||||
|
|
||||||
|
public SP101() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
if (EAFLoggingUnitTesting is null)
|
||||||
|
throw new Exception();
|
||||||
|
}
|
||||||
|
|
||||||
|
public SP101(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting ??= new SP101(testContext);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize"));
|
||||||
|
string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName);
|
||||||
|
File.WriteAllText(fileNameAndText[0], fileNameAndText[1]);
|
||||||
|
File.WriteAllText(fileNameAndText[2], fileNameAndText[3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassCleanup()]
|
||||||
|
public static void ClassCleanup()
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup");
|
||||||
|
EAFLoggingUnitTesting?.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__SP101__txt()
|
||||||
|
{
|
||||||
|
string check = "*.txt";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@ -0,0 +1,195 @@
|
|||||||
|
#if true
|
||||||
|
using Adaptation._Tests.Shared;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.CreateSelfDescription.Production.v2_61_1;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class MET08DDUPSP1TBI : EAFLoggingUnitTesting
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
internal static string DummyRoot { get; private set; }
|
||||||
|
internal static MET08DDUPSP1TBI EAFLoggingUnitTesting { get; private set; }
|
||||||
|
|
||||||
|
static MET08DDUPSP1TBI() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy";
|
||||||
|
|
||||||
|
public MET08DDUPSP1TBI() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
if (EAFLoggingUnitTesting is null)
|
||||||
|
throw new Exception();
|
||||||
|
}
|
||||||
|
|
||||||
|
public MET08DDUPSP1TBI(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting ??= new MET08DDUPSP1TBI(testContext);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize"));
|
||||||
|
string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName);
|
||||||
|
File.WriteAllText(fileNameAndText[0], fileNameAndText[1]);
|
||||||
|
File.WriteAllText(fileNameAndText[2], fileNameAndText[3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassCleanup()]
|
||||||
|
public static void ClassCleanup()
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup");
|
||||||
|
EAFLoggingUnitTesting?.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__MoveMatchingFiles()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__OpenInsightMetrologyViewer()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__IQSSi()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__OpenInsight()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__OpenInsightMetrologyViewerAttachments()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__APC()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__SPaCe()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__Processed()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__Archive()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__Dummy()
|
||||||
|
{
|
||||||
|
string check = "637400748000000000.zip";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__TIBCO()
|
||||||
|
{
|
||||||
|
string check = "*.idc";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@ -0,0 +1,70 @@
|
|||||||
|
#if true
|
||||||
|
using Adaptation._Tests.Shared;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
|
namespace Adaptation._Tests.CreateSelfDescription.Production.v2_61_1;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class SP101_EQPT : EAFLoggingUnitTesting
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
internal static string DummyRoot { get; private set; }
|
||||||
|
internal static SP101_EQPT EAFLoggingUnitTesting { get; private set; }
|
||||||
|
|
||||||
|
static SP101_EQPT() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy";
|
||||||
|
|
||||||
|
public SP101_EQPT() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
if (EAFLoggingUnitTesting is null)
|
||||||
|
throw new Exception();
|
||||||
|
}
|
||||||
|
|
||||||
|
public SP101_EQPT(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting ??= new SP101_EQPT(testContext);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize"));
|
||||||
|
string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName);
|
||||||
|
File.WriteAllText(fileNameAndText[0], fileNameAndText[1]);
|
||||||
|
File.WriteAllText(fileNameAndText[2], fileNameAndText[3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassCleanup()]
|
||||||
|
public static void ClassCleanup()
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup");
|
||||||
|
EAFLoggingUnitTesting?.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void NonThrowTryCatch()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{ throw new Exception(); }
|
||||||
|
catch (Exception) { }
|
||||||
|
}
|
||||||
|
|
||||||
|
[Ignore]
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__SP101_EQPT__MoveAllFiles()
|
||||||
|
{
|
||||||
|
string check = "*";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@ -0,0 +1,65 @@
|
|||||||
|
#if true
|
||||||
|
using Adaptation._Tests.Shared;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.CreateSelfDescription.Production.v2_61_1;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class SP101 : EAFLoggingUnitTesting
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
internal static string DummyRoot { get; private set; }
|
||||||
|
internal static SP101 EAFLoggingUnitTesting { get; private set; }
|
||||||
|
|
||||||
|
static SP101() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy";
|
||||||
|
|
||||||
|
public SP101() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
if (EAFLoggingUnitTesting is null)
|
||||||
|
throw new Exception();
|
||||||
|
}
|
||||||
|
|
||||||
|
public SP101(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting ??= new SP101(testContext);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize"));
|
||||||
|
string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName);
|
||||||
|
File.WriteAllText(fileNameAndText[0], fileNameAndText[1]);
|
||||||
|
File.WriteAllText(fileNameAndText[2], fileNameAndText[3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassCleanup()]
|
||||||
|
public static void ClassCleanup()
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup");
|
||||||
|
EAFLoggingUnitTesting?.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__SP101__txt()
|
||||||
|
{
|
||||||
|
string check = "*.txt";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@ -1,4 +1,4 @@
|
|||||||
#if true
|
#if v2_57_0
|
||||||
using Adaptation.Shared;
|
using Adaptation.Shared;
|
||||||
using Adaptation.Shared.Methods;
|
using Adaptation.Shared.Methods;
|
||||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#if true
|
#if v2_57_0
|
||||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
|
||||||
namespace Adaptation._Tests.Extract.Production.v2_57_0;
|
namespace Adaptation._Tests.Extract.Production.v2_57_0;
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#if true
|
#if v2_57_0
|
||||||
using Adaptation.Shared;
|
using Adaptation.Shared;
|
||||||
using Adaptation.Shared.Methods;
|
using Adaptation.Shared.Methods;
|
||||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
|||||||
148
Adaptation/_Tests/Extract/Production/v2.58.0/MET08DDUPSP1TBI.cs
Normal file
148
Adaptation/_Tests/Extract/Production/v2.58.0/MET08DDUPSP1TBI.cs
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
#if v2_58_0
|
||||||
|
using Adaptation.Shared;
|
||||||
|
using Adaptation.Shared.Methods;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.Extract.Production.v2_58_0;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class MET08DDUPSP1TBI
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
private static CreateSelfDescription.Production.v2_58_0.MET08DDUPSP1TBI _MET08DDUPSP1TBI;
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
CreateSelfDescription.Production.v2_58_0.MET08DDUPSP1TBI.ClassInitialize(testContext);
|
||||||
|
_MET08DDUPSP1TBI = CreateSelfDescription.Production.v2_58_0.MET08DDUPSP1TBI.EAFLoggingUnitTesting;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void NonThrowTryCatch()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{ throw new Exception(); }
|
||||||
|
catch (Exception) { }
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__MET08DDUPSP1TBI__MoveMatchingFiles() => _MET08DDUPSP1TBI.Production__v2_58_0__MET08DDUPSP1TBI__MoveMatchingFiles();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__MET08DDUPSP1TBI__MoveMatchingFiles637955319879801344__Normal()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
bool validatePDSF = false;
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
_MET08DDUPSP1TBI.Production__v2_58_0__MET08DDUPSP1TBI__MoveMatchingFiles();
|
||||||
|
string[] variables = _MET08DDUPSP1TBI.AdaptationTesting.GetVariables(methodBase, check, validatePDSF);
|
||||||
|
IFileRead fileRead = _MET08DDUPSP1TBI.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
|
||||||
|
Logistics logistics = new(fileRead);
|
||||||
|
_ = Shared.AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF);
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__MET08DDUPSP1TBI__OpenInsightMetrologyViewer() => _MET08DDUPSP1TBI.Production__v2_58_0__MET08DDUPSP1TBI__OpenInsightMetrologyViewer();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__MET08DDUPSP1TBI__IQSSi() => _MET08DDUPSP1TBI.Production__v2_58_0__MET08DDUPSP1TBI__IQSSi();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__MET08DDUPSP1TBI__OpenInsight() => _MET08DDUPSP1TBI.Production__v2_58_0__MET08DDUPSP1TBI__OpenInsight();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__MET08DDUPSP1TBI__OpenInsight638052814829645888__IqsSql()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
_MET08DDUPSP1TBI.Production__v2_58_0__MET08DDUPSP1TBI__OpenInsight();
|
||||||
|
string[] variables = _MET08DDUPSP1TBI.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false);
|
||||||
|
IFileRead fileRead = _MET08DDUPSP1TBI.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
|
||||||
|
Logistics logistics = new(fileRead);
|
||||||
|
_ = Shared.AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics);
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__MET08DDUPSP1TBI__OpenInsightMetrologyViewerAttachments() => _MET08DDUPSP1TBI.Production__v2_58_0__MET08DDUPSP1TBI__OpenInsightMetrologyViewerAttachments();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__MET08DDUPSP1TBI__APC() => _MET08DDUPSP1TBI.Production__v2_58_0__MET08DDUPSP1TBI__APC();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__MET08DDUPSP1TBI__SPaCe() => _MET08DDUPSP1TBI.Production__v2_58_0__MET08DDUPSP1TBI__SPaCe();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__MET08DDUPSP1TBI__Processed() => _MET08DDUPSP1TBI.Production__v2_58_0__MET08DDUPSP1TBI__Processed();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__MET08DDUPSP1TBI__Archive() => _MET08DDUPSP1TBI.Production__v2_58_0__MET08DDUPSP1TBI__Archive();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__MET08DDUPSP1TBI__Dummy() => _MET08DDUPSP1TBI.Production__v2_58_0__MET08DDUPSP1TBI__Dummy();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__MET08DDUPSP1TBI__TIBCO() => _MET08DDUPSP1TBI.Production__v2_58_0__MET08DDUPSP1TBI__TIBCO();
|
||||||
|
|
||||||
|
[Ignore]
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__MET08DDUPSP1TBI__TIBCO638217888620242702__Normal()
|
||||||
|
{
|
||||||
|
string check = "*.idc";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
_MET08DDUPSP1TBI.Production__v2_58_0__MET08DDUPSP1TBI__TIBCO();
|
||||||
|
string[] variables = _MET08DDUPSP1TBI.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false);
|
||||||
|
_ = _MET08DDUPSP1TBI.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
|
||||||
|
for (int i = 0; i < int.MaxValue; i++)
|
||||||
|
System.Threading.Thread.Sleep(500);
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
27
Adaptation/_Tests/Extract/Production/v2.58.0/SP101-EQPT.cs
Normal file
27
Adaptation/_Tests/Extract/Production/v2.58.0/SP101-EQPT.cs
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#if v2_58_0
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.Extract.Production.v2_58_0;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class SP101_EQPT
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
private static CreateSelfDescription.Production.v2_58_0.SP101_EQPT _SP101_EQPT;
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
CreateSelfDescription.Production.v2_58_0.SP101_EQPT.ClassInitialize(testContext);
|
||||||
|
_SP101_EQPT = CreateSelfDescription.Production.v2_58_0.SP101_EQPT.EAFLoggingUnitTesting;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Ignore]
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__SP101_EQPT__MoveAllFiles() => _SP101_EQPT.Production__v2_58_0__SP101_EQPT__MoveAllFiles();
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
58
Adaptation/_Tests/Extract/Production/v2.58.0/SP101.cs
Normal file
58
Adaptation/_Tests/Extract/Production/v2.58.0/SP101.cs
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
#if v2_58_0
|
||||||
|
using Adaptation.Shared;
|
||||||
|
using Adaptation.Shared.Methods;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.Extract.Production.v2_58_0;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class SP101
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
private static CreateSelfDescription.Production.v2_58_0.SP101 _SP101;
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
CreateSelfDescription.Production.v2_58_0.SP101.ClassInitialize(testContext);
|
||||||
|
_SP101 = CreateSelfDescription.Production.v2_58_0.SP101.EAFLoggingUnitTesting;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void NonThrowTryCatch()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{ throw new Exception(); }
|
||||||
|
catch (Exception) { }
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__SP101__txt() => _SP101.Production__v2_58_0__SP101__txt();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_58_0__SP101__txt637955319879801344__Normal()
|
||||||
|
{
|
||||||
|
string check = "*.txt";
|
||||||
|
bool validatePDSF = false;
|
||||||
|
_SP101.Production__v2_58_0__SP101__txt();
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
string[] variables = _SP101.AdaptationTesting.GetVariables(methodBase, check, validatePDSF);
|
||||||
|
IFileRead fileRead = _SP101.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
|
||||||
|
Logistics logistics = new(fileRead);
|
||||||
|
_ = Shared.AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF);
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
148
Adaptation/_Tests/Extract/Production/v2.59.0/MET08DDUPSP1TBI.cs
Normal file
148
Adaptation/_Tests/Extract/Production/v2.59.0/MET08DDUPSP1TBI.cs
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
#if v2_59_0
|
||||||
|
using Adaptation.Shared;
|
||||||
|
using Adaptation.Shared.Methods;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.Extract.Production.v2_59_0;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class MET08DDUPSP1TBI
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
private static CreateSelfDescription.Production.v2_59_0.MET08DDUPSP1TBI _MET08DDUPSP1TBI;
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
CreateSelfDescription.Production.v2_59_0.MET08DDUPSP1TBI.ClassInitialize(testContext);
|
||||||
|
_MET08DDUPSP1TBI = CreateSelfDescription.Production.v2_59_0.MET08DDUPSP1TBI.EAFLoggingUnitTesting;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void NonThrowTryCatch()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{ throw new Exception(); }
|
||||||
|
catch (Exception) { }
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__MET08DDUPSP1TBI__MoveMatchingFiles() => _MET08DDUPSP1TBI.Production__v2_59_0__MET08DDUPSP1TBI__MoveMatchingFiles();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__MET08DDUPSP1TBI__MoveMatchingFiles637955319879801344__Normal()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
bool validatePDSF = false;
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
_MET08DDUPSP1TBI.Production__v2_59_0__MET08DDUPSP1TBI__MoveMatchingFiles();
|
||||||
|
string[] variables = _MET08DDUPSP1TBI.AdaptationTesting.GetVariables(methodBase, check, validatePDSF);
|
||||||
|
IFileRead fileRead = _MET08DDUPSP1TBI.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
|
||||||
|
Logistics logistics = new(fileRead);
|
||||||
|
_ = Shared.AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF);
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__MET08DDUPSP1TBI__OpenInsightMetrologyViewer() => _MET08DDUPSP1TBI.Production__v2_59_0__MET08DDUPSP1TBI__OpenInsightMetrologyViewer();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__MET08DDUPSP1TBI__IQSSi() => _MET08DDUPSP1TBI.Production__v2_59_0__MET08DDUPSP1TBI__IQSSi();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__MET08DDUPSP1TBI__OpenInsight() => _MET08DDUPSP1TBI.Production__v2_59_0__MET08DDUPSP1TBI__OpenInsight();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__MET08DDUPSP1TBI__OpenInsight638052814829645888__IqsSql()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
_MET08DDUPSP1TBI.Production__v2_59_0__MET08DDUPSP1TBI__OpenInsight();
|
||||||
|
string[] variables = _MET08DDUPSP1TBI.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false);
|
||||||
|
IFileRead fileRead = _MET08DDUPSP1TBI.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
|
||||||
|
Logistics logistics = new(fileRead);
|
||||||
|
_ = Shared.AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics);
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__MET08DDUPSP1TBI__OpenInsightMetrologyViewerAttachments() => _MET08DDUPSP1TBI.Production__v2_59_0__MET08DDUPSP1TBI__OpenInsightMetrologyViewerAttachments();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__MET08DDUPSP1TBI__APC() => _MET08DDUPSP1TBI.Production__v2_59_0__MET08DDUPSP1TBI__APC();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__MET08DDUPSP1TBI__SPaCe() => _MET08DDUPSP1TBI.Production__v2_59_0__MET08DDUPSP1TBI__SPaCe();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__MET08DDUPSP1TBI__Processed() => _MET08DDUPSP1TBI.Production__v2_59_0__MET08DDUPSP1TBI__Processed();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__MET08DDUPSP1TBI__Archive() => _MET08DDUPSP1TBI.Production__v2_59_0__MET08DDUPSP1TBI__Archive();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__MET08DDUPSP1TBI__Dummy() => _MET08DDUPSP1TBI.Production__v2_59_0__MET08DDUPSP1TBI__Dummy();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__MET08DDUPSP1TBI__TIBCO() => _MET08DDUPSP1TBI.Production__v2_59_0__MET08DDUPSP1TBI__TIBCO();
|
||||||
|
|
||||||
|
[Ignore]
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__MET08DDUPSP1TBI__TIBCO638217888620242702__Normal()
|
||||||
|
{
|
||||||
|
string check = "*.idc";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
_MET08DDUPSP1TBI.Production__v2_59_0__MET08DDUPSP1TBI__TIBCO();
|
||||||
|
string[] variables = _MET08DDUPSP1TBI.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false);
|
||||||
|
_ = _MET08DDUPSP1TBI.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
|
||||||
|
for (int i = 0; i < int.MaxValue; i++)
|
||||||
|
System.Threading.Thread.Sleep(500);
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
27
Adaptation/_Tests/Extract/Production/v2.59.0/SP101-EQPT.cs
Normal file
27
Adaptation/_Tests/Extract/Production/v2.59.0/SP101-EQPT.cs
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#if v2_59_0
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.Extract.Production.v2_59_0;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class SP101_EQPT
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
private static CreateSelfDescription.Production.v2_59_0.SP101_EQPT _SP101_EQPT;
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
CreateSelfDescription.Production.v2_59_0.SP101_EQPT.ClassInitialize(testContext);
|
||||||
|
_SP101_EQPT = CreateSelfDescription.Production.v2_59_0.SP101_EQPT.EAFLoggingUnitTesting;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Ignore]
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__SP101_EQPT__MoveAllFiles() => _SP101_EQPT.Production__v2_59_0__SP101_EQPT__MoveAllFiles();
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
58
Adaptation/_Tests/Extract/Production/v2.59.0/SP101.cs
Normal file
58
Adaptation/_Tests/Extract/Production/v2.59.0/SP101.cs
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
#if v2_59_0
|
||||||
|
using Adaptation.Shared;
|
||||||
|
using Adaptation.Shared.Methods;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.Extract.Production.v2_59_0;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class SP101
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
private static CreateSelfDescription.Production.v2_59_0.SP101 _SP101;
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
CreateSelfDescription.Production.v2_59_0.SP101.ClassInitialize(testContext);
|
||||||
|
_SP101 = CreateSelfDescription.Production.v2_59_0.SP101.EAFLoggingUnitTesting;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void NonThrowTryCatch()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{ throw new Exception(); }
|
||||||
|
catch (Exception) { }
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__SP101__txt() => _SP101.Production__v2_59_0__SP101__txt();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_59_0__SP101__txt637955319879801344__Normal()
|
||||||
|
{
|
||||||
|
string check = "*.txt";
|
||||||
|
bool validatePDSF = false;
|
||||||
|
_SP101.Production__v2_59_0__SP101__txt();
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
string[] variables = _SP101.AdaptationTesting.GetVariables(methodBase, check, validatePDSF);
|
||||||
|
IFileRead fileRead = _SP101.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
|
||||||
|
Logistics logistics = new(fileRead);
|
||||||
|
_ = Shared.AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF);
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
148
Adaptation/_Tests/Extract/Production/v2.60.0/MET08DDUPSP1TBI.cs
Normal file
148
Adaptation/_Tests/Extract/Production/v2.60.0/MET08DDUPSP1TBI.cs
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
#if v2_60_0
|
||||||
|
using Adaptation.Shared;
|
||||||
|
using Adaptation.Shared.Methods;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.Extract.Production.v2_60_0;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class MET08DDUPSP1TBI
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
private static CreateSelfDescription.Production.v2_60_0.MET08DDUPSP1TBI _MET08DDUPSP1TBI;
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
CreateSelfDescription.Production.v2_60_0.MET08DDUPSP1TBI.ClassInitialize(testContext);
|
||||||
|
_MET08DDUPSP1TBI = CreateSelfDescription.Production.v2_60_0.MET08DDUPSP1TBI.EAFLoggingUnitTesting;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void NonThrowTryCatch()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{ throw new Exception(); }
|
||||||
|
catch (Exception) { }
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__MET08DDUPSP1TBI__MoveMatchingFiles() => _MET08DDUPSP1TBI.Production__v2_60_0__MET08DDUPSP1TBI__MoveMatchingFiles();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__MET08DDUPSP1TBI__MoveMatchingFiles637955319879801344__Normal()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
bool validatePDSF = false;
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
_MET08DDUPSP1TBI.Production__v2_60_0__MET08DDUPSP1TBI__MoveMatchingFiles();
|
||||||
|
string[] variables = _MET08DDUPSP1TBI.AdaptationTesting.GetVariables(methodBase, check, validatePDSF);
|
||||||
|
IFileRead fileRead = _MET08DDUPSP1TBI.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
|
||||||
|
Logistics logistics = new(fileRead);
|
||||||
|
_ = Shared.AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF);
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__MET08DDUPSP1TBI__OpenInsightMetrologyViewer() => _MET08DDUPSP1TBI.Production__v2_60_0__MET08DDUPSP1TBI__OpenInsightMetrologyViewer();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__MET08DDUPSP1TBI__IQSSi() => _MET08DDUPSP1TBI.Production__v2_60_0__MET08DDUPSP1TBI__IQSSi();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__MET08DDUPSP1TBI__OpenInsight() => _MET08DDUPSP1TBI.Production__v2_60_0__MET08DDUPSP1TBI__OpenInsight();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__MET08DDUPSP1TBI__OpenInsight638052814829645888__IqsSql()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
_MET08DDUPSP1TBI.Production__v2_60_0__MET08DDUPSP1TBI__OpenInsight();
|
||||||
|
string[] variables = _MET08DDUPSP1TBI.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false);
|
||||||
|
IFileRead fileRead = _MET08DDUPSP1TBI.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
|
||||||
|
Logistics logistics = new(fileRead);
|
||||||
|
_ = Shared.AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics);
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__MET08DDUPSP1TBI__OpenInsightMetrologyViewerAttachments() => _MET08DDUPSP1TBI.Production__v2_60_0__MET08DDUPSP1TBI__OpenInsightMetrologyViewerAttachments();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__MET08DDUPSP1TBI__APC() => _MET08DDUPSP1TBI.Production__v2_60_0__MET08DDUPSP1TBI__APC();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__MET08DDUPSP1TBI__SPaCe() => _MET08DDUPSP1TBI.Production__v2_60_0__MET08DDUPSP1TBI__SPaCe();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__MET08DDUPSP1TBI__Processed() => _MET08DDUPSP1TBI.Production__v2_60_0__MET08DDUPSP1TBI__Processed();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__MET08DDUPSP1TBI__Archive() => _MET08DDUPSP1TBI.Production__v2_60_0__MET08DDUPSP1TBI__Archive();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__MET08DDUPSP1TBI__Dummy() => _MET08DDUPSP1TBI.Production__v2_60_0__MET08DDUPSP1TBI__Dummy();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__MET08DDUPSP1TBI__TIBCO() => _MET08DDUPSP1TBI.Production__v2_60_0__MET08DDUPSP1TBI__TIBCO();
|
||||||
|
|
||||||
|
[Ignore]
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__MET08DDUPSP1TBI__TIBCO638217888620242702__Normal()
|
||||||
|
{
|
||||||
|
string check = "*.idc";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
_MET08DDUPSP1TBI.Production__v2_60_0__MET08DDUPSP1TBI__TIBCO();
|
||||||
|
string[] variables = _MET08DDUPSP1TBI.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false);
|
||||||
|
_ = _MET08DDUPSP1TBI.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
|
||||||
|
for (int i = 0; i < int.MaxValue; i++)
|
||||||
|
System.Threading.Thread.Sleep(500);
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
27
Adaptation/_Tests/Extract/Production/v2.60.0/SP101-EQPT.cs
Normal file
27
Adaptation/_Tests/Extract/Production/v2.60.0/SP101-EQPT.cs
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#if v2_60_0
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.Extract.Production.v2_60_0;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class SP101_EQPT
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
private static CreateSelfDescription.Production.v2_60_0.SP101_EQPT _SP101_EQPT;
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
CreateSelfDescription.Production.v2_60_0.SP101_EQPT.ClassInitialize(testContext);
|
||||||
|
_SP101_EQPT = CreateSelfDescription.Production.v2_60_0.SP101_EQPT.EAFLoggingUnitTesting;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Ignore]
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__SP101_EQPT__MoveAllFiles() => _SP101_EQPT.Production__v2_60_0__SP101_EQPT__MoveAllFiles();
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
58
Adaptation/_Tests/Extract/Production/v2.60.0/SP101.cs
Normal file
58
Adaptation/_Tests/Extract/Production/v2.60.0/SP101.cs
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
#if v2_60_0
|
||||||
|
using Adaptation.Shared;
|
||||||
|
using Adaptation.Shared.Methods;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.Extract.Production.v2_60_0;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class SP101
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
private static CreateSelfDescription.Production.v2_60_0.SP101 _SP101;
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
CreateSelfDescription.Production.v2_60_0.SP101.ClassInitialize(testContext);
|
||||||
|
_SP101 = CreateSelfDescription.Production.v2_60_0.SP101.EAFLoggingUnitTesting;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void NonThrowTryCatch()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{ throw new Exception(); }
|
||||||
|
catch (Exception) { }
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__SP101__txt() => _SP101.Production__v2_60_0__SP101__txt();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_60_0__SP101__txt637955319879801344__Normal()
|
||||||
|
{
|
||||||
|
string check = "*.txt";
|
||||||
|
bool validatePDSF = false;
|
||||||
|
_SP101.Production__v2_60_0__SP101__txt();
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
string[] variables = _SP101.AdaptationTesting.GetVariables(methodBase, check, validatePDSF);
|
||||||
|
IFileRead fileRead = _SP101.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
|
||||||
|
Logistics logistics = new(fileRead);
|
||||||
|
_ = Shared.AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF);
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
146
Adaptation/_Tests/Extract/Production/v2.61.1/MET08DDUPSP1TBI.cs
Normal file
146
Adaptation/_Tests/Extract/Production/v2.61.1/MET08DDUPSP1TBI.cs
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
#if true
|
||||||
|
using Adaptation.Shared;
|
||||||
|
using Adaptation.Shared.Methods;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.Extract.Production.v2_61_1;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class MET08DDUPSP1TBI
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
private static CreateSelfDescription.Production.v2_61_1.MET08DDUPSP1TBI _MET08DDUPSP1TBI;
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
CreateSelfDescription.Production.v2_61_1.MET08DDUPSP1TBI.ClassInitialize(testContext);
|
||||||
|
_MET08DDUPSP1TBI = CreateSelfDescription.Production.v2_61_1.MET08DDUPSP1TBI.EAFLoggingUnitTesting;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void NonThrowTryCatch()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{ throw new Exception(); }
|
||||||
|
catch (Exception) { }
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__MoveMatchingFiles() => _MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__MoveMatchingFiles();
|
||||||
|
|
||||||
|
[Ignore]
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__MoveMatchingFiles637955319879801344__Normal()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
bool validatePDSF = false;
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
_MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__MoveMatchingFiles();
|
||||||
|
string[] variables = _MET08DDUPSP1TBI.AdaptationTesting.GetVariables(methodBase, check, validatePDSF);
|
||||||
|
IFileRead fileRead = _MET08DDUPSP1TBI.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
|
||||||
|
Logistics logistics = new(fileRead);
|
||||||
|
_ = Shared.AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF);
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__OpenInsightMetrologyViewer() => _MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__OpenInsightMetrologyViewer();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__IQSSi() => _MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__IQSSi();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__OpenInsight() => _MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__OpenInsight();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__OpenInsight638052814829645888__IqsSql()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
_MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__OpenInsight();
|
||||||
|
string[] variables = _MET08DDUPSP1TBI.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false);
|
||||||
|
IFileRead fileRead = _MET08DDUPSP1TBI.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
|
||||||
|
Logistics logistics = new(fileRead);
|
||||||
|
_ = Shared.AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics);
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__OpenInsightMetrologyViewerAttachments() => _MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__OpenInsightMetrologyViewerAttachments();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__APC() => _MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__APC();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__SPaCe() => _MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__SPaCe();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__Processed() => _MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__Processed();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__Archive() => _MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__Archive();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__Dummy() => _MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__Dummy();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__TIBCO() => _MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__TIBCO();
|
||||||
|
|
||||||
|
[Ignore]
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__TIBCO638217888620242702__Normal()
|
||||||
|
{
|
||||||
|
string check = "*.idc";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
_MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__TIBCO();
|
||||||
|
string[] variables = _MET08DDUPSP1TBI.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false);
|
||||||
|
_ = _MET08DDUPSP1TBI.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
|
||||||
|
for (int i = 0; i < int.MaxValue; i++)
|
||||||
|
System.Threading.Thread.Sleep(500);
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
27
Adaptation/_Tests/Extract/Production/v2.61.1/SP101-EQPT.cs
Normal file
27
Adaptation/_Tests/Extract/Production/v2.61.1/SP101-EQPT.cs
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#if true
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.Extract.Production.v2_61_1;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class SP101_EQPT
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
private static CreateSelfDescription.Production.v2_61_1.SP101_EQPT _SP101_EQPT;
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
CreateSelfDescription.Production.v2_61_1.SP101_EQPT.ClassInitialize(testContext);
|
||||||
|
_SP101_EQPT = CreateSelfDescription.Production.v2_61_1.SP101_EQPT.EAFLoggingUnitTesting;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Ignore]
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__SP101_EQPT__MoveAllFiles() => _SP101_EQPT.Production__v2_61_1__SP101_EQPT__MoveAllFiles();
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
58
Adaptation/_Tests/Extract/Production/v2.61.1/SP101.cs
Normal file
58
Adaptation/_Tests/Extract/Production/v2.61.1/SP101.cs
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
#if true
|
||||||
|
using Adaptation.Shared;
|
||||||
|
using Adaptation.Shared.Methods;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.Extract.Production.v2_61_1;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class SP101
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
private static CreateSelfDescription.Production.v2_61_1.SP101 _SP101;
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
CreateSelfDescription.Production.v2_61_1.SP101.ClassInitialize(testContext);
|
||||||
|
_SP101 = CreateSelfDescription.Production.v2_61_1.SP101.EAFLoggingUnitTesting;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void NonThrowTryCatch()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{ throw new Exception(); }
|
||||||
|
catch (Exception) { }
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__SP101__txt() => _SP101.Production__v2_61_1__SP101__txt();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__SP101__txt637955319879801344__Normal()
|
||||||
|
{
|
||||||
|
string check = "*.txt";
|
||||||
|
bool validatePDSF = false;
|
||||||
|
_SP101.Production__v2_61_1__SP101__txt();
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
string[] variables = _SP101.AdaptationTesting.GetVariables(methodBase, check, validatePDSF);
|
||||||
|
IFileRead fileRead = _SP101.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
|
||||||
|
Logistics logistics = new(fileRead);
|
||||||
|
_ = Shared.AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF);
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
File diff suppressed because it is too large
Load Diff
@ -44,131 +44,311 @@ public class Job : LoggingUnitTesting, IDisposable
|
|||||||
catch (Exception) { }
|
catch (Exception) { }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if Always
|
||||||
[Ignore]
|
[Ignore]
|
||||||
|
#endif
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
public void TestJobA()
|
public void TestJobA()
|
||||||
{
|
{
|
||||||
string mid;
|
string mid;
|
||||||
FileHandlers.TIBCO.Transport.Job job;
|
FileHandlers.TIBCO.Transport.Job job;
|
||||||
|
DateTime enteredDateTimeFilter = new(2023, 05, 01);
|
||||||
MethodBase methodBase = new StackFrame().GetMethod();
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
||||||
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
||||||
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
||||||
|
string iqsSQLConnectionString = FileHandlers.TIBCO.FileRead.IQSConnectionString;
|
||||||
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
||||||
|
HttpClient httpClient = new() { BaseAddress = new("http://messa020ec.infineon.com/api/oiWizard") };
|
||||||
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
HttpClient httpClient = new() { BaseAddress = new(FileHandlers.TIBCO.FileRead.OpenInsightApplicationProgrammingInterface) };
|
mid = """
|
||||||
mid = "{\"Area\": \"Si\", \"EquipmentType\": \"MET08RESIMAPCDE\", \"MesEntity\": \"CDE4\", \"Sequence\": \"123456789\", \"MID\": \"12-123456-1234\", \"Recipe\": \"Recipe\"}";
|
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE4", "Sequence": "123456789", "MID": "12-123456-1234", "Recipe": "Recipe"}
|
||||||
job = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid);
|
""";
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.ProcessType)); // == "21");
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
Assert.IsTrue(job.LotName == "123456");
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType)); // == "21");
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.ProductName)); // == "4609");
|
Assert.AreEqual("123456", job.LotName);
|
||||||
mid = "{\"Area\": \"Si\", \"EquipmentType\": \"MET08RESIMAPCDE\", \"MesEntity\": \"CDE4\", \"Sequence\": \"123456789\", \"MID\": \"12-1234567-1234\", \"Recipe\": \"Recipe\"}";
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName)); // == "4609");
|
||||||
job = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid);
|
mid = """
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.ProcessType)); // == "21");
|
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE4", "Sequence": "123456789", "MID": "12-1234567-1234", "Recipe": "Recipe"}
|
||||||
Assert.IsTrue(job.LotName == "1234567");
|
""";
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.ProductName)); // == "4609");
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
mid = "{\"Area\": \"Si\", \"EquipmentType\": \"MET08RESIMAPCDE\", \"MesEntity\": \"CDE4\", \"Sequence\": \"123456789\", \"MID\": \"-544481-\", \"Recipe\": \"Recipe\"}";
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType)); // == "21");
|
||||||
job = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid);
|
Assert.AreEqual("1234567", job.LotName);
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.ProcessType)); // == "51");
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName)); // == "4609");
|
||||||
Assert.IsTrue(job.LotName == "544481");
|
mid = """
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.ProductName)); // == "5158");
|
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE4", "Sequence": "123456789", "MID": "-544481-", "Recipe": "Recipe"}
|
||||||
mid = "{\"Area\": \"Si\", \"EquipmentType\": \"MET08RESIMAPCDE\", \"MesEntity\": \"CDE4\", \"Sequence\": \"123456789\", \"MID\": \"00-544481-0000\", \"Recipe\": \"Recipe\"}";
|
""";
|
||||||
job = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid);
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.ProcessType)); // == "51");
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType)); // == "51");
|
||||||
Assert.IsTrue(job.LotName == "544481");
|
Assert.AreEqual("544481", job.LotName);
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.ProductName)); // == "5158");
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName)); // == "5158");
|
||||||
mid = "{\"Area\": \"Si\", \"EquipmentType\": \"MET08RESIMAPCDE\", \"MesEntity\": \"CDE4\", \"Sequence\": \"123456789\", \"MID\": \"00-o171308.1.51-0000\", \"Recipe\": \"Recipe\", \"Slot\": \"11\"}";
|
mid = """
|
||||||
job = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid);
|
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE4", "Sequence": "123456789", "MID": "00-544481-0000", "Recipe": "Recipe"}
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.ProcessType)); // == "54");
|
""";
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.LotName)); // == "547000");
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.ProductName)); // == "4445");
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType)); // == "51");
|
||||||
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
Assert.AreEqual("544481", job.LotName);
|
||||||
mid = "{\"Area\": \"Si\", \"EquipmentType\": \"MET08RESIMAPCDE\", \"MesEntity\": \"CDE5\", \"Sequence\": \"638163023363575829\", \"MID\": \"B48\", \"Recipe\": \"lsl_6in \"}";
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName)); // == "5158");
|
||||||
job = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid);
|
mid = """
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.ProcessType)); // == "54");
|
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE4", "Sequence": "123456789", "MID": "00-o171308.1.51-0000", "Recipe": "Recipe", "Slot": "11"}
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.LotName)); // == "547000");
|
""";
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.ProductName)); // == "4445");
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType)); // == "54");
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.LotName)); // == "547000");
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName)); // == "4445");
|
||||||
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
mid = """
|
||||||
|
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE5", "Sequence": "638163023363575829", "MID": "B48", "Recipe": "lsl_6in "}
|
||||||
|
""";
|
||||||
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType)); // == "54");
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.LotName)); // == "547000");
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName)); // == "4445");
|
||||||
NonThrowTryCatch();
|
NonThrowTryCatch();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !Always
|
||||||
[Ignore]
|
[Ignore]
|
||||||
|
#endif
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
public void TestJobAA()
|
public void TestJobAA()
|
||||||
{
|
{
|
||||||
string mid;
|
|
||||||
FileHandlers.TIBCO.Transport.Job job;
|
FileHandlers.TIBCO.Transport.Job job;
|
||||||
|
DateTime enteredDateTimeFilter = new(2023, 05, 01);
|
||||||
MethodBase methodBase = new StackFrame().GetMethod();
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
||||||
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
||||||
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
||||||
|
string iqsSQLConnectionString = FileHandlers.TIBCO.FileRead.IQSConnectionString;
|
||||||
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
||||||
|
HttpClient httpClient = new() { BaseAddress = new("http://messa020ec.infineon.com/api/oiWizard") };
|
||||||
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
HttpClient httpClient = new() { BaseAddress = new(FileHandlers.TIBCO.FileRead.OpenInsightApplicationProgrammingInterface) };
|
string mid = """
|
||||||
mid = "{\"Area\": \"Si\", \"EquipmentType\": \"MET08THFTIRQS408M\", \"MesEntity\": \"BIORAD2\", \"Sequence\": \"123456789\", \"MID\": \"37--\", \"Recipe\": \"Recipe\"}";
|
{"Area": "Si", "EquipmentType": "MET08THFTIRQS408M", "MesEntity": "BIORAD2", "Sequence": "123456789", "MID": "37--", "Recipe": "Recipe"}
|
||||||
job = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid);
|
""";
|
||||||
Assert.IsTrue(job.ProcessType == "37");
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.LotName)); // == "549918");
|
Assert.AreEqual("37", job.ProcessType);
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.ProductName)); // == "5101");
|
Assert.IsFalse(string.IsNullOrEmpty(job.LotName)); // == "549918");
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName)); // == "5101");
|
||||||
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
NonThrowTryCatch();
|
NonThrowTryCatch();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if Always
|
||||||
[Ignore]
|
[Ignore]
|
||||||
|
#endif
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
public void TestJobB()
|
public void TestJobB()
|
||||||
{
|
{
|
||||||
FileHandlers.TIBCO.Transport.Job job;
|
FileHandlers.TIBCO.Transport.Job job;
|
||||||
|
DateTime enteredDateTimeFilter = new(2023, 05, 01);
|
||||||
MethodBase methodBase = new StackFrame().GetMethod();
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
||||||
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
||||||
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
||||||
|
string iqsSQLConnectionString = FileHandlers.TIBCO.FileRead.IQSConnectionString;
|
||||||
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
||||||
|
HttpClient httpClient = new() { BaseAddress = new("http://messa020ec.infineon.com/api/oiWizard") };
|
||||||
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
HttpClient httpClient = new() { BaseAddress = new(FileHandlers.TIBCO.FileRead.OpenInsightApplicationProgrammingInterface) };
|
string mid = """
|
||||||
string mid = "{\"Area\": \"Si\", \"EquipmentType\": \"MET08RESIMAPCDE\", \"MesEntity\": \"CDE4\", \"Sequence\": \"123456789\", \"MID\": \"P1234\", \"Recipe\": \"Recipe\"}";
|
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE4", "Sequence": "123456789", "MID": "P1234", "Recipe": "Recipe"}
|
||||||
job = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid);
|
""";
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.ProcessType));
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.LotName));
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType));
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.ProductName));
|
Assert.IsFalse(string.IsNullOrEmpty(job.LotName));
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName));
|
||||||
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
NonThrowTryCatch();
|
NonThrowTryCatch();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !Always
|
||||||
[Ignore]
|
[Ignore]
|
||||||
|
#endif
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
public void TestJobC()
|
public void TestJobC()
|
||||||
{
|
{
|
||||||
FileHandlers.TIBCO.Transport.Job job;
|
FileHandlers.TIBCO.Transport.Job job;
|
||||||
|
DateTime enteredDateTimeFilter = new(2023, 05, 01);
|
||||||
MethodBase methodBase = new StackFrame().GetMethod();
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
||||||
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
||||||
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
||||||
|
string iqsSQLConnectionString = FileHandlers.TIBCO.FileRead.IQSConnectionString;
|
||||||
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
||||||
|
HttpClient httpClient = new() { BaseAddress = new("http://messa020ec.infineon.com/api/oiWizard") };
|
||||||
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
HttpClient httpClient = new() { BaseAddress = new(FileHandlers.TIBCO.FileRead.OpenInsightApplicationProgrammingInterface) };
|
string mid = """
|
||||||
string mid = "{\"Area\": \"Si\", \"EquipmentType\": \"MET08RESIMAPCDE\", \"MesEntity\": \"BIORAD3\", \"Sequence\": \"638234699589174855\", \"MID\": \"33--\", \"Recipe\": \"Recipe\"}";
|
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "BIORAD3", "Sequence": "638234699589174855", "MID": "33--", "Recipe": "Recipe"}
|
||||||
job = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid);
|
""";
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.ProcessType));
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.LotName));
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType));
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.ProductName));
|
Assert.IsFalse(string.IsNullOrEmpty(job.LotName));
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName));
|
||||||
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
NonThrowTryCatch();
|
NonThrowTryCatch();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if Always
|
||||||
[Ignore]
|
[Ignore]
|
||||||
|
#endif
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
public void TestJobD()
|
public void TestJobD()
|
||||||
{
|
{
|
||||||
FileHandlers.TIBCO.Transport.Job job;
|
FileHandlers.TIBCO.Transport.Job job;
|
||||||
|
DateTime enteredDateTimeFilter = new(2023, 05, 01);
|
||||||
MethodBase methodBase = new StackFrame().GetMethod();
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
||||||
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
||||||
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
||||||
|
string iqsSQLConnectionString = FileHandlers.TIBCO.FileRead.IQSConnectionString;
|
||||||
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
||||||
|
HttpClient httpClient = new() { BaseAddress = new("http://messa020ec.infineon.com/api/oiWizard") };
|
||||||
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
HttpClient httpClient = new() { BaseAddress = new(FileHandlers.TIBCO.FileRead.OpenInsightApplicationProgrammingInterface) };
|
string mid = """
|
||||||
string mid = "{\"Area\": \"Si\", \"EquipmentType\": \"DEP08CEPIEPSILON\", \"MesEntity\": \"R32\", \"Sequence\": \"\", \"MID\": \"32--\", \"Recipe\": \"Recipe\"}";
|
{"Area": "Si", "EquipmentType": "DEP08CEPIEPSILON", "MesEntity": "R32", "Sequence": "", "MID": "32--", "Recipe": "Recipe"}
|
||||||
job = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid);
|
""";
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.ProcessType));
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.LotName));
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType));
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.ProductName));
|
Assert.IsFalse(string.IsNullOrEmpty(job.LotName));
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(job.Equipment));
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName));
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.Equipment));
|
||||||
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if Always
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void TestJobE()
|
||||||
|
{
|
||||||
|
FileHandlers.TIBCO.Transport.Job job;
|
||||||
|
DateTime enteredDateTimeFilter = new(2023, 05, 01);
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
||||||
|
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
||||||
|
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
||||||
|
string iqsSQLConnectionString = FileHandlers.TIBCO.FileRead.IQSConnectionString;
|
||||||
|
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
||||||
|
HttpClient httpClient = new() { BaseAddress = new("http://messa020ec.infineon.com/api/oiWizard") };
|
||||||
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
string mid = """
|
||||||
|
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE5", "Sequence": "638756365880000000", "MID": "38-660275-5095.1", "Recipe": "IRC6mm"}
|
||||||
|
""";
|
||||||
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType));
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.LotName));
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName));
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.Equipment));
|
||||||
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if Always
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void TestJobF()
|
||||||
|
{
|
||||||
|
FileHandlers.TIBCO.Transport.Job job;
|
||||||
|
DateTime enteredDateTimeFilter = new(2023, 05, 01);
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
||||||
|
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
||||||
|
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
||||||
|
string iqsSQLConnectionString = FileHandlers.TIBCO.FileRead.IQSConnectionString;
|
||||||
|
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
||||||
|
HttpClient httpClient = new() { BaseAddress = new("http://messa020ec.infineon.com/api/oiWizard") };
|
||||||
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
string mid = """
|
||||||
|
{"Area": "Si", "EquipmentType": "MET08THFTIRQS408M", "MesEntity": "BIORAD2", "Sequence": "638757112479659597", "MID": "173308.1.5", "Recipe": "6inTHICK"}
|
||||||
|
""";
|
||||||
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType));
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.LotName));
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName));
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.Equipment));
|
||||||
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if Always
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void TestJobG()
|
||||||
|
{
|
||||||
|
FileHandlers.TIBCO.Transport.Job job;
|
||||||
|
DateTime enteredDateTimeFilter = new(2023, 05, 01);
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
||||||
|
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
||||||
|
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
||||||
|
string iqsSQLConnectionString = FileHandlers.TIBCO.FileRead.IQSConnectionString;
|
||||||
|
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
||||||
|
HttpClient httpClient = new() { BaseAddress = new("http://messa020ec.infineon.com/api/oiWizard") };
|
||||||
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
string mid = """
|
||||||
|
{"Area": "Si", "EquipmentType": "MET08DDUPSFS6420", "MesEntity": "TENCOR1", "Sequence": "638765945581765554", "MID": "1T661282", "Recipe": "8IN_THIN ROTR"}
|
||||||
|
""";
|
||||||
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType));
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.LotName));
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName));
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.Equipment));
|
||||||
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if Always
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void TestJobH()
|
||||||
|
{
|
||||||
|
FileHandlers.TIBCO.Transport.Job job;
|
||||||
|
DateTime enteredDateTimeFilter = new(2023, 05, 01);
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
||||||
|
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
||||||
|
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
||||||
|
string iqsSQLConnectionString = FileHandlers.TIBCO.FileRead.IQSConnectionString;
|
||||||
|
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
||||||
|
HttpClient httpClient = new() { BaseAddress = new("http://messa020ec.infineon.com/api/oiWizard") };
|
||||||
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
string mid = """
|
||||||
|
{"Area": "Si", "EquipmentType": "MET08DDUPSFS6420", "MesEntity": "TENCOR1", "Sequence": "638765945581765554", "MID": "AK1PL2", "Recipe": "8INCLEAN"}
|
||||||
|
""";
|
||||||
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType));
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.LotName));
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName));
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.Equipment));
|
||||||
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
public void TestJobI()
|
||||||
|
{
|
||||||
|
FileHandlers.TIBCO.Transport.Job job;
|
||||||
|
DateTime enteredDateTimeFilter = new(2023, 05, 01);
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
||||||
|
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
||||||
|
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
||||||
|
string iqsSQLConnectionString = FileHandlers.TIBCO.FileRead.IQSConnectionString;
|
||||||
|
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
||||||
|
HttpClient httpClient = new() { BaseAddress = new("http://messa020ec.infineon.com/api/oiWizard") };
|
||||||
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
string mid = """
|
||||||
|
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE5", "Sequence": "638163023363575829", "MID": "1T1014894", "Recipe": "lsl_6in "}
|
||||||
|
""";
|
||||||
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType)); // == "23");
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.LotName)); // == "111111");
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName)); // == "5053");
|
||||||
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
NonThrowTryCatch();
|
NonThrowTryCatch();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -51,7 +51,7 @@ public class MET08DDUPSP1TBI : LoggingUnitTesting, IDisposable
|
|||||||
public void TestDateTime()
|
public void TestDateTime()
|
||||||
{
|
{
|
||||||
DateTime dateTime = DateTime.Now;
|
DateTime dateTime = DateTime.Now;
|
||||||
Assert.IsTrue(dateTime.ToString("M/d/yyyy h:mm:ss tt") == dateTime.ToString());
|
Assert.AreEqual(dateTime.ToString(), dateTime.ToString("M/d/yyyy h:mm:ss tt"));
|
||||||
}
|
}
|
||||||
|
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
@ -64,7 +64,7 @@ public class MET08DDUPSP1TBI : LoggingUnitTesting, IDisposable
|
|||||||
StringBuilder results = new();
|
StringBuilder results = new();
|
||||||
(string cellInstanceName, string cellInstanceVersionName)[] collection = new (string, string)[]
|
(string cellInstanceName, string cellInstanceVersionName)[] collection = new (string, string)[]
|
||||||
{
|
{
|
||||||
new("MET08DDUPSP1TBI", "v2.57.0"),
|
new("MET08DDUPSP1TBI", "v2.61.1"),
|
||||||
};
|
};
|
||||||
string production = "http://messa08ec.infineon.com:9003/CellInstanceServiceV2";
|
string production = "http://messa08ec.infineon.com:9003/CellInstanceServiceV2";
|
||||||
Shared.PasteSpecialXml.EAF.XML.API.CellInstance.CellInstanceVersion cellInstanceVersion;
|
Shared.PasteSpecialXml.EAF.XML.API.CellInstance.CellInstanceVersion cellInstanceVersion;
|
||||||
|
|||||||
115
Adaptation/_Tests/Static/recipes-and-patterns.js
Normal file
115
Adaptation/_Tests/Static/recipes-and-patterns.js
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
// Recipe 1 = Matched
|
||||||
|
// recipes-and-patterns.js under IndexOf
|
||||||
|
// RecipesAndPatternsMatch
|
||||||
|
// ($('dcp.SP101/csv/Index', 0) + 1) == $('dcp.SP101/csv/Count', 0)
|
||||||
|
// getValue('TENCOR', $('dcp.SP101/csv/Count', 0), $('dcp.SP101/csv/Session', ''), 'pattern', getContextData('2', 'cds.NULL_DATA', ''));
|
||||||
|
|
||||||
|
function getValue(tool, patternSize, recipe, pattern, json) {
|
||||||
|
let result;
|
||||||
|
if (tool == undefined || tool.length === 0 || patternSize == undefined || patternSize.length === 0 || recipe == undefined || recipe.length === 0 || pattern == undefined || pattern.length === 0 || json == undefined || json.length === 0)
|
||||||
|
result = 'A) Invalid input!';
|
||||||
|
else {
|
||||||
|
let parsed;
|
||||||
|
try {
|
||||||
|
parsed = JSON.parse(json);
|
||||||
|
} catch (error) {
|
||||||
|
parsed = null;
|
||||||
|
}
|
||||||
|
if (parsed == null)
|
||||||
|
result = 'B) Invalid input!';
|
||||||
|
else if (parsed.rds == undefined || parsed.rds.prodSpec == undefined || parsed.rds.prodSpec.recipesAndPatterns == undefined)
|
||||||
|
result = 'C) No Spec!';
|
||||||
|
else {
|
||||||
|
let toolMatches = [];
|
||||||
|
for (let index = 0; index < parsed.rds.prodSpec.recipesAndPatterns.length; index++) {
|
||||||
|
if (parsed.rds.prodSpec.recipesAndPatterns[index].tool === tool) {
|
||||||
|
toolMatches.push(parsed.rds.prodSpec.recipesAndPatterns[index]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (toolMatches == null || toolMatches.length === 0)
|
||||||
|
result = 'Tool [' + tool + '] not found in OI API results!';
|
||||||
|
else {
|
||||||
|
let debug = '';
|
||||||
|
let matches = 0;
|
||||||
|
for (let index = 0; index < toolMatches.length; index++) {
|
||||||
|
debug += 'patternSize: ' + toolMatches[index].patternSize +
|
||||||
|
'; recipe: ' + toolMatches[index].recipe +
|
||||||
|
'; pattern: ' + toolMatches[index].pattern + ';~';
|
||||||
|
if (toolMatches[index].recipe.localeCompare(recipe, ['en-US'], { sensitivity: 'base' }) === 0) {
|
||||||
|
matches++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (matches > 0)
|
||||||
|
result = '1';
|
||||||
|
else
|
||||||
|
result = 'Value not matched~Run~patternSize: ' + patternSize + '; recipe: ' + recipe + '; pattern: ' + pattern + ';~API~' + debug;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
getValue('TENCOR', 0, 'AS_IFX100_ROTR', 'pattern', '{"rds":{"prodSpec":{"recipesAndPatterns":[]}}}');
|
||||||
|
|
||||||
|
let json;
|
||||||
|
let tool;
|
||||||
|
let recipe;
|
||||||
|
let pattern;
|
||||||
|
let patternSize;
|
||||||
|
|
||||||
|
tool = 'TENCOR'
|
||||||
|
patternSize = 9;
|
||||||
|
recipe = 'lr8in.SET';
|
||||||
|
pattern = '4_108IN.PAT';
|
||||||
|
json = '{"rds":{"prodSpec":{"recipesAndPatterns":[]}}}';
|
||||||
|
const testA = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testA !== '1')
|
||||||
|
throw 'Test A failed: ' + testA;
|
||||||
|
tool = null;
|
||||||
|
const testB = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testB !== 'A) Invalid input!')
|
||||||
|
throw 'Test L failed: ' + testB;
|
||||||
|
tool = '';
|
||||||
|
const testC = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testC !== 'A) Invalid input!')
|
||||||
|
throw 'Test M failed: ' + testC;
|
||||||
|
patternSize = null;
|
||||||
|
const testD = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testD !== 'A) Invalid input!')
|
||||||
|
throw 'Test J failed: ' + testD;
|
||||||
|
patternSize = '';
|
||||||
|
const testE = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testE !== 'A) Invalid input!')
|
||||||
|
throw 'Test K failed: ' + testE;
|
||||||
|
recipe = null;
|
||||||
|
const testF = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testF !== 'A) Invalid input!')
|
||||||
|
throw 'Test F failed: ' + testF;
|
||||||
|
recipe = '';
|
||||||
|
const testG = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testG !== 'A) Invalid input!')
|
||||||
|
throw 'Test G failed: ' + testG;
|
||||||
|
pattern = null;
|
||||||
|
const testH = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testH !== 'A) Invalid input!')
|
||||||
|
throw 'Test H failed: ' + testH;
|
||||||
|
pattern = '';
|
||||||
|
const testI = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testI !== 'A) Invalid input!')
|
||||||
|
throw 'Test I failed: ' + testI;
|
||||||
|
json = '';
|
||||||
|
const testK = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testK !== 'A) Invalid input!')
|
||||||
|
throw 'Test B failed: ' + testK;
|
||||||
|
json = 'invalid';
|
||||||
|
const testL = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testL !== 'B) Invalid input!')
|
||||||
|
throw 'Test C failed: ' + testL;
|
||||||
|
json = '{"rds":{}}';
|
||||||
|
const testM = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testM !== 'C) No Spec!')
|
||||||
|
throw 'Test D failed: ' + testM;
|
||||||
|
json = '{"rds":{"prodSpec":{"recipesAndPatterns":[]}}}';
|
||||||
|
const testN = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testN !== 'Tool [TENCOR] not found in OI API results!')
|
||||||
|
throw 'Test E failed: ' + testN;
|
||||||
@ -1,4 +1,5 @@
|
|||||||
using Adaptation._Tests.Shared;
|
using Adaptation._Tests.Shared;
|
||||||
|
using Adaptation.FileHandlers.txt;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
using System;
|
using System;
|
||||||
@ -51,145 +52,137 @@ public class TXT : LoggingUnitTesting, IDisposable
|
|||||||
public void TestDateTime()
|
public void TestDateTime()
|
||||||
{
|
{
|
||||||
DateTime dateTime = DateTime.Now;
|
DateTime dateTime = DateTime.Now;
|
||||||
Assert.IsTrue(dateTime.ToString("M/d/yyyy h:mm:ss tt") == dateTime.ToString());
|
Assert.AreEqual(dateTime.ToString(), dateTime.ToString("M/d/yyyy h:mm:ss tt"));
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
public void TestDescriptor()
|
public void TestDescriptor()
|
||||||
{
|
{
|
||||||
FileHandlers.txt.Descriptor descriptor;
|
Descriptor descriptor;
|
||||||
MethodBase methodBase = new StackFrame().GetMethod();
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
descriptor = FileHandlers.txt.ProcessData.GetDescriptor(string.Empty);
|
descriptor = ProcessData.GetDescriptor(string.Empty);
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
||||||
descriptor = FileHandlers.txt.ProcessData.GetDescriptor("12-123456-1234");
|
descriptor = ProcessData.GetDescriptor("12-123456-1234");
|
||||||
Assert.IsTrue(descriptor.Reactor is "12");
|
Assert.AreEqual("12", descriptor.Reactor);
|
||||||
Assert.IsTrue(descriptor.RDS is "123456");
|
Assert.AreEqual("123456", descriptor.RDS);
|
||||||
Assert.IsTrue(descriptor.PSN is "1234");
|
Assert.AreEqual("1234", descriptor.PSN);
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
||||||
descriptor = FileHandlers.txt.ProcessData.GetDescriptor("123456");
|
descriptor = ProcessData.GetDescriptor("123456");
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor));
|
||||||
Assert.IsTrue(descriptor.RDS is "123456");
|
Assert.AreEqual("123456", descriptor.RDS);
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
||||||
descriptor = FileHandlers.txt.ProcessData.GetDescriptor("1T123456");
|
descriptor = ProcessData.GetDescriptor("1T123456");
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor));
|
||||||
Assert.IsTrue(descriptor.RDS is "123456");
|
Assert.AreEqual("123456", descriptor.RDS);
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
||||||
descriptor = FileHandlers.txt.ProcessData.GetDescriptor("MP");
|
descriptor = ProcessData.GetDescriptor("MP");
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
||||||
Assert.IsTrue(descriptor.Employee is "MP");
|
Assert.AreEqual("MP", descriptor.Employee);
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
||||||
descriptor = FileHandlers.txt.ProcessData.GetDescriptor("12-123456-1234.2-1");
|
descriptor = ProcessData.GetDescriptor("12-123456-1234.2-1");
|
||||||
Assert.IsTrue(descriptor.Reactor is "12");
|
Assert.AreEqual("12", descriptor.Reactor);
|
||||||
Assert.IsTrue(descriptor.RDS is "123456");
|
Assert.AreEqual("123456", descriptor.RDS);
|
||||||
Assert.IsTrue(descriptor.PSN is "1234");
|
Assert.AreEqual("1234", descriptor.PSN);
|
||||||
Assert.IsTrue(descriptor.Layer is "2");
|
Assert.AreEqual("2", descriptor.Layer);
|
||||||
Assert.IsTrue(descriptor.Zone is "1");
|
Assert.AreEqual("1", descriptor.Zone);
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
||||||
descriptor = FileHandlers.txt.ProcessData.GetDescriptor("12-123456-1234.02-1");
|
descriptor = ProcessData.GetDescriptor("12-123456-1234.02-1");
|
||||||
Assert.IsTrue(descriptor.Reactor is "12");
|
Assert.AreEqual("12", descriptor.Reactor);
|
||||||
Assert.IsTrue(descriptor.RDS is "123456");
|
Assert.AreEqual("123456", descriptor.RDS);
|
||||||
Assert.IsTrue(descriptor.PSN is "1234");
|
Assert.AreEqual("1234", descriptor.PSN);
|
||||||
Assert.IsTrue(descriptor.Layer is "2");
|
Assert.AreEqual("2", descriptor.Layer);
|
||||||
Assert.IsTrue(descriptor.Zone is "1");
|
Assert.AreEqual("1", descriptor.Zone);
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
||||||
descriptor = FileHandlers.txt.ProcessData.GetDescriptor("20");
|
descriptor = ProcessData.GetDescriptor("20");
|
||||||
Assert.IsTrue(descriptor.Reactor is "20");
|
Assert.AreEqual("20", descriptor.Reactor);
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
||||||
descriptor = FileHandlers.txt.ProcessData.GetDescriptor("20.2");
|
descriptor = ProcessData.GetDescriptor("20.2");
|
||||||
Assert.IsTrue(descriptor.Reactor is "20");
|
Assert.AreEqual("20", descriptor.Reactor);
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
||||||
Assert.IsTrue(descriptor.Layer is "2");
|
Assert.AreEqual("2", descriptor.Layer);
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
||||||
descriptor = FileHandlers.txt.ProcessData.GetDescriptor("20.2.1");
|
descriptor = ProcessData.GetDescriptor("20.2.1");
|
||||||
Assert.IsTrue(descriptor.Layer is "2");
|
Assert.AreEqual("2", descriptor.Layer);
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS));
|
||||||
Assert.IsTrue(descriptor.Reactor is "20");
|
Assert.AreEqual("20", descriptor.Reactor);
|
||||||
Assert.IsTrue(descriptor.Zone is "1");
|
Assert.AreEqual("1", descriptor.Zone);
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
||||||
descriptor = FileHandlers.txt.ProcessData.GetDescriptor("20.1.1");
|
descriptor = ProcessData.GetDescriptor("20.1.1");
|
||||||
Assert.IsTrue(descriptor.Layer is "1");
|
Assert.AreEqual("1", descriptor.Layer);
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS));
|
||||||
Assert.IsTrue(descriptor.Reactor is "20");
|
Assert.AreEqual("20", descriptor.Reactor);
|
||||||
Assert.IsTrue(descriptor.Zone is "1");
|
Assert.AreEqual("1", descriptor.Zone);
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
||||||
descriptor = FileHandlers.txt.ProcessData.GetDescriptor("P2-LOW-RR");
|
descriptor = ProcessData.GetDescriptor("P2-LOW-RR");
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
||||||
Assert.IsTrue(descriptor.PSN is "RR");
|
Assert.AreEqual("RR", descriptor.PSN);
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS));
|
||||||
Assert.IsTrue(descriptor.Reactor is "P2");
|
Assert.AreEqual("P2", descriptor.Reactor);
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
descriptor = ProcessData.GetDescriptor("i171308.1.51");
|
||||||
Assert.IsTrue(descriptor.PSN is "RR");
|
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS));
|
|
||||||
Assert.IsTrue(descriptor.Reactor is "P2");
|
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
|
||||||
descriptor = FileHandlers.txt.ProcessData.GetDescriptor("i171308.1.51");
|
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
||||||
Assert.IsTrue(descriptor.RDS is "i171308.1.51");
|
Assert.AreEqual("i171308.1.51", descriptor.RDS);
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
||||||
descriptor = FileHandlers.txt.ProcessData.GetDescriptor("o171308.1.51");
|
descriptor = ProcessData.GetDescriptor("o171308.1.51");
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
||||||
Assert.IsTrue(descriptor.RDS is "o171308.1.51");
|
Assert.AreEqual("o171308.1.51", descriptor.RDS);
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
||||||
descriptor = FileHandlers.txt.ProcessData.GetDescriptor("O171308.1.51");
|
descriptor = ProcessData.GetDescriptor("O171308.1.51");
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
||||||
Assert.IsTrue(descriptor.RDS is "O171308.1.51");
|
Assert.AreEqual("O171308.1.51", descriptor.RDS);
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
||||||
descriptor = FileHandlers.txt.ProcessData.GetDescriptor("171308.1.51");
|
descriptor = ProcessData.GetDescriptor("171308.1.51");
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
||||||
Assert.IsTrue(descriptor.RDS is "171308.1.51");
|
Assert.AreEqual("171308.1.51", descriptor.RDS);
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
||||||
descriptor = FileHandlers.txt.ProcessData.GetDescriptor("75-QP1414-SPLIT4");
|
descriptor = ProcessData.GetDescriptor("75-QP1414-SPLIT4");
|
||||||
Assert.IsTrue(!string.IsNullOrEmpty(descriptor.Lot));
|
Assert.IsFalse(string.IsNullOrEmpty(descriptor.Lot));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
||||||
Assert.IsTrue(descriptor.PSN is "SPLIT4");
|
Assert.AreEqual("SPLIT4", descriptor.PSN);
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS));
|
||||||
Assert.IsTrue(descriptor.Reactor is "75");
|
Assert.AreEqual("75", descriptor.Reactor);
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee));
|
||||||
descriptor = FileHandlers.txt.ProcessData.GetDescriptor("B48");
|
descriptor = ProcessData.GetDescriptor("B48");
|
||||||
Assert.IsTrue(descriptor.Lot == "B48");
|
Assert.AreEqual("B48", descriptor.Lot);
|
||||||
descriptor = FileHandlers.txt.ProcessData.GetDescriptor("B48");
|
|
||||||
Assert.IsTrue(descriptor.Lot == "B48");
|
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
||||||
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN));
|
||||||
@ -210,8 +203,8 @@ public class TXT : LoggingUnitTesting, IDisposable
|
|||||||
StringBuilder results = new();
|
StringBuilder results = new();
|
||||||
(string cellInstanceName, string cellInstanceVersionName)[] collection = new (string, string)[]
|
(string cellInstanceName, string cellInstanceVersionName)[] collection = new (string, string)[]
|
||||||
{
|
{
|
||||||
new("SP101", "v2.57.0"),
|
new("SP101", "v2.61.1"),
|
||||||
new("SP101-EQPT", "v2.57.0"),
|
new("SP101-EQPT", "v2.61.1"),
|
||||||
};
|
};
|
||||||
string production = "http://messa08ec.infineon.com:9003/CellInstanceServiceV2";
|
string production = "http://messa08ec.infineon.com:9003/CellInstanceServiceV2";
|
||||||
Shared.PasteSpecialXml.EAF.XML.API.CellInstance.CellInstanceVersion cellInstanceVersion;
|
Shared.PasteSpecialXml.EAF.XML.API.CellInstance.CellInstanceVersion cellInstanceVersion;
|
||||||
|
|||||||
20
Adaptation/_Tests/Static/wizard.js
Normal file
20
Adaptation/_Tests/Static/wizard.js
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
const rds = 'http://messa020ec.infineon.com:8080/api/oiWizard/materials/rds/1005602';
|
||||||
|
|
||||||
|
let workItemCollection = [];
|
||||||
|
|
||||||
|
await fetch(rds)
|
||||||
|
.then((res) => res.text())
|
||||||
|
.then((text) => {
|
||||||
|
const records = JSON.parse(text);
|
||||||
|
if (records != undefined) {
|
||||||
|
if (records != undefined) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((e) => console.error(e));
|
||||||
|
|
||||||
|
workItemCollection.forEach(element => {
|
||||||
|
console.log(`{"Id": "${element.Id}", "State": "${element.State}", "ClosedDate": "${element.ClosedDate}", "TargetDate": "${element.TargetDate}", "IterationPath": "${element.IterationPath}", "AssignedTo": "${element.AssignedTo}", "Title": "${element.Title}"},`);
|
||||||
|
});
|
||||||
76
Adaptation/bun.lock
Normal file
76
Adaptation/bun.lock
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
{
|
||||||
|
"lockfileVersion": 1,
|
||||||
|
"workspaces": {
|
||||||
|
"": {
|
||||||
|
"name": "adaptation",
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/bun": "latest",
|
||||||
|
"axios": "^1.11.0",
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"typescript": "^5",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"packages": {
|
||||||
|
"@types/bun": ["@types/bun@1.2.19", "", { "dependencies": { "bun-types": "1.2.19" } }, "sha512-d9ZCmrH3CJ2uYKXQIUuZ/pUnTqIvLDS0SK7pFmbx8ma+ziH/FRMoAq5bYpRG7y+w1gl+HgyNZbtqgMq4W4e2Lg=="],
|
||||||
|
|
||||||
|
"@types/node": ["@types/node@24.1.0", "", { "dependencies": { "undici-types": "~7.8.0" } }, "sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w=="],
|
||||||
|
|
||||||
|
"@types/react": ["@types/react@19.1.9", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-WmdoynAX8Stew/36uTSVMcLJJ1KRh6L3IZRx1PZ7qJtBqT3dYTgyDTx8H1qoRghErydW7xw9mSJ3wS//tCRpFA=="],
|
||||||
|
|
||||||
|
"asynckit": ["asynckit@0.4.0", "", {}, "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="],
|
||||||
|
|
||||||
|
"axios": ["axios@1.11.0", "", { "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.4", "proxy-from-env": "^1.1.0" } }, "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA=="],
|
||||||
|
|
||||||
|
"bun-types": ["bun-types@1.2.19", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-uAOTaZSPuYsWIXRpj7o56Let0g/wjihKCkeRqUBhlLVM/Bt+Fj9xTo+LhC1OV1XDaGkz4hNC80et5xgy+9KTHQ=="],
|
||||||
|
|
||||||
|
"call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="],
|
||||||
|
|
||||||
|
"combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="],
|
||||||
|
|
||||||
|
"csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="],
|
||||||
|
|
||||||
|
"delayed-stream": ["delayed-stream@1.0.0", "", {}, "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="],
|
||||||
|
|
||||||
|
"dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="],
|
||||||
|
|
||||||
|
"es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="],
|
||||||
|
|
||||||
|
"es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="],
|
||||||
|
|
||||||
|
"es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="],
|
||||||
|
|
||||||
|
"es-set-tostringtag": ["es-set-tostringtag@2.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="],
|
||||||
|
|
||||||
|
"follow-redirects": ["follow-redirects@1.15.11", "", {}, "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ=="],
|
||||||
|
|
||||||
|
"form-data": ["form-data@4.0.4", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.12" } }, "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow=="],
|
||||||
|
|
||||||
|
"function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="],
|
||||||
|
|
||||||
|
"get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="],
|
||||||
|
|
||||||
|
"get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="],
|
||||||
|
|
||||||
|
"gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="],
|
||||||
|
|
||||||
|
"has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="],
|
||||||
|
|
||||||
|
"has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="],
|
||||||
|
|
||||||
|
"hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="],
|
||||||
|
|
||||||
|
"math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="],
|
||||||
|
|
||||||
|
"mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="],
|
||||||
|
|
||||||
|
"mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="],
|
||||||
|
|
||||||
|
"proxy-from-env": ["proxy-from-env@1.1.0", "", {}, "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="],
|
||||||
|
|
||||||
|
"typescript": ["typescript@5.9.2", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A=="],
|
||||||
|
|
||||||
|
"undici-types": ["undici-types@7.8.0", "", {}, "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw=="],
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,18 +1,29 @@
|
|||||||
{
|
{
|
||||||
"scripts": {
|
"devDependencies": {
|
||||||
"AA-CreateSelfDescription.Staging.v2_47_1-SP101_EQPT": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_47_1 & ClassName~SP101_EQPT\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
"@types/bun": "latest",
|
||||||
"BA-CreateSelfDescription.Staging.v2_47_1-SP101": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_47_1 & ClassName~SP101\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
"axios": "^1.11.0"
|
||||||
"CA-CreateSelfDescription.Staging.v2_47_1-MET08DDUPSP1TBI": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_47_1 & ClassName~MET08DDUPSP1TBI\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
},
|
||||||
"DA-CreateSelfDescription.Staging.v2_47_1": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_47_1\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
"module": "index.ts",
|
||||||
"EA-Extract.Staging.v2_47_1-SP101_EQPT-Staging__v2_47_1__SP101_EQPT__DownloadRsMFile637953072332628623__Normal": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_47_1 & ClassName~SP101_EQPT & Name~Staging__v2_47_1__SP101_EQPT__DownloadRsMFile637953072332628623__Normal\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
"name": "adaptation",
|
||||||
"FA-Extract.Staging.v2_47_1-SP101-Staging__v2_47_1__SP101__txt637955319879801344__Normal": "dotnet test --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_47_1 & ClassName~SP101 & Name~Staging__v2_47_1__SP101__txt637955319879801344__Normal\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
"peerDependencies": {
|
||||||
"GA-Extract.Staging.v2_47_1-MET08DDUPSP1TBI-Staging__v2_47_1__MET08DDUPSP1TBI__MoveMatchingFiles637955319879801344__Normal": "dotnet test --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_47_1 & ClassName~MET08DDUPSP1TBI & Name~Staging__v2_47_1__MET08DDUPSP1TBI__MoveMatchingFiles637955319879801344__Normal\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
"typescript": "^5"
|
||||||
"HA-Extract.Staging.v2_47_1-SP101-Staging__v2_47_1__SP101__pcl637812984345592512__MinFileLength": "dotnet test --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_47_1 & ClassName~SP101 & Name~Staging__v2_47_1__SP101__pcl637812984345592512__MinFileLength\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
},
|
||||||
"HB-Extract.Staging.v2_47_1-MET08DDUPSP1TBI-Staging__v2_47_1__MET08DDUPSP1TBI__OpenInsight638052814829645888__IqsSql": "dotnet test --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_47_1 & ClassName~MET08DDUPSP1TBI & Name~Staging__v2_47_1__MET08DDUPSP1TBI__OpenInsight638052814829645888__IqsSql\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
"private": true,
|
||||||
"IA-Extract.Staging.v2_47_1-MET08DDUPSP1TBI-Staging__v2_47_1__MET08DDUPSP1TBI__TIBCO": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_47_1 & ClassName~MET08DDUPSP1TBI & Name~Staging__v2_47_1__MET08DDUPSP1TBI__TIBCO\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
"scripts": {
|
||||||
"Alpha": "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
|
"AA-CreateSelfDescription.Staging.v2_47_1-SP101_EQPT": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_47_1 & ClassName~SP101_EQPT\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||||
"kanbn.board": "kanbn board",
|
"Alpha": "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
|
||||||
"kanbn.board.json": "kanbn board -j > .kanbn/board.json",
|
"BA-CreateSelfDescription.Staging.v2_47_1-SP101": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_47_1 & ClassName~SP101\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||||
"garbage-collect": "git gc"
|
"CA-CreateSelfDescription.Staging.v2_47_1-MET08DDUPSP1TBI": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_47_1 & ClassName~MET08DDUPSP1TBI\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||||
}
|
"DA-CreateSelfDescription.Staging.v2_47_1": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_47_1\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||||
|
"EA-Extract.Staging.v2_47_1-SP101_EQPT-Staging__v2_47_1__SP101_EQPT__DownloadRsMFile637953072332628623__Normal": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_47_1 & ClassName~SP101_EQPT & Name~Staging__v2_47_1__SP101_EQPT__DownloadRsMFile637953072332628623__Normal\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||||
|
"FA-Extract.Staging.v2_47_1-SP101-Staging__v2_47_1__SP101__txt637955319879801344__Normal": "dotnet test --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_47_1 & ClassName~SP101 & Name~Staging__v2_47_1__SP101__txt637955319879801344__Normal\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||||
|
"GA-Extract.Staging.v2_47_1-MET08DDUPSP1TBI-Staging__v2_47_1__MET08DDUPSP1TBI__MoveMatchingFiles637955319879801344__Normal": "dotnet test --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_47_1 & ClassName~MET08DDUPSP1TBI & Name~Staging__v2_47_1__MET08DDUPSP1TBI__MoveMatchingFiles637955319879801344__Normal\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||||
|
"garbage-collect": "git gc",
|
||||||
|
"HA-Extract.Staging.v2_47_1-SP101-Staging__v2_47_1__SP101__pcl637812984345592512__MinFileLength": "dotnet test --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_47_1 & ClassName~SP101 & Name~Staging__v2_47_1__SP101__pcl637812984345592512__MinFileLength\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||||
|
"HB-Extract.Staging.v2_47_1-MET08DDUPSP1TBI-Staging__v2_47_1__MET08DDUPSP1TBI__OpenInsight638052814829645888__IqsSql": "dotnet test --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_47_1 & ClassName~MET08DDUPSP1TBI & Name~Staging__v2_47_1__MET08DDUPSP1TBI__OpenInsight638052814829645888__IqsSql\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||||
|
"IA-Extract.Staging.v2_47_1-MET08DDUPSP1TBI-Staging__v2_47_1__MET08DDUPSP1TBI__TIBCO": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_47_1 & ClassName~MET08DDUPSP1TBI & Name~Staging__v2_47_1__MET08DDUPSP1TBI__TIBCO\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||||
|
"kanbn.board": "kanbn board",
|
||||||
|
"kanbn.board.json": "kanbn board -j > .kanbn/board.json"
|
||||||
|
},
|
||||||
|
"type": "module"
|
||||||
}
|
}
|
||||||
29
Adaptation/tsconfig.json
Normal file
29
Adaptation/tsconfig.json
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
// Environment setup & latest features
|
||||||
|
"lib": ["ESNext"],
|
||||||
|
"target": "ESNext",
|
||||||
|
"module": "Preserve",
|
||||||
|
"moduleDetection": "force",
|
||||||
|
"jsx": "react-jsx",
|
||||||
|
"allowJs": true,
|
||||||
|
|
||||||
|
// Bundler mode
|
||||||
|
"moduleResolution": "bundler",
|
||||||
|
"allowImportingTsExtensions": true,
|
||||||
|
"verbatimModuleSyntax": true,
|
||||||
|
"noEmit": true,
|
||||||
|
|
||||||
|
// Best practices
|
||||||
|
"strict": true,
|
||||||
|
"skipLibCheck": true,
|
||||||
|
"noFallthroughCasesInSwitch": true,
|
||||||
|
"noUncheckedIndexedAccess": true,
|
||||||
|
"noImplicitOverride": true,
|
||||||
|
|
||||||
|
// Some stricter flags (disabled by default)
|
||||||
|
"noUnusedLocals": false,
|
||||||
|
"noUnusedParameters": false,
|
||||||
|
"noPropertyAccessFromIndexSignature": false
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -37,7 +37,7 @@ public partial class FileRead : FileReaderHandler, ISMTP
|
|||||||
private FilePathGenerator _FilePathGeneratorForTarget;
|
private FilePathGenerator _FilePathGeneratorForTarget;
|
||||||
private readonly List<EquipmentParameter> _EquipmentParameters;
|
private readonly List<EquipmentParameter> _EquipmentParameters;
|
||||||
private static readonly Dictionary<string, List<long>> _DummyRuns;
|
private static readonly Dictionary<string, List<long>> _DummyRuns;
|
||||||
private static readonly Dictionary<long, List<string>> _StaticRuns;
|
private static readonly Dictionary<long, List<Adaptation.Shared.Metrology.WS.Results>> _StaticRuns;
|
||||||
|
|
||||||
static FileRead()
|
static FileRead()
|
||||||
{
|
{
|
||||||
@ -88,6 +88,8 @@ public partial class FileRead : FileReaderHandler, ISMTP
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
extractResults = _FileRead.GetExtractResult(reportFullPath, eventName);
|
extractResults = _FileRead.GetExtractResult(reportFullPath, eventName);
|
||||||
|
if (extractResults.Item3.Length == 0 && !string.IsNullOrEmpty(extractResults.Item1) && !extractResults.Item1.Contains("LOGISTICS_1"))
|
||||||
|
throw new Exception(extractResults.Item1);
|
||||||
TriggerEvents(extractResults);
|
TriggerEvents(extractResults);
|
||||||
_FileRead.Move(extractResults);
|
_FileRead.Move(extractResults);
|
||||||
FilePathGeneratorInfoMove(extractResults);
|
FilePathGeneratorInfoMove(extractResults);
|
||||||
|
|||||||
@ -177,6 +177,7 @@
|
|||||||
<Compile Include="Adaptation\Shared\Metrology\WS.Results.cs" />
|
<Compile Include="Adaptation\Shared\Metrology\WS.Results.cs" />
|
||||||
<Compile Include="Adaptation\Shared\ParameterType.cs" />
|
<Compile Include="Adaptation\Shared\ParameterType.cs" />
|
||||||
<Compile Include="Adaptation\Shared\ProcessDataStandardFormat.cs" />
|
<Compile Include="Adaptation\Shared\ProcessDataStandardFormat.cs" />
|
||||||
|
<Compile Include="Adaptation\Shared\ProcessDataStandardFormatMapping.cs" />
|
||||||
<Compile Include="Adaptation\Shared\Properties\IDescription.cs" />
|
<Compile Include="Adaptation\Shared\Properties\IDescription.cs" />
|
||||||
<Compile Include="Adaptation\Shared\Properties\IFileRead.cs" />
|
<Compile Include="Adaptation\Shared\Properties\IFileRead.cs" />
|
||||||
<Compile Include="Adaptation\Shared\Properties\ILogistics.cs" />
|
<Compile Include="Adaptation\Shared\Properties\ILogistics.cs" />
|
||||||
@ -195,13 +196,13 @@
|
|||||||
<Version>7.2.4630.5</Version>
|
<Version>7.2.4630.5</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Infineon.EAF.Runtime">
|
<PackageReference Include="Infineon.EAF.Runtime">
|
||||||
<Version>2.57.0</Version>
|
<Version>2.61.1</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Pdfbox">
|
<PackageReference Include="Pdfbox">
|
||||||
<Version>1.1.1</Version>
|
<Version>1.1.1</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="System.Text.Json">
|
<PackageReference Include="System.Text.Json">
|
||||||
<Version>6.0.3</Version>
|
<Version>8.0.3</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
|||||||
@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
|||||||
// You can specify all the values or you can default the Build and Revision Numbers
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
// [assembly: AssemblyVersion("1.0.*")]
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
[assembly: AssemblyVersion("2.57.0.0")]
|
[assembly: AssemblyVersion("2.61.1.0")]
|
||||||
[assembly: AssemblyFileVersion("2.57.0.0")]
|
[assembly: AssemblyFileVersion("2.61.1.0")]
|
||||||
|
|||||||
Reference in New Issue
Block a user