Compare commits
	
		
			10 Commits
		
	
	
		
			36291ae434
			...
			6a7f36b98c
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 6a7f36b98c | |||
| 16e3389a7d | |||
| 97bff23ca3 | |||
| 6564bb0116 | |||
| 5d16251f28 | |||
| 5c0a3e53d3 | |||
| 4daa40282c | |||
| 751cc3046a | |||
| 8e293f9692 | |||
| 1aa0e9affa | 
							
								
								
									
										16
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -331,11 +331,15 @@ ASALocalRun/
 | 
			
		||||
##
 | 
			
		||||
## Visual Studio Code
 | 
			
		||||
##
 | 
			
		||||
*/!.vscode/extensions.json
 | 
			
		||||
*/!.vscode/launch.json
 | 
			
		||||
*/!.vscode/settings.json
 | 
			
		||||
*/!.vscode/tasks.json
 | 
			
		||||
*/.vscode/*
 | 
			
		||||
*/.vscode/ReportGenerator/*
 | 
			
		||||
**/.vscode/*
 | 
			
		||||
!**/.vscode/extensions.json
 | 
			
		||||
!**/.vscode/format-report.json
 | 
			
		||||
!**/.vscode/launch.json
 | 
			
		||||
!**/.vscode/settings.json
 | 
			
		||||
!**/.vscode/tasks.json
 | 
			
		||||
!**/.vscode/mklink.md
 | 
			
		||||
 | 
			
		||||
*.lnk
 | 
			
		||||
 | 
			
		||||
.kanbn
 | 
			
		||||
Adaptation/.kanbn
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										55
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,55 @@
 | 
			
		||||
{
 | 
			
		||||
  "files.eol": "\n",
 | 
			
		||||
  "[markdown]": {
 | 
			
		||||
    "editor.wordWrap": "off"
 | 
			
		||||
  },
 | 
			
		||||
  "cSpell.words": [
 | 
			
		||||
    "PDSF",
 | 
			
		||||
    "Syncthing"
 | 
			
		||||
  ],
 | 
			
		||||
  "files.exclude": {
 | 
			
		||||
    "**/node_modules": true
 | 
			
		||||
  },
 | 
			
		||||
  "files.watcherExclude": {
 | 
			
		||||
    "**/node_modules": true
 | 
			
		||||
  },
 | 
			
		||||
  "foam.files.ignore": [
 | 
			
		||||
    ".foam/**/*",
 | 
			
		||||
    ".stfolder/**/*",
 | 
			
		||||
    "**/_layouts/**/*",
 | 
			
		||||
    "**/_site/**/*",
 | 
			
		||||
    "**/.vscode/**/*",
 | 
			
		||||
    "**/node_modules/**/*"
 | 
			
		||||
  ],
 | 
			
		||||
  "kanbn.showBurndownButton": false,
 | 
			
		||||
  "kanbn.showSprintButton": false,
 | 
			
		||||
  "foam.links.hover.enable": false,
 | 
			
		||||
  "foam.placeholders.exclude": [
 | 
			
		||||
    ".kanbn/Archive/**/*"
 | 
			
		||||
  ],
 | 
			
		||||
  "foam.orphans.exclude": [
 | 
			
		||||
    ".journal/**/*"
 | 
			
		||||
  ],
 | 
			
		||||
  "foam.graph.style": {
 | 
			
		||||
    "background": "#202020",
 | 
			
		||||
    "node": {
 | 
			
		||||
      "wired": "green",
 | 
			
		||||
      "wireless": "orange",
 | 
			
		||||
      "person": "white",
 | 
			
		||||
      "topic": "#bc2a3c",
 | 
			
		||||
      "kanbn": "#ff7b00",
 | 
			
		||||
      "basic-note": "#773b93",
 | 
			
		||||
      "daily-note": "#ff9d00",
 | 
			
		||||
      "note": "#f2cb1d",
 | 
			
		||||
      "placeholder": "#ff9d00",
 | 
			
		||||
      "tag": "#0494c1",
 | 
			
		||||
      "bug": "#bc2a3c",
 | 
			
		||||
      "epic": "#ff7b00",
 | 
			
		||||
      "feature": "#773b93",
 | 
			
		||||
      "issue": "#ff9d00",
 | 
			
		||||
      "task": "#f2cb1d",
 | 
			
		||||
      "test-case": "#ff9d00",
 | 
			
		||||
      "user-story": "#0494c1"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -1,3 +1,19 @@
 | 
			
		||||
[*.md]
 | 
			
		||||
end_of_line = crlf
 | 
			
		||||
file_header_template = unset
 | 
			
		||||
indent_size = 2
 | 
			
		||||
indent_style = space
 | 
			
		||||
insert_final_newline = false
 | 
			
		||||
root = true
 | 
			
		||||
tab_width = 2
 | 
			
		||||
[*.csproj]
 | 
			
		||||
end_of_line = crlf
 | 
			
		||||
file_header_template = unset
 | 
			
		||||
indent_size = 2
 | 
			
		||||
indent_style = space
 | 
			
		||||
insert_final_newline = false
 | 
			
		||||
root = true
 | 
			
		||||
tab_width = 2
 | 
			
		||||
[*.cs]
 | 
			
		||||
csharp_indent_block_contents = true
 | 
			
		||||
csharp_indent_braces = false
 | 
			
		||||
@ -82,13 +98,30 @@ dotnet_diagnostic.CA1829.severity = warning # CA1829: Use Length/Count property
 | 
			
		||||
dotnet_diagnostic.CA1834.severity = warning # CA1834: Consider using 'StringBuilder.Append(char)' when applicable
 | 
			
		||||
dotnet_diagnostic.CA1846.severity = none # CA1846: Prefer AsSpan over Substring
 | 
			
		||||
dotnet_diagnostic.CA1847.severity = none # CA1847: Use string.Contains(char) instead of string.Contains(string) with single characters
 | 
			
		||||
dotnet_diagnostic.CA1854.severity = warning # CA1854: Prefer a 'TryGetValue' call over a Dictionary indexer access guarded by a 'ContainsKey' check to avoid double lookup
 | 
			
		||||
dotnet_diagnostic.CA1860.severity = error # CA1860: Prefer comparing 'Count' to 0 rather than using 'Any()', both for clarity and for performance
 | 
			
		||||
dotnet_diagnostic.CA1861.severity = none # CA1861: Prefer 'static readonly' fields over constant array arguments
 | 
			
		||||
dotnet_diagnostic.CA1862.severity = none # CA1862: Prefer using 'string.Equals(string, StringComparison)' to perform a case-insensitive comparison, but keep in mind that this might cause subtle changes in behavior, so make sure to conduct thorough testing after applying the suggestion, or if culturally sensitive comparison is not required, consider using 'StringComparison.OrdinalIgnoreCase'
 | 
			
		||||
dotnet_diagnostic.CA1864.severity = none # CA1864: To avoid double lookup, call 'TryAdd' instead of calling 'Add' with a 'ContainsKey' guard
 | 
			
		||||
dotnet_diagnostic.CA1866.severity = none # CA1866: Use 'string.EndsWith(char)' instead of 'string.EndsWith(string)' when you have a string with a single char
 | 
			
		||||
dotnet_diagnostic.CA1869.severity = none # CA1869: Avoid creating a new 'JsonSerializerOptions' instance for every serialization operation. Cache and reuse instances instead.
 | 
			
		||||
dotnet_diagnostic.CA2254.severity = none # CA2254: The logging message template should not vary between calls to 'LoggerExtensions.LogInformation(ILogger, string?, params object?[])'
 | 
			
		||||
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.IDE0004.severity = warning # IDE0004: Cast is redundant.
 | 
			
		||||
dotnet_diagnostic.IDE0005.severity = warning # Using directive is unnecessary
 | 
			
		||||
dotnet_diagnostic.IDE0028.severity = none # IDE0028: Collection initialization can be simplified
 | 
			
		||||
dotnet_diagnostic.IDE0031.severity = warning # Use null propagation (IDE0031)
 | 
			
		||||
dotnet_diagnostic.IDE0047.severity = warning # IDE0047: Parentheses can be removed
 | 
			
		||||
dotnet_diagnostic.IDE0049.severity = warning # Use language keywords instead of framework type names for type references (IDE0049)
 | 
			
		||||
dotnet_diagnostic.IDE0060.severity = warning # IDE0060: Remove unused parameter
 | 
			
		||||
dotnet_diagnostic.IDE0200.severity = warning # IDE0200: Lambda expression can be removed
 | 
			
		||||
dotnet_diagnostic.IDE0270.severity = none # IDE0270: Null check can be simplified
 | 
			
		||||
dotnet_diagnostic.IDE0290.severity = none # Use primary constructor [Distance]csharp(IDE0290)
 | 
			
		||||
dotnet_diagnostic.IDE0300.severity = none # IDE0300: 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.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.style = pascal_case
 | 
			
		||||
dotnet_naming_rule.abstract_method_should_be_pascal_case.symbols = abstract_method
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										5
									
								
								Adaptation/.vscode/mklink.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								Adaptation/.vscode/mklink.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
			
		||||
# mklink
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
mklink /J "T:\MET08AWCT\06_SourceCode\MET08AWCT\Adaptation\.kanbn" "D:\5-Other-Small\Kanban\MET08AWCT"
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										3
									
								
								Adaptation/.vscode/settings.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								Adaptation/.vscode/settings.json
									
									
									
									
										vendored
									
									
								
							@ -1,4 +1,7 @@
 | 
			
		||||
{
 | 
			
		||||
    "[markdown]": {
 | 
			
		||||
        "editor.wordWrap": "off"
 | 
			
		||||
    },
 | 
			
		||||
    "cSpell.words": [
 | 
			
		||||
        "ANLYSDIFAAST",
 | 
			
		||||
        "datauniqueid",
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										94
									
								
								Adaptation/.vscode/tasks.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										94
									
								
								Adaptation/.vscode/tasks.json
									
									
									
									
										vendored
									
									
								
							@ -2,41 +2,109 @@
 | 
			
		||||
    "version": "2.0.0",
 | 
			
		||||
    "tasks": [
 | 
			
		||||
        {
 | 
			
		||||
            "label": "build",
 | 
			
		||||
            "label": "Build",
 | 
			
		||||
            "command": "dotnet",
 | 
			
		||||
            "type": "process",
 | 
			
		||||
            "args": [
 | 
			
		||||
                "build",
 | 
			
		||||
                "${workspaceFolder}/MET08ANLYSDIFAAST230.Tests.csproj",
 | 
			
		||||
                "/property:GenerateFullPaths=true",
 | 
			
		||||
                "/consoleloggerparameters:NoSummary"
 | 
			
		||||
            ],
 | 
			
		||||
            "problemMatcher": "$msCompile"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "publish",
 | 
			
		||||
            "label": "Test-Debug",
 | 
			
		||||
            "command": "dotnet",
 | 
			
		||||
            "type": "process",
 | 
			
		||||
            "args": [
 | 
			
		||||
                "publish",
 | 
			
		||||
                "${workspaceFolder}/MET08ANLYSDIFAAST230.Tests.csproj",
 | 
			
		||||
                "/property:GenerateFullPaths=true",
 | 
			
		||||
                "/consoleloggerparameters:NoSummary"
 | 
			
		||||
                "test",
 | 
			
		||||
                "-c",
 | 
			
		||||
                "Debug"
 | 
			
		||||
            ],
 | 
			
		||||
            "problemMatcher": "$msCompile"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "watch",
 | 
			
		||||
            "label": "Test-Release",
 | 
			
		||||
            "command": "dotnet",
 | 
			
		||||
            "type": "process",
 | 
			
		||||
            "args": [
 | 
			
		||||
                "watch",
 | 
			
		||||
                "run",
 | 
			
		||||
                "${workspaceFolder}/MET08ANLYSDIFAAST230.Tests.csproj",
 | 
			
		||||
                "/property:GenerateFullPaths=true",
 | 
			
		||||
                "/consoleloggerparameters:NoSummary"
 | 
			
		||||
                "test",
 | 
			
		||||
                "-c",
 | 
			
		||||
                "Release"
 | 
			
		||||
            ],
 | 
			
		||||
            "problemMatcher": "$msCompile"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "Format",
 | 
			
		||||
            "command": "dotnet",
 | 
			
		||||
            "type": "process",
 | 
			
		||||
            "args": [
 | 
			
		||||
                "format",
 | 
			
		||||
                "--report",
 | 
			
		||||
                ".vscode",
 | 
			
		||||
                "--verbosity",
 | 
			
		||||
                "detailed",
 | 
			
		||||
                "--severity",
 | 
			
		||||
                "warn"
 | 
			
		||||
            ],
 | 
			
		||||
            "problemMatcher": "$msCompile"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "Nuget Clear",
 | 
			
		||||
            "command": "dotnet",
 | 
			
		||||
            "type": "process",
 | 
			
		||||
            "args": [
 | 
			
		||||
                "nuget",
 | 
			
		||||
                "locals",
 | 
			
		||||
                "all",
 | 
			
		||||
                "--clear"
 | 
			
		||||
            ],
 | 
			
		||||
            "problemMatcher": "$msCompile"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "MSBuild for EAF Deployment Packages",
 | 
			
		||||
            "command": "C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe",
 | 
			
		||||
            "type": "process",
 | 
			
		||||
            "args": [
 | 
			
		||||
                "/target:Build",
 | 
			
		||||
                "/restore:True",
 | 
			
		||||
                "/p:RestoreSources=https://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",
 | 
			
		||||
                "/consoleloggerparameters:PerformanceSummary;ErrorsOnly;",
 | 
			
		||||
                "/property:Configuration=Debug;TargetFrameworkVersion=v4.8",
 | 
			
		||||
                "../MET08ANLYSDIFAAST230.csproj"
 | 
			
		||||
            ],
 | 
			
		||||
            "problemMatcher": "$msCompile"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "Project",
 | 
			
		||||
            "type": "shell",
 | 
			
		||||
            "command": "code ../MET08ANLYSDIFAAST230.csproj",
 | 
			
		||||
            "problemMatcher": []
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "Git Config",
 | 
			
		||||
            "type": "shell",
 | 
			
		||||
            "command": "code ../.git/config",
 | 
			
		||||
            "problemMatcher": []
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "Kanbn Console",
 | 
			
		||||
            "type": "npm",
 | 
			
		||||
            "script": "kanbn.board",
 | 
			
		||||
            "problemMatcher": []
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "Kanbn Write Boad",
 | 
			
		||||
            "type": "shell",
 | 
			
		||||
            "command": "& kanbn board -j | L:/Git/kanbn2md/kanbn2md.exe >.kanbn/board.md",
 | 
			
		||||
            "problemMatcher": []
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "Kanbn Write json",
 | 
			
		||||
            "type": "npm",
 | 
			
		||||
            "script": "kanbn.board.json",
 | 
			
		||||
            "problemMatcher": []
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
@ -14,8 +14,8 @@ namespace Adaptation.FileHandlers.APC;
 | 
			
		||||
public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    public FileRead(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, bool isEAFHosted) :
 | 
			
		||||
        base(new Description(), false, smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, 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<string>> 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)
 | 
			
		||||
    {
 | 
			
		||||
        _MinFileLength = 10;
 | 
			
		||||
        _NullData = string.Empty;
 | 
			
		||||
 | 
			
		||||
@ -18,8 +18,8 @@ public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
    private readonly string _JobIdParentDirectory;
 | 
			
		||||
    private readonly string _JobIdArchiveParentDirectory;
 | 
			
		||||
 | 
			
		||||
    public FileRead(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, bool isEAFHosted) :
 | 
			
		||||
        base(new Description(), false, smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, 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<string>> 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)
 | 
			
		||||
    {
 | 
			
		||||
        _MinFileLength = 10;
 | 
			
		||||
        _NullData = string.Empty;
 | 
			
		||||
@ -115,10 +115,10 @@ public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#pragma warning disable IDE0060
 | 
			
		||||
    private void MoveArchive(string reportFullPath, DateTime dateTime)
 | 
			
		||||
#pragma warning restore IDE0060
 | 
			
		||||
    {
 | 
			
		||||
        if (dateTime == DateTime.MinValue)
 | 
			
		||||
        { }
 | 
			
		||||
        string logisticsSequence = _Logistics.Sequence.ToString();
 | 
			
		||||
        string weekOfYear = _Calendar.GetWeekOfYear(_Logistics.DateTimeFromSequence, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00");
 | 
			
		||||
        string weekDirectory = $"{_Logistics.DateTimeFromSequence:yyyy}_Week_{weekOfYear}{@"\"}{_Logistics.DateTimeFromSequence:yyyy-MM-dd}";
 | 
			
		||||
@ -128,7 +128,7 @@ public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
        string jobIdDirectory = Path.Combine(_JobIdParentDirectory, _Logistics.JobID);
 | 
			
		||||
        if (!Directory.Exists(jobIdDirectory))
 | 
			
		||||
            _ = Directory.CreateDirectory(jobIdDirectory);
 | 
			
		||||
        if (!Directory.GetDirectories(jobIdDirectory).Any())
 | 
			
		||||
        if (Directory.GetDirectories(jobIdDirectory).Length == 0)
 | 
			
		||||
            File.Copy(reportFullPath, Path.Combine(destinationArchiveDirectory, Path.GetFileName(reportFullPath)));
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
 | 
			
		||||
@ -9,20 +9,20 @@ namespace Adaptation.FileHandlers;
 | 
			
		||||
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, bool isEAFHosted)
 | 
			
		||||
    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)
 | 
			
		||||
    {
 | 
			
		||||
        IFileRead result = cellInstanceConnectionName switch
 | 
			
		||||
        {
 | 
			
		||||
            nameof(Archive) => new Archive.FileRead(smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted),
 | 
			
		||||
            nameof(Dummy) => new Dummy.FileRead(smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted),
 | 
			
		||||
            nameof(IQSSi) => new IQSSi.FileRead(smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted),
 | 
			
		||||
            nameof(MoveMatchingFiles) => new MoveMatchingFiles.FileRead(smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted),
 | 
			
		||||
            nameof(OpenInsight) => new OpenInsight.FileRead(smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted),
 | 
			
		||||
            nameof(OpenInsightMetrologyViewer) => new OpenInsightMetrologyViewer.FileRead(smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted),
 | 
			
		||||
            nameof(OpenInsightMetrologyViewerAttachments) => new OpenInsightMetrologyViewerAttachments.FileRead(smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted),
 | 
			
		||||
            nameof(Processed) => new Processed.FileRead(smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted),
 | 
			
		||||
            nameof(APC) => new APC.FileRead(smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted),
 | 
			
		||||
            nameof(SPaCe) => new SPaCe.FileRead(smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted),
 | 
			
		||||
            nameof(Archive) => new Archive.FileRead(smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null),
 | 
			
		||||
            nameof(Dummy) => new Dummy.FileRead(smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null),
 | 
			
		||||
            nameof(IQSSi) => new IQSSi.FileRead(smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null),
 | 
			
		||||
            nameof(MoveMatchingFiles) => new MoveMatchingFiles.FileRead(smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null),
 | 
			
		||||
            nameof(OpenInsight) => new OpenInsight.FileRead(smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null),
 | 
			
		||||
            nameof(OpenInsightMetrologyViewer) => new OpenInsightMetrologyViewer.FileRead(smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null),
 | 
			
		||||
            nameof(OpenInsightMetrologyViewerAttachments) => new OpenInsightMetrologyViewerAttachments.FileRead(smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null),
 | 
			
		||||
            nameof(Processed) => new Processed.FileRead(smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null),
 | 
			
		||||
            nameof(APC) => new APC.FileRead(smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null),
 | 
			
		||||
            nameof(SPaCe) => new SPaCe.FileRead(smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null),
 | 
			
		||||
            _ => throw new Exception($"\"{cellInstanceConnectionName}\" not mapped")
 | 
			
		||||
        };
 | 
			
		||||
        return result;
 | 
			
		||||
 | 
			
		||||
@ -23,8 +23,8 @@ public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
    private int _LastDummyRunIndex;
 | 
			
		||||
    private readonly string[] _CellNames;
 | 
			
		||||
 | 
			
		||||
    public FileRead(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, bool isEAFHosted) :
 | 
			
		||||
        base(new Description(), false, smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, 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<string>> 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)
 | 
			
		||||
    {
 | 
			
		||||
        _MinFileLength = 10;
 | 
			
		||||
        _NullData = string.Empty;
 | 
			
		||||
@ -157,7 +157,7 @@ public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
        if (!Directory.Exists(inProcessDirectory))
 | 
			
		||||
            _ = Directory.CreateDirectory(inProcessDirectory);
 | 
			
		||||
        files = Directory.GetFiles(inProcessDirectory, "*", SearchOption.AllDirectories);
 | 
			
		||||
        if (files.Any())
 | 
			
		||||
        if (files.Length != 0)
 | 
			
		||||
        {
 | 
			
		||||
            if (files.Length > 250)
 | 
			
		||||
                throw new Exception("Safety net!");
 | 
			
		||||
 | 
			
		||||
@ -14,8 +14,8 @@ namespace Adaptation.FileHandlers.IQSSi;
 | 
			
		||||
public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    public FileRead(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, bool isEAFHosted) :
 | 
			
		||||
        base(new Description(), false, smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, 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<string>> 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)
 | 
			
		||||
    {
 | 
			
		||||
        _MinFileLength = 10;
 | 
			
		||||
        _NullData = string.Empty;
 | 
			
		||||
@ -118,8 +118,6 @@ public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
 | 
			
		||||
    private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
 | 
			
		||||
    {
 | 
			
		||||
        if (dateTime == DateTime.MinValue)
 | 
			
		||||
        { }
 | 
			
		||||
        Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
 | 
			
		||||
        Tuple<string, string[], string[]> pdsf = ProcessDataStandardFormat.GetLogisticsColumnsAndBody(reportFullPath);
 | 
			
		||||
        _Logistics = new Logistics(reportFullPath, pdsf.Item1);
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,6 @@ using Adaptation.Shared.Methods;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.IO;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Text.Json;
 | 
			
		||||
using System.Threading;
 | 
			
		||||
@ -16,8 +15,8 @@ namespace Adaptation.FileHandlers.MoveMatchingFiles;
 | 
			
		||||
public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    public FileRead(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, bool isEAFHosted) :
 | 
			
		||||
        base(new Description(), false, smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, 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<string>> 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)
 | 
			
		||||
    {
 | 
			
		||||
        _MinFileLength = 10;
 | 
			
		||||
        _NullData = string.Empty;
 | 
			
		||||
@ -129,7 +128,7 @@ public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
            for (int i = 0; i < int.MaxValue; i++)
 | 
			
		||||
            {
 | 
			
		||||
                found = Directory.GetFiles(searchDirectory, fileName, SearchOption.AllDirectories);
 | 
			
		||||
                if (found.Any())
 | 
			
		||||
                if (found.Length != 0)
 | 
			
		||||
                {
 | 
			
		||||
                    results.AddRange(found);
 | 
			
		||||
                    break;
 | 
			
		||||
@ -205,7 +204,7 @@ public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
                Thread.Sleep(500);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        if (postCollection.Any())
 | 
			
		||||
        if (postCollection.Count != 0)
 | 
			
		||||
        {
 | 
			
		||||
            Thread.Sleep(500);
 | 
			
		||||
            StringBuilder stringBuilder = new();
 | 
			
		||||
 | 
			
		||||
@ -20,14 +20,13 @@ public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
    private readonly string _IqsConnectionString;
 | 
			
		||||
    private readonly string _OpenInsightFilePattern;
 | 
			
		||||
    private readonly string _OpenInsightApiECDirectory;
 | 
			
		||||
    private readonly string _OpenInsightApiIFXDirectory;
 | 
			
		||||
 | 
			
		||||
    public FileRead(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, bool isEAFHosted) :
 | 
			
		||||
        base(new Description(), false, smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, 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<string>> 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)
 | 
			
		||||
    {
 | 
			
		||||
        _MinFileLength = 10;
 | 
			
		||||
        _NullData = string.Empty;
 | 
			
		||||
        _Logistics = new(this);
 | 
			
		||||
        _NullData = string.Empty;
 | 
			
		||||
        if (_FileParameter is null)
 | 
			
		||||
            throw new Exception(cellInstanceConnectionName);
 | 
			
		||||
        if (_ModelObjectParameterDefinitions is null)
 | 
			
		||||
@ -36,9 +35,7 @@ public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
            throw new Exception(cellInstanceConnectionName);
 | 
			
		||||
        _IqsConnectionString = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "IQS.ConnectionString");
 | 
			
		||||
        _OpenInsightApiECDirectory = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "API.EC.Directory");
 | 
			
		||||
        _OpenInsightApiIFXDirectory = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "API.IFX.Directory");
 | 
			
		||||
        _OpenInsightFilePattern = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "OpenInsight.FilePattern");
 | 
			
		||||
        _OpenInsightApiIFXDirectory = _OpenInsightApiIFXDirectory.Replace("\"", string.Empty);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void IFileRead.Move(Tuple<string, Test[], JsonElement[], List<FileInfo>> extractResults, Exception exception)
 | 
			
		||||
@ -119,14 +116,15 @@ public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
    internal static string GetLines(Logistics logistics, List<SECS.Description> descriptions)
 | 
			
		||||
    {
 | 
			
		||||
        StringBuilder results = new();
 | 
			
		||||
        char del = '\t';
 | 
			
		||||
        SECS.Description x = descriptions[0];
 | 
			
		||||
        char del = logistics.MesEntity == x.Reactor ? '\t' : '~';
 | 
			
		||||
        _ = results.Append(x.PSN).Append(del)
 | 
			
		||||
            .Append(x.Reactor).Append(del)
 | 
			
		||||
            .Append(logistics.MesEntity).Append(del)
 | 
			
		||||
            .Append(x.RDS).Append(del)
 | 
			
		||||
            .Append(x.Recipe).Append(del)
 | 
			
		||||
            .Append(x.Employee).Append(del);
 | 
			
		||||
            .Append(x.Employee).Append(del)
 | 
			
		||||
            .Append(x.SlotNumber).Append(del);
 | 
			
		||||
        return results.ToString();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -134,35 +132,44 @@ public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
    {
 | 
			
		||||
        bool isDummyRun = false;
 | 
			
		||||
        List<(Shared.Properties.IScopeInfo, string)> collection = new();
 | 
			
		||||
        string duplicateDirectory = Path.Combine(_FileConnectorConfiguration.SourceFileLocation, _CellInstanceName);
 | 
			
		||||
        if (!Directory.Exists(duplicateDirectory))
 | 
			
		||||
            _ = Directory.CreateDirectory(duplicateDirectory);
 | 
			
		||||
        string successDirectory = _FileConnectorConfiguration.AlternateTargetFolder;
 | 
			
		||||
        if (!Directory.Exists(Path.Combine(duplicateDirectory, "1")))
 | 
			
		||||
        {
 | 
			
		||||
            string parentParent = GetParentParent(_FileConnectorConfiguration.SourceFileLocation);
 | 
			
		||||
            if (parentParent.Contains(_CellInstanceName))
 | 
			
		||||
                parentParent = Path.GetDirectoryName(parentParent);
 | 
			
		||||
        string duplicateDirectory = Path.Combine(parentParent, "Data");
 | 
			
		||||
            duplicateDirectory = Path.Combine(parentParent, "Data");
 | 
			
		||||
            if (!Directory.Exists(duplicateDirectory))
 | 
			
		||||
                _ = Directory.CreateDirectory(duplicateDirectory);
 | 
			
		||||
        }
 | 
			
		||||
        string duplicateFile = Path.Combine(duplicateDirectory, Path.GetFileName(reportFullPath));
 | 
			
		||||
        if (descriptions.Any() && tests.Any())
 | 
			
		||||
        if (descriptions.Count != 0 && tests.Length != 0)
 | 
			
		||||
        {
 | 
			
		||||
            string lines = GetLines(_Logistics, descriptions);
 | 
			
		||||
            if (!string.IsNullOrEmpty(lines))
 | 
			
		||||
            {
 | 
			
		||||
                int? count;
 | 
			
		||||
                long? subGroupId;
 | 
			
		||||
                long breakAfter = dateTime.AddSeconds(_BreakAfterSeconds).Ticks;
 | 
			
		||||
                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, count) = (null, null);
 | 
			
		||||
                    subGroupId = null;
 | 
			
		||||
                else
 | 
			
		||||
                    (subGroupId, count, string _) = FromIQS.GetCommandText(_IqsConnectionString, _Logistics, descriptions[0], breakAfter, preWait);
 | 
			
		||||
                    (subGroupId, int? _, string _) = FromIQS.GetCommandText(_IqsConnectionString, _Logistics, descriptions[0], breakAfter, preWait);
 | 
			
		||||
                if (subGroupId is null)
 | 
			
		||||
                    collection.Add(new(new ScopeInfo(tests[0], _OpenInsightFilePattern), lines));
 | 
			
		||||
                else if (count is null)
 | 
			
		||||
                    collection.Add(new(new ScopeInfo(tests[0], $"{subGroupId.Value} {_OpenInsightFilePattern}"), lines));
 | 
			
		||||
                else
 | 
			
		||||
                    collection.Add(new(new ScopeInfo(tests[0], $"{subGroupId.Value} E{count.Value} {_OpenInsightFilePattern}"), lines));
 | 
			
		||||
                    collection.Add(new(new ScopeInfo(tests[0], $"{subGroupId.Value} {_OpenInsightFilePattern}"), lines));
 | 
			
		||||
                if (_StaticRuns.TryGetValue(_Logistics.Sequence, out List<string> values))
 | 
			
		||||
                {
 | 
			
		||||
                    if (values.Count != 1)
 | 
			
		||||
                        throw new Exception($"{nameof(_StaticRuns)} {values.Count} != 1 {_Logistics.Sequence}!");
 | 
			
		||||
                    values[0] = $"{values[0]}|{subGroupId}";
 | 
			
		||||
                }
 | 
			
		||||
                string weekOfYear = _Calendar.GetWeekOfYear(_Logistics.DateTimeFromSequence, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00");
 | 
			
		||||
                FromIQS.Save(_OpenInsightApiECDirectory, _OpenInsightApiIFXDirectory, _Logistics, reportFullPath, logistics, descriptions.First(), lines, subGroupId, weekOfYear);
 | 
			
		||||
                FromIQS.Save(_OpenInsightApiECDirectory, _Logistics, reportFullPath, logistics, descriptions.First(), lines, subGroupId, weekOfYear);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,6 @@
 | 
			
		||||
using Adaptation.Shared;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Data;
 | 
			
		||||
using System.Data.SqlClient;
 | 
			
		||||
using System.Globalization;
 | 
			
		||||
@ -16,51 +17,175 @@ public class FromIQS
 | 
			
		||||
 | 
			
		||||
#nullable enable
 | 
			
		||||
 | 
			
		||||
    private static string GetCommandText(DateTime dateTime)
 | 
			
		||||
    { // cSpell:disable
 | 
			
		||||
        List<string> results = new();
 | 
			
		||||
        TimeSpan timeSpan = new(dateTime.ToUniversalTime().AddDays(-1).Ticks - new DateTime(1970, 01, 01).Ticks);
 | 
			
		||||
        long infinityQS = (long)Math.Floor(timeSpan.TotalSeconds);
 | 
			
		||||
        results.Add(" select count_se_sgtm CountSeSgtm, ");
 | 
			
		||||
        results.Add("        dateadd(HH, -7, (dateadd(SS, convert(bigint, max_se_sgtm), '19700101'))) DateTime, ");
 | 
			
		||||
        results.Add("        max_max_se_test MaxMaxSeTest, ");
 | 
			
		||||
        results.Add("        ( ");
 | 
			
		||||
        results.Add("          select td.f_name ");
 | 
			
		||||
        results.Add("          from [SPCEPIWORLD].[dbo].[TEST_DAT] td ");
 | 
			
		||||
        results.Add("          where td.f_test = max_max_se_test ");
 | 
			
		||||
        results.Add("        ) MaxMaxSeTestName, ");
 | 
			
		||||
        results.Add("        max_max_se_val MaxMaxSeVal, ");
 | 
			
		||||
        results.Add("        max_se_lot MaxSeLot, ");
 | 
			
		||||
        results.Add("        ( ");
 | 
			
		||||
        results.Add("          select pl.f_name ");
 | 
			
		||||
        results.Add("          from [SPCEPIWORLD].[dbo].[PART_LOT] pl ");
 | 
			
		||||
        results.Add("          where max_se_lot = pl.f_lot ");
 | 
			
		||||
        results.Add("        ) MaxSeLotName, ");
 | 
			
		||||
        results.Add("        max_se_part MaxSePart, ");
 | 
			
		||||
        results.Add("        ( ");
 | 
			
		||||
        results.Add("          select rd.f_name ");
 | 
			
		||||
        results.Add("          from [SPCEPIWORLD].[dbo].[PART_DAT] rd ");
 | 
			
		||||
        results.Add("          where max_se_part = rd.f_part ");
 | 
			
		||||
        results.Add("        ) MaxSePartName, ");
 | 
			
		||||
        results.Add("        max_se_prcs MaxSePrcs, ");
 | 
			
		||||
        results.Add("        ( ");
 | 
			
		||||
        results.Add("          select rd.f_name ");
 | 
			
		||||
        results.Add("          from [SPCEPIWORLD].[dbo].[PRCS_DAT] rd ");
 | 
			
		||||
        results.Add("          where max_se_prcs = rd.f_prcs ");
 | 
			
		||||
        results.Add("        ) MaxSePrcsName, ");
 | 
			
		||||
        results.Add("        max_se_sgrp MaxSeSgrp, ");
 | 
			
		||||
        results.Add("        min_min_se_test MinMinSeTest, ");
 | 
			
		||||
        results.Add("        ( ");
 | 
			
		||||
        results.Add("          select td.f_name ");
 | 
			
		||||
        results.Add("          from [SPCEPIWORLD].[dbo].[TEST_DAT] td ");
 | 
			
		||||
        results.Add("          where td.f_test = min_min_se_test ");
 | 
			
		||||
        results.Add("        ) MinMinSeTestName, ");
 | 
			
		||||
        results.Add("        min_min_se_val MinMinSeVal, ");
 | 
			
		||||
        results.Add("        min_se_sgrp MinSeSgrp ");
 | 
			
		||||
        results.Add(" from ( ");
 | 
			
		||||
        results.Add("   select count_se_sgtm, ");
 | 
			
		||||
        results.Add("          max_se_lot, ");
 | 
			
		||||
        results.Add("          max_se_part, ");
 | 
			
		||||
        results.Add("          max_se_prcs, ");
 | 
			
		||||
        results.Add("          max_se_sgrp, ");
 | 
			
		||||
        results.Add("          max_se_sgtm, ");
 | 
			
		||||
        results.Add("          min_se_sgrp, ");
 | 
			
		||||
        results.Add("          max(max_se_val) max_max_se_val, ");
 | 
			
		||||
        results.Add("          min(min_se_val) min_min_se_val, ");
 | 
			
		||||
        results.Add("          max(max_se_test) max_max_se_test, ");
 | 
			
		||||
        results.Add("          min(min_se_test) min_min_se_test ");
 | 
			
		||||
        results.Add("   from ( ");
 | 
			
		||||
        results.Add("     select count_se_sgtm, ");
 | 
			
		||||
        results.Add("            max_se_lot, ");
 | 
			
		||||
        results.Add("            max_se_val, ");
 | 
			
		||||
        results.Add("            min_se_val, ");
 | 
			
		||||
        results.Add("            max_se_part, ");
 | 
			
		||||
        results.Add("            max_se_prcs, ");
 | 
			
		||||
        results.Add("            max_se_sgrp, ");
 | 
			
		||||
        results.Add("            max_se_sgtm, ");
 | 
			
		||||
        results.Add("            max_se_test, ");
 | 
			
		||||
        results.Add("            min_se_sgrp, ");
 | 
			
		||||
        results.Add("            min_se_test ");
 | 
			
		||||
        results.Add("     from ( ");
 | 
			
		||||
        results.Add("         select ");
 | 
			
		||||
        results.Add("             max(se.f_lot) max_se_lot, ");
 | 
			
		||||
        results.Add("             max(se.f_val) max_se_val, ");
 | 
			
		||||
        results.Add("             min(se.f_lot) min_se_lot, ");
 | 
			
		||||
        results.Add("             min(se.f_val) min_se_val, ");
 | 
			
		||||
        results.Add("             max(se.f_part) max_se_part, ");
 | 
			
		||||
        results.Add("             max(se.f_prcs) max_se_prcs, ");
 | 
			
		||||
        results.Add("             max(se.f_sgrp) max_se_sgrp, ");
 | 
			
		||||
        results.Add("             max(se.f_sgtm) max_se_sgtm, ");
 | 
			
		||||
        results.Add("             max(se.f_test) max_se_test, ");
 | 
			
		||||
        results.Add("             min(se.f_part) min_se_part, ");
 | 
			
		||||
        results.Add("             min(se.f_prcs) min_se_prcs, ");
 | 
			
		||||
        results.Add("             min(se.f_sgrp) min_se_sgrp, ");
 | 
			
		||||
        results.Add("             min(se.f_sgtm) min_se_sgtm, ");
 | 
			
		||||
        results.Add("             min(se.f_test) min_se_test, ");
 | 
			
		||||
        results.Add("             count(se.f_sgtm) count_se_sgtm ");
 | 
			
		||||
        results.Add("         from [spcepiworld].[dbo].[sgrp_ext] se ");
 | 
			
		||||
        results.Add("         where se.f_tsno = 1 ");
 | 
			
		||||
        results.Add("           and se.f_flag = 0 ");
 | 
			
		||||
        results.Add($"           and se.f_sgtm > {infinityQS} ");
 | 
			
		||||
        results.Add("         group by se.f_sgtm, se.f_prcs, se.f_lot, se.f_test, se.f_val ");
 | 
			
		||||
        results.Add("     ) qa ");
 | 
			
		||||
        results.Add("     where qa.count_se_sgtm > 1 ");
 | 
			
		||||
        results.Add("       and min_se_lot = max_se_lot ");
 | 
			
		||||
        results.Add("       and min_se_val = max_se_val ");
 | 
			
		||||
        results.Add("       and min_se_val = max_se_val ");
 | 
			
		||||
        results.Add("       and min_se_part = max_se_part ");
 | 
			
		||||
        results.Add("       and min_se_prcs = max_se_prcs ");
 | 
			
		||||
        results.Add("       and min_se_sgtm = max_se_sgtm ");
 | 
			
		||||
        results.Add("       and min_se_test = max_se_test ");
 | 
			
		||||
        results.Add("   ) qb ");
 | 
			
		||||
        results.Add("   group by count_se_sgtm, ");
 | 
			
		||||
        results.Add("            max_se_lot, ");
 | 
			
		||||
        results.Add("            max_se_part, ");
 | 
			
		||||
        results.Add("            max_se_prcs, ");
 | 
			
		||||
        results.Add("            max_se_sgrp, ");
 | 
			
		||||
        results.Add("            max_se_sgtm, ");
 | 
			
		||||
        results.Add("            min_se_sgrp ");
 | 
			
		||||
        results.Add("            ");
 | 
			
		||||
        results.Add(" ) qc ");
 | 
			
		||||
        results.Add(" order by max_se_sgrp desc ");
 | 
			
		||||
        results.Add(" for json path ");
 | 
			
		||||
        return string.Join(Environment.NewLine, results);
 | 
			
		||||
    } // cSpell:restore
 | 
			
		||||
 | 
			
		||||
    private static string GetCommandText(Logistics logistics, SECS.Description description, string dateTime, long? subGroupId)
 | 
			
		||||
    {
 | 
			
		||||
        StringBuilder result = new();
 | 
			
		||||
        _ = result
 | 
			
		||||
                .AppendLine(" select ")
 | 
			
		||||
                .AppendLine("       se.f_sgrp se_sgrp, ")
 | 
			
		||||
                .AppendLine("       se.f_sgtm se_sgtm, ")
 | 
			
		||||
                .AppendLine("       se.f_tsno se_tsno, ")
 | 
			
		||||
                .AppendLine("       se.f_val se_val, ")
 | 
			
		||||
                .AppendLine("       rd.f_name rd_name, ")
 | 
			
		||||
                .AppendLine("       jd.f_name jd_name, ")
 | 
			
		||||
                .AppendLine("       pl.f_name pl_name, ")
 | 
			
		||||
                .AppendLine("       pd.f_name pd_name, ")
 | 
			
		||||
                .AppendLine("       td.f_test td_test, ")
 | 
			
		||||
                .AppendLine("       td.f_name td_name, ")
 | 
			
		||||
                .AppendLine("       (select count(ev.f_evnt) ")
 | 
			
		||||
                .AppendLine("       from [spcepiworld].[dbo].[evnt_inf] ev ")
 | 
			
		||||
                .AppendLine("       where ev.f_prcs = rd.f_prcs ")
 | 
			
		||||
                .AppendLine("         and ev.f_part = pd.f_part ")
 | 
			
		||||
                .AppendLine("         and ev.f_sgtm = se.f_sgtm) ev_count ")
 | 
			
		||||
                .AppendLine(" from [spcepiworld].[dbo].[sgrp_ext] se ")
 | 
			
		||||
                .AppendLine(" join [spcepiworld].[dbo].[prcs_dat] rd ")
 | 
			
		||||
                .AppendLine("   on se.f_prcs = rd.f_prcs ")
 | 
			
		||||
                .AppendLine(" join [spcepiworld].[dbo].[job_dat] jd ")
 | 
			
		||||
                .AppendLine("   on se.f_job = jd.f_job ")
 | 
			
		||||
                .AppendLine(" join [spcepiworld].[dbo].[part_lot] pl ")
 | 
			
		||||
                .AppendLine("   on se.f_lot = pl.f_lot ")
 | 
			
		||||
                .AppendLine(" join [spcepiworld].[dbo].[part_dat] pd ")
 | 
			
		||||
                .AppendLine("   on se.f_part = pd.f_part ")
 | 
			
		||||
                .AppendLine(" join [spcepiworld].[dbo].[test_dat] td  ")
 | 
			
		||||
                .AppendLine("   on se.f_test = td.f_test ")
 | 
			
		||||
                .AppendLine(" where se.f_flag = 0 ");
 | 
			
		||||
    { // cSpell:disable
 | 
			
		||||
        List<string> results = new();
 | 
			
		||||
        results.Add(" select iq.ev_count, iq.cl_count, iq.sl_count, iq.se_sgrp, iq.se_sgtm, iq.se_tsno, iq.td_test, iq.pr_name, iq.jd_name, iq.pl_name, iq.pd_name, iq.td_name, iq.se_val ");
 | 
			
		||||
        results.Add(" from ( ");
 | 
			
		||||
        results.Add(" select ");
 | 
			
		||||
        results.Add("       se.f_sgrp se_sgrp, ");
 | 
			
		||||
        results.Add("       se.f_sgtm se_sgtm, ");
 | 
			
		||||
        results.Add("       se.f_tsno se_tsno, ");
 | 
			
		||||
        results.Add("       se.f_val se_val, ");
 | 
			
		||||
        results.Add("       pr.f_name pr_name, ");
 | 
			
		||||
        results.Add("       jd.f_name jd_name, ");
 | 
			
		||||
        results.Add("       pl.f_name pl_name, ");
 | 
			
		||||
        results.Add("       pd.f_name pd_name, ");
 | 
			
		||||
        results.Add("       td.f_test td_test, ");
 | 
			
		||||
        results.Add("       td.f_name td_name, ");
 | 
			
		||||
        results.Add("       (select count(cl.f_part) ");
 | 
			
		||||
        results.Add("       from [spcepiworld].[dbo].[ctrl_lim] cl ");
 | 
			
		||||
        results.Add("       where cl.f_part = pd.f_part ");
 | 
			
		||||
        results.Add("         and cl.f_test = td.f_test ");
 | 
			
		||||
        results.Add("       ) cl_count, ");
 | 
			
		||||
        results.Add("       (select count(sl.f_part) ");
 | 
			
		||||
        results.Add("       from [spcepiworld].[dbo].[spec_lim] sl ");
 | 
			
		||||
        results.Add("       where sl.f_part = pd.f_part ");
 | 
			
		||||
        results.Add("         and sl.f_test = td.f_test ");
 | 
			
		||||
        results.Add("       ) sl_count, ");
 | 
			
		||||
        results.Add("       (select count(ev.f_evnt) ");
 | 
			
		||||
        results.Add("       from [spcepiworld].[dbo].[evnt_inf] ev ");
 | 
			
		||||
        results.Add("       where ev.f_prcs = pr.f_prcs ");
 | 
			
		||||
        results.Add("         and ev.f_part = pd.f_part ");
 | 
			
		||||
        results.Add("         and ev.f_sgtm = se.f_sgtm ");
 | 
			
		||||
        results.Add("       ) ev_count ");
 | 
			
		||||
        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 ");
 | 
			
		||||
        if (subGroupId is not null)
 | 
			
		||||
            _ = result.Append("   and se.f_sgrp = ").Append(subGroupId).AppendLine("  ");
 | 
			
		||||
            results.Add($"   and se.f_sgrp = {subGroupId}  ");
 | 
			
		||||
        if (!string.IsNullOrEmpty(description.RDS))
 | 
			
		||||
            _ = result.Append("   and pl.f_name = '").Append(description.RDS).AppendLine("' ");
 | 
			
		||||
        _ = result
 | 
			
		||||
                .Append("   and rd.f_name = '").Append(description.Reactor).AppendLine("' ")
 | 
			
		||||
                .Append("   and pd.f_name = '").Append(description.PSN).AppendLine("' ")
 | 
			
		||||
                .AppendLine("   and jd.f_name in ('TENCOR1', 'TENCOR2', 'TENCOR3') ")
 | 
			
		||||
                .Append("   and jd.f_name = '").Append(logistics.MesEntity).AppendLine("' ")
 | 
			
		||||
                .Append("   and dateadd(HH, -7, (dateadd(SS, convert(bigint, se.f_sgtm), '19700101'))) = '").Append(dateTime).AppendLine("' ")
 | 
			
		||||
                .AppendLine("   for json path ");
 | 
			
		||||
        return result.ToString();
 | 
			
		||||
    }
 | 
			
		||||
            results.Add($"   and pl.f_name = '{description.RDS}' ");
 | 
			
		||||
        results.Add($"   and pr.f_name = '{description.Reactor}' ");
 | 
			
		||||
        results.Add($"   and pd.f_name = '{description.PSN}' ");
 | 
			
		||||
        results.Add("   and jd.f_name in ('SPV01') ");
 | 
			
		||||
        results.Add($"   and jd.f_name = '{logistics.MesEntity}' ");
 | 
			
		||||
        results.Add($"   and dateadd(HH, -7, (dateadd(SS, convert(bigint, se.f_sgtm), '19700101'))) = '{dateTime}' ");
 | 
			
		||||
        results.Add(" ) as iq ");
 | 
			
		||||
        results.Add(" order by iq.ev_count desc, iq.cl_count desc, iq.sl_count desc, iq.se_sgrp, iq.se_tsno, iq.td_test ");
 | 
			
		||||
        results.Add(" for json path ");
 | 
			
		||||
        return string.Join(Environment.NewLine, results);
 | 
			
		||||
    } // cSpell:restore
 | 
			
		||||
 | 
			
		||||
    private static StringBuilder GetForJsonPath(string connectionString, string commandText)
 | 
			
		||||
    {
 | 
			
		||||
@ -74,32 +199,103 @@ public class FromIQS
 | 
			
		||||
        return stringBuilder;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static string GetCommandText(List<long> subGroups)
 | 
			
		||||
    { // cSpell:disable
 | 
			
		||||
        List<string> results = new();
 | 
			
		||||
        results.Add(" update [spcepiworld].[dbo].[sgrp_ext] ");
 | 
			
		||||
        results.Add(" set f_flag = 1 ");
 | 
			
		||||
        results.Add(" where f_flag = 0 ");
 | 
			
		||||
        results.Add($"   and f_sgrp in ({string.Join($",{Environment.NewLine} ", subGroups)}) ");
 | 
			
		||||
        return string.Join(Environment.NewLine, results);
 | 
			
		||||
    } // cSpell:enable
 | 
			
		||||
 | 
			
		||||
    private static int? ExecuteNonQuery(string connectionString, string commandText)
 | 
			
		||||
    {
 | 
			
		||||
        int? result;
 | 
			
		||||
        if (string.IsNullOrEmpty(connectionString))
 | 
			
		||||
            result = null;
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            using SqlConnection sqlConnection = new(connectionString);
 | 
			
		||||
            sqlConnection.Open();
 | 
			
		||||
            using SqlCommand sqlCommand = new(commandText, sqlConnection);
 | 
			
		||||
            result = sqlCommand.ExecuteNonQuery();
 | 
			
		||||
        }
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static void FlagDuplicates(string connectionString, string json)
 | 
			
		||||
    {
 | 
			
		||||
        JsonElement[]? jsonElements = JsonSerializer.Deserialize<JsonElement[]>(json);
 | 
			
		||||
        JsonSerializerOptions jsonSerializerOptions = new() { PropertyNameCaseInsensitive = true};
 | 
			
		||||
        if (jsonElements is not null && jsonElements.Length != 0 && jsonElements[0].ValueKind == JsonValueKind.Object)
 | 
			
		||||
        {
 | 
			
		||||
            Root? root;
 | 
			
		||||
            List<long> collection = new();
 | 
			
		||||
            JsonElement[] array = jsonElements.ToArray();
 | 
			
		||||
            foreach (JsonElement jsonElement in array)
 | 
			
		||||
            {
 | 
			
		||||
                root = JsonSerializer.Deserialize<Root>(jsonElement.ToString(), jsonSerializerOptions);
 | 
			
		||||
                if (root is null || root.MaxSeSgrp < 1)
 | 
			
		||||
                    continue;
 | 
			
		||||
                if (collection.Count > 99)
 | 
			
		||||
                    break;
 | 
			
		||||
                collection.Add(root.MaxSeSgrp);
 | 
			
		||||
            }
 | 
			
		||||
            if (collection.Count > 0)
 | 
			
		||||
            {
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
                    string commandText = GetCommandText(collection);
 | 
			
		||||
                    File.WriteAllText("D:/.sql", commandText);
 | 
			
		||||
                    _ = ExecuteNonQuery(connectionString, commandText);
 | 
			
		||||
                }
 | 
			
		||||
                catch (Exception)
 | 
			
		||||
                { }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    internal static (long?, int?, string) GetCommandText(string connectionString, Logistics logistics, SECS.Description description, long breakAfter, long preWait)
 | 
			
		||||
    {
 | 
			
		||||
        string dateTime;
 | 
			
		||||
        DateTime dateTime;
 | 
			
		||||
        int? count = null;
 | 
			
		||||
        string commandText;
 | 
			
		||||
        long? result = null;
 | 
			
		||||
        StringBuilder stringBuilder;
 | 
			
		||||
        string dateFormat = SECS.Description.GetDateFormat();
 | 
			
		||||
        if (DateTime.TryParseExact(description.Date, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime dateTimeParsed))
 | 
			
		||||
            dateTime = dateTimeParsed.ToString("yyyy-MM-dd HH:mm:ss");
 | 
			
		||||
            dateTime = dateTimeParsed.ToLocalTime();
 | 
			
		||||
        else if (DateTime.TryParse(description.Date, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTimeParsed))
 | 
			
		||||
            dateTime = dateTimeParsed.ToString("yyyy-MM-dd HH:mm:ss");
 | 
			
		||||
            dateTime = dateTimeParsed.ToLocalTime();
 | 
			
		||||
        else
 | 
			
		||||
            dateTime = logistics.DateTimeFromSequence.ToString("yyyy-MM-dd HH:mm:ss");
 | 
			
		||||
        commandText = GetCommandText(logistics, description, dateTime, subGroupId: null);
 | 
			
		||||
            dateTime = logistics.DateTimeFromSequence;
 | 
			
		||||
        commandText = GetCommandText(dateTime);
 | 
			
		||||
        stringBuilder = GetForJsonPath(connectionString, commandText);
 | 
			
		||||
        if (stringBuilder.Length > 0)
 | 
			
		||||
            FlagDuplicates(connectionString, stringBuilder.ToString());
 | 
			
		||||
        commandText = GetCommandText(logistics, description, dateTime.ToString("yyyy-MM-dd HH:mm:ss"), subGroupId: null);
 | 
			
		||||
        for (short i = 0; i < short.MaxValue; i++)
 | 
			
		||||
        {
 | 
			
		||||
            if (DateTime.Now.Ticks > preWait)
 | 
			
		||||
                break;
 | 
			
		||||
            Thread.Sleep(100);
 | 
			
		||||
        }
 | 
			
		||||
        StringBuilder stringBuilder = new();
 | 
			
		||||
        for (short z = 0; z < short.MaxValue; z++)
 | 
			
		||||
        {
 | 
			
		||||
            stringBuilder = GetForJsonPath(connectionString, commandText);
 | 
			
		||||
            if (stringBuilder.Length > 0)
 | 
			
		||||
            {
 | 
			
		||||
                long postBreakAfter = DateTime.Now.AddSeconds(5).Ticks;
 | 
			
		||||
                for (short y = 0; y < short.MaxValue; y++)
 | 
			
		||||
                {
 | 
			
		||||
                    if (DateTime.Now.Ticks > postBreakAfter)
 | 
			
		||||
                        break;
 | 
			
		||||
                    Thread.Sleep(250);
 | 
			
		||||
                }
 | 
			
		||||
                stringBuilder = GetForJsonPath(connectionString, commandText);
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
            if (DateTime.Now.Ticks > breakAfter)
 | 
			
		||||
                // throw new Exception($"After {breakAfterSeconds} seconds, didn't find sub group id!");
 | 
			
		||||
                break;
 | 
			
		||||
@ -110,18 +306,17 @@ public class FromIQS
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            JsonElement[]? jsonElements = JsonSerializer.Deserialize<JsonElement[]>(stringBuilder.ToString());
 | 
			
		||||
            if (jsonElements is null || !jsonElements.Any() || jsonElements[0].ValueKind != JsonValueKind.Object)
 | 
			
		||||
            if (jsonElements is null || jsonElements.Length == 0 || jsonElements[0].ValueKind != JsonValueKind.Object)
 | 
			
		||||
                commandText = stringBuilder.ToString();
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                JsonProperty[] jsonProperties = jsonElements[0].EnumerateObject().ToArray();
 | 
			
		||||
                if (!jsonProperties.Any() || jsonProperties[0].Name != "se_sgrp" || !long.TryParse(jsonProperties[0].Value.ToString(), out long subGroupId))
 | 
			
		||||
                if (jsonProperties.Length == 0 || jsonProperties[3].Name != "se_sgrp" || !long.TryParse(jsonProperties[3].Value.ToString(), out long subGroupId))
 | 
			
		||||
                    commandText = stringBuilder.ToString();
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
                    result = subGroupId;
 | 
			
		||||
                    commandText = GetCommandText(logistics, description, dateTime, subGroupId);
 | 
			
		||||
                    if (jsonProperties.Any() && jsonProperties[10].Name == "ev_count" && int.TryParse(jsonProperties[10].Value.ToString(), out int evCount))
 | 
			
		||||
                    if (jsonProperties.Length != 0 && jsonProperties[0].Name == "ev_count" && int.TryParse(jsonProperties[0].Value.ToString(), out int evCount))
 | 
			
		||||
                        count = evCount;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
@ -180,40 +375,118 @@ public class FromIQS
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    internal static void Save(string openInsightApiECDirectory, string openInsightApiIFXDirectory, Logistics logistics, string reportFullPath, string logisticLines, SECS.Description description, string lines, long? subGroupId, string weekOfYear)
 | 
			
		||||
    internal static void Save(string openInsightApiECDirectory, Logistics logistics, string reportFullPath, string logisticLines, SECS.Description description, string lines, long? subGroupId, string weekOfYear)
 | 
			
		||||
    {
 | 
			
		||||
        string checkFile;
 | 
			
		||||
        string fileName = Path.GetFileName(reportFullPath);
 | 
			
		||||
        string json = GetJson(logistics, logisticLines, description);
 | 
			
		||||
        string? ecPathRoot = Path.GetPathRoot(openInsightApiECDirectory);
 | 
			
		||||
        string? ifxPathRoot = Path.GetPathRoot(openInsightApiIFXDirectory);
 | 
			
		||||
        bool ecExists = ecPathRoot is not null && Directory.Exists(ecPathRoot);
 | 
			
		||||
        bool ifxExists = ifxPathRoot is not null && Directory.Exists(ifxPathRoot);
 | 
			
		||||
        string weekYear = $"{logistics.DateTimeFromSequence:yyyy}_Week_{weekOfYear}";
 | 
			
		||||
        string ecDirectory = Path.Combine(openInsightApiECDirectory, weekYear, $"-{description.PSN}", $"-{description.Reactor}", $"-{description.RDS}", $"-{subGroupId}");
 | 
			
		||||
        string ifxDirectory = Path.Combine(openInsightApiIFXDirectory, weekYear, $"-{description.PSN}", $"-{description.Reactor}", $"-{description.RDS}", $"-{subGroupId}");
 | 
			
		||||
        if (ecExists && !Directory.Exists(ecDirectory))
 | 
			
		||||
            _ = Directory.CreateDirectory(ecDirectory);
 | 
			
		||||
        if (ifxExists && !Directory.Exists(ifxDirectory))
 | 
			
		||||
            _ = Directory.CreateDirectory(ifxDirectory);
 | 
			
		||||
        checkFile = Path.Combine(ecDirectory, fileName);
 | 
			
		||||
        if (ecExists && !File.Exists(checkFile))
 | 
			
		||||
            File.Copy(reportFullPath, checkFile);
 | 
			
		||||
        checkFile = Path.Combine(ifxDirectory, fileName);
 | 
			
		||||
        if (ifxExists && !File.Exists(checkFile))
 | 
			
		||||
            File.Copy(reportFullPath, checkFile);
 | 
			
		||||
        checkFile = Path.Combine(ecDirectory, $"{logistics.DateTimeFromSequence.Ticks}.txt");
 | 
			
		||||
        if (ecExists && !File.Exists(checkFile))
 | 
			
		||||
            File.WriteAllText(checkFile, lines);
 | 
			
		||||
        checkFile = Path.Combine(ifxDirectory, $"{logistics.DateTimeFromSequence.Ticks}.txt");
 | 
			
		||||
        if (ifxExists && !File.Exists(checkFile))
 | 
			
		||||
            File.WriteAllText(checkFile, lines);
 | 
			
		||||
        checkFile = Path.Combine(ecDirectory, $"{logistics.DateTimeFromSequence.Ticks}.json");
 | 
			
		||||
        if (ecExists && !File.Exists(checkFile))
 | 
			
		||||
            File.WriteAllText(checkFile, json);
 | 
			
		||||
        checkFile = Path.Combine(ifxDirectory, $"{logistics.DateTimeFromSequence.Ticks}.json");
 | 
			
		||||
        if (ifxExists && !File.Exists(checkFile))
 | 
			
		||||
            File.WriteAllText(checkFile, json);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static string GetCommandText(string[] iqsCopyValues)
 | 
			
		||||
    { // cSpell:disable
 | 
			
		||||
        List<string> results = new();
 | 
			
		||||
        if (iqsCopyValues.Length != 4)
 | 
			
		||||
            throw new NotSupportedException();
 | 
			
		||||
        string find = iqsCopyValues[1];
 | 
			
		||||
        string replace = iqsCopyValues[3];
 | 
			
		||||
        results.Add(" select pd.f_name [Part Name], ");
 | 
			
		||||
        results.Add("        null [Part Revision], ");
 | 
			
		||||
        results.Add($"       '{replace}' [Test Name], ");
 | 
			
		||||
        results.Add("        null [Description], ");
 | 
			
		||||
        results.Add("        null [Lot Number], ");
 | 
			
		||||
        results.Add("        null [Job Name], ");
 | 
			
		||||
        results.Add("        null [Process Name], ");
 | 
			
		||||
        results.Add("        case when sl.f_url = 0 then null else sl.f_url end [Reasonable Limit (Upper)], ");
 | 
			
		||||
        results.Add("        case when sl.f_url = 0 then 0 else 1 end [Alarm Reasonable Limit (Upper)], ");
 | 
			
		||||
        results.Add("        case when sl.f_usl = 0 then null else sl.f_usl end [Specification Limit (Upper)], ");
 | 
			
		||||
        results.Add("        case when sl.f_usl = 0 then 0 else 1 end [Alarm Specification Limit (Upper)], ");
 | 
			
		||||
        results.Add("        case when sl.f_ugb = 0 then null else sl.f_ugb end [Warning Limit (Upper)], ");
 | 
			
		||||
        results.Add("        case when sl.f_ugb = 0 then 0 else 1 end [Alarm Warning Limit (Upper)], ");
 | 
			
		||||
        results.Add("        case when sl.f_tar = 0 then null else sl.f_tar end [Specification Limit (Target)], ");
 | 
			
		||||
        results.Add("        case when sl.f_lgb = 0 then null else sl.f_lgb end [Warning Limit (Lower)], ");
 | 
			
		||||
        results.Add("        case when sl.f_lgb = 0 then 0 else 1 end [Alarm Warning Limit (Lower)], ");
 | 
			
		||||
        results.Add("        case when sl.f_lsl = 0 then null else sl.f_lsl end [Specification Limit (Lower)], ");
 | 
			
		||||
        results.Add("        case when sl.f_lsl = 0 then 0 else 1 end [Alarm Specification Limit (Lower)], ");
 | 
			
		||||
        results.Add("        case when sl.f_lrl = 0 then null else sl.f_lrl end [Reasonable Limit (Lower)], ");
 | 
			
		||||
        results.Add("        case when sl.f_lrl = 0 then 0 else 1 end [Alarm Reasonable Limit (Lower)], ");
 | 
			
		||||
        results.Add("        td.f_name [Original Test Name], ");
 | 
			
		||||
        results.Add("        td.f_test [Test Id], ");
 | 
			
		||||
        results.Add("        ( ");
 | 
			
		||||
        results.Add("          select count(sl_b.f_spec) ");
 | 
			
		||||
        results.Add("          from [spcepiworld].[dbo].[spec_lim] sl_b ");
 | 
			
		||||
        results.Add("          join [spcepiworld].[dbo].[part_dat] pd_b ");
 | 
			
		||||
        results.Add("          on sl_b.f_part = pd_b.f_part ");
 | 
			
		||||
        results.Add("          join [spcepiworld].[dbo].[test_dat] td_b ");
 | 
			
		||||
        results.Add("          on sl_b.f_test = td_b.f_test ");
 | 
			
		||||
        results.Add("          where sl_b.f_prcs = 0 ");
 | 
			
		||||
        results.Add($"         and td_b.f_name = '{replace}' ");
 | 
			
		||||
        results.Add("          and pd_b.f_name = pd.f_name ");
 | 
			
		||||
        results.Add("          and sl_b.f_url = sl.f_url ");
 | 
			
		||||
        results.Add("          and sl_b.f_usl = sl.f_usl ");
 | 
			
		||||
        results.Add("          and sl_b.f_ugb = sl.f_ugb ");
 | 
			
		||||
        results.Add("          and sl_b.f_tar = sl.f_tar ");
 | 
			
		||||
        results.Add("          and sl_b.f_lgb = sl.f_lgb ");
 | 
			
		||||
        results.Add("          and sl_b.f_lsl = sl.f_lsl ");
 | 
			
		||||
        results.Add("          and sl_b.f_lrl = sl.f_lrl ");
 | 
			
		||||
        results.Add("          group by sl_b.f_spec ");
 | 
			
		||||
        results.Add("        ) count ");
 | 
			
		||||
        results.Add(" from [spcepiworld].[dbo].[spec_lim] sl ");
 | 
			
		||||
        results.Add(" join [spcepiworld].[dbo].[part_dat] pd ");
 | 
			
		||||
        results.Add("   on sl.f_part = pd.f_part ");
 | 
			
		||||
        results.Add(" join [spcepiworld].[dbo].[test_dat] td ");
 | 
			
		||||
        results.Add("   on sl.f_test = td.f_test ");
 | 
			
		||||
        results.Add(" where sl.f_prcs = 0 ");
 | 
			
		||||
        results.Add($"   and td.f_name = '{find}' ");
 | 
			
		||||
        results.Add("   and isnull(( ");
 | 
			
		||||
        results.Add("        select count(sl_b.f_spec) ");
 | 
			
		||||
        results.Add("        from [spcepiworld].[dbo].[spec_lim] sl_b ");
 | 
			
		||||
        results.Add("        join [spcepiworld].[dbo].[part_dat] pd_b ");
 | 
			
		||||
        results.Add("        on sl_b.f_part = pd_b.f_part ");
 | 
			
		||||
        results.Add("        join [spcepiworld].[dbo].[test_dat] td_b ");
 | 
			
		||||
        results.Add("        on sl_b.f_test = td_b.f_test ");
 | 
			
		||||
        results.Add("        where sl_b.f_prcs = 0 ");
 | 
			
		||||
        results.Add($"       and td_b.f_name = '{replace}' ");
 | 
			
		||||
        results.Add("        and pd_b.f_name = pd.f_name ");
 | 
			
		||||
        results.Add("        and sl_b.f_url = sl.f_url ");
 | 
			
		||||
        results.Add("        and sl_b.f_usl = sl.f_usl ");
 | 
			
		||||
        results.Add("        and sl_b.f_ugb = sl.f_ugb ");
 | 
			
		||||
        results.Add("        and sl_b.f_tar = sl.f_tar ");
 | 
			
		||||
        results.Add("        and sl_b.f_lgb = sl.f_lgb ");
 | 
			
		||||
        results.Add("        and sl_b.f_lsl = sl.f_lsl ");
 | 
			
		||||
        results.Add("        and sl_b.f_lrl = sl.f_lrl ");
 | 
			
		||||
        results.Add("        group by sl_b.f_spec ");
 | 
			
		||||
        results.Add("   ), 0) = 0 ");
 | 
			
		||||
        results.Add(" for json path ");
 | 
			
		||||
        return string.Join(Environment.NewLine, results);
 | 
			
		||||
    } // cSpell:restore
 | 
			
		||||
 | 
			
		||||
    internal static void SaveCopy(string fileConnectorConfigurationSourceFileLocation, string connectionString, string name, string[] iqsCopyValues)
 | 
			
		||||
    {
 | 
			
		||||
        string checkFile = Path.Combine(fileConnectorConfigurationSourceFileLocation, $"{name}.json");
 | 
			
		||||
        if (!File.Exists(checkFile))
 | 
			
		||||
        {
 | 
			
		||||
            string commandText = GetCommandText(iqsCopyValues);
 | 
			
		||||
            StringBuilder stringBuilder = GetForJsonPath(connectionString, commandText);
 | 
			
		||||
            if (stringBuilder.Length != 0)
 | 
			
		||||
                File.WriteAllText(checkFile, stringBuilder.ToString());
 | 
			
		||||
            else
 | 
			
		||||
                File.WriteAllText(Path.Combine(fileConnectorConfigurationSourceFileLocation, $"{name}.sql"), commandText);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#nullable disable
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										47
									
								
								Adaptation/FileHandlers/OpenInsight/Root.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								Adaptation/FileHandlers/OpenInsight/Root.cs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,47 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Text.Json.Serialization;
 | 
			
		||||
 | 
			
		||||
namespace Adaptation.FileHandlers.OpenInsight;
 | 
			
		||||
 | 
			
		||||
public class Root
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    [JsonPropertyName("count_se_sgtm")] public long CountSeSgtm { get; }
 | 
			
		||||
    [JsonPropertyName("date_time")] public DateTime DateTime { get; }
 | 
			
		||||
    [JsonPropertyName("max_max_se_test")] public long MaxMaxSeTest { get; }
 | 
			
		||||
    [JsonPropertyName("max_max_se_test_name")] public string MaxMaxSeTestName { get; }
 | 
			
		||||
    [JsonPropertyName("max_max_se_val")] public double MaxMaxSeVal { get; }
 | 
			
		||||
    [JsonPropertyName("max_se_lot")] public long MaxSeLot { get; }
 | 
			
		||||
    [JsonPropertyName("max_se_lot_name")] public string MaxSeLotName { get; }
 | 
			
		||||
    [JsonPropertyName("max_se_part")] public long MaxSePart { get; }
 | 
			
		||||
    [JsonPropertyName("max_se_part_name")] public string MaxSePartName { get; }
 | 
			
		||||
    [JsonPropertyName("max_se_prcs")] public long MaxSePrcs { get; }
 | 
			
		||||
    [JsonPropertyName("max_se_prcs_name")] public string MaxSePrcsName { get; }
 | 
			
		||||
    [JsonPropertyName("max_se_sgrp")] public long MaxSeSgrp { get; }
 | 
			
		||||
    [JsonPropertyName("min_min_se_test")] public long MinMinSeTest { get; }
 | 
			
		||||
    [JsonPropertyName("min_min_se_test_name")] public string MinMinSeTestName { get; }
 | 
			
		||||
    [JsonPropertyName("min_min_se_val")] public double MinMinSeVal { get; }
 | 
			
		||||
    [JsonPropertyName("min_se_sgrp")] public long MinSeSgrp { get; }
 | 
			
		||||
 | 
			
		||||
    [JsonConstructor]
 | 
			
		||||
    public Root(long countSeSgtm, DateTime dateTime, long maxMaxSeTest, string maxMaxSeTestName, double maxMaxSeVal, long maxSeLot, string maxSeLotName, long maxSePart, string maxSePartName, long maxSePrcs, string maxSePrcsName, long maxSeSgrp, long minMinSeTest, string minMinSeTestName, double minMinSeVal, long minSeSgrp)
 | 
			
		||||
    {
 | 
			
		||||
        CountSeSgtm = countSeSgtm;
 | 
			
		||||
        DateTime = dateTime;
 | 
			
		||||
        MaxMaxSeTest = maxMaxSeTest;
 | 
			
		||||
        MaxMaxSeTestName = maxMaxSeTestName;
 | 
			
		||||
        MaxMaxSeVal = maxMaxSeVal;
 | 
			
		||||
        MaxSeLot = maxSeLot;
 | 
			
		||||
        MaxSeLotName = maxSeLotName;
 | 
			
		||||
        MaxSePart = maxSePart;
 | 
			
		||||
        MaxSePartName = maxSePartName;
 | 
			
		||||
        MaxSePrcs = maxSePrcs;
 | 
			
		||||
        MaxSePrcsName = maxSePrcsName;
 | 
			
		||||
        MaxSeSgrp = maxSeSgrp;
 | 
			
		||||
        MinMinSeTest = minMinSeTest;
 | 
			
		||||
        MinMinSeTestName = minMinSeTestName;
 | 
			
		||||
        MinMinSeVal = minMinSeVal;
 | 
			
		||||
        MinSeSgrp = minSeSgrp;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -14,8 +14,8 @@ namespace Adaptation.FileHandlers.OpenInsightMetrologyViewer;
 | 
			
		||||
public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    public FileRead(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, bool isEAFHosted) :
 | 
			
		||||
        base(new Description(), false, smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, 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<string>> 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)
 | 
			
		||||
    {
 | 
			
		||||
        _MinFileLength = 10;
 | 
			
		||||
        _NullData = string.Empty;
 | 
			
		||||
@ -103,12 +103,10 @@ public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
        return results;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static void SendData(DateTime dateTime, List<SECS.Description> descriptions)
 | 
			
		||||
#pragma warning disable IDE0060
 | 
			
		||||
    private static void SendData(string reportFullPath, DateTime dateTime, List<SECS.Description> descriptions)
 | 
			
		||||
#pragma warning restore IDE0060
 | 
			
		||||
    {
 | 
			
		||||
        if (dateTime == DateTime.MinValue)
 | 
			
		||||
        { }
 | 
			
		||||
        if (descriptions is null)
 | 
			
		||||
        { }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
 | 
			
		||||
@ -121,7 +119,7 @@ public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
        List<SECS.Description> descriptions = SECS.ProcessData.GetDescriptions(jsonElements);
 | 
			
		||||
        Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
 | 
			
		||||
        if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
 | 
			
		||||
            SendData(dateTime, descriptions);
 | 
			
		||||
            SendData(reportFullPath, dateTime, descriptions);
 | 
			
		||||
        results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(pdsf.Item1, tests, jsonElements, new List<FileInfo>());
 | 
			
		||||
        return results;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -14,8 +14,8 @@ namespace Adaptation.FileHandlers.OpenInsightMetrologyViewerAttachments;
 | 
			
		||||
public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    public FileRead(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, bool isEAFHosted) :
 | 
			
		||||
        base(new Description(), false, smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, 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<string>> 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)
 | 
			
		||||
    {
 | 
			
		||||
        _MinFileLength = 10;
 | 
			
		||||
        _NullData = string.Empty;
 | 
			
		||||
@ -103,17 +103,15 @@ public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
        return results;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static void PostOpenInsightMetrologyViewerAttachments(string reportFullPath, DateTime dateTime, List<SECS.Description> descriptions)
 | 
			
		||||
#pragma warning disable IDE0060
 | 
			
		||||
    private static void PostOpenInsightMetrologyViewerAttachments(List<SECS.Description> descriptions)
 | 
			
		||||
#pragma warning restore IDE0060
 | 
			
		||||
    {
 | 
			
		||||
        if (reportFullPath is null)
 | 
			
		||||
        { }
 | 
			
		||||
        if (dateTime == DateTime.MinValue)
 | 
			
		||||
        { }
 | 
			
		||||
        if (descriptions is null)
 | 
			
		||||
        { }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#pragma warning disable IDE0060
 | 
			
		||||
    private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
 | 
			
		||||
#pragma warning restore IDE0060
 | 
			
		||||
    {
 | 
			
		||||
        Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
 | 
			
		||||
        Tuple<string, string[], string[]> pdsf = ProcessDataStandardFormat.GetLogisticsColumnsAndBody(reportFullPath);
 | 
			
		||||
@ -123,7 +121,7 @@ public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
        List<SECS.Description> descriptions = SECS.ProcessData.GetDescriptions(jsonElements);
 | 
			
		||||
        Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
 | 
			
		||||
        if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
 | 
			
		||||
            PostOpenInsightMetrologyViewerAttachments(reportFullPath, dateTime, descriptions);
 | 
			
		||||
            PostOpenInsightMetrologyViewerAttachments(descriptions);
 | 
			
		||||
        results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(pdsf.Item1, tests, jsonElements, new List<FileInfo>());
 | 
			
		||||
        return results;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -14,8 +14,8 @@ namespace Adaptation.FileHandlers.Processed;
 | 
			
		||||
public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    public FileRead(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, bool isEAFHosted) :
 | 
			
		||||
        base(new Description(), false, smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, 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<string>> 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)
 | 
			
		||||
    {
 | 
			
		||||
        _MinFileLength = 10;
 | 
			
		||||
        _NullData = string.Empty;
 | 
			
		||||
@ -103,14 +103,10 @@ public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
        return results;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#pragma warning disable IDE0060
 | 
			
		||||
    private static void DirectoryMove(string reportFullPath, DateTime dateTime, List<Shared.Properties.IDescription> descriptions)
 | 
			
		||||
#pragma warning restore IDE0060
 | 
			
		||||
    {
 | 
			
		||||
        if (reportFullPath is null)
 | 
			
		||||
        { }
 | 
			
		||||
        if (dateTime == DateTime.MinValue)
 | 
			
		||||
        { }
 | 
			
		||||
        if (descriptions is null)
 | 
			
		||||
        { }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
 | 
			
		||||
 | 
			
		||||
@ -14,14 +14,15 @@ public class Description : IDescription, Shared.Properties.IDescription
 | 
			
		||||
    public int Count { get; set; }
 | 
			
		||||
    public int Index { get; set; }
 | 
			
		||||
 | 
			
		||||
    public string MesEntity { get; set; }
 | 
			
		||||
    public string Date { get; set; }
 | 
			
		||||
 | 
			
		||||
    [JsonPropertyName("CURRENT_RECIPE_NAME")]
 | 
			
		||||
    public string PSN { get; set; } // Part
 | 
			
		||||
 | 
			
		||||
    [JsonPropertyName("LotID")]
 | 
			
		||||
    public string Reactor { get; set; } // Process
 | 
			
		||||
 | 
			
		||||
    public string MesEntity { get; set; }
 | 
			
		||||
 | 
			
		||||
    [JsonPropertyName("ID")]
 | 
			
		||||
    public string RDS { get; set; } // Lot
 | 
			
		||||
 | 
			
		||||
@ -31,7 +32,8 @@ public class Description : IDescription, Shared.Properties.IDescription
 | 
			
		||||
    [JsonPropertyName("SAMPLETYPE")]
 | 
			
		||||
    public string Employee { get; set; } // Item descriptor
 | 
			
		||||
 | 
			
		||||
    public string Date { get; set; }
 | 
			
		||||
    [JsonPropertyName("SLOT_NUMBER")]
 | 
			
		||||
    public string SlotNumber { get; set; } // Item descriptor
 | 
			
		||||
 | 
			
		||||
    string IDescription.GetEventDescription() => "File Has been read and parsed";
 | 
			
		||||
 | 
			
		||||
@ -68,6 +70,6 @@ public class Description : IDescription, Shared.Properties.IDescription
 | 
			
		||||
    List<IDescription> IDescription.GetDescriptions(IFileRead fileRead, Logistics logistics, List<Test> tests, IProcessData iProcessData) =>
 | 
			
		||||
        throw new NotImplementedException();
 | 
			
		||||
 | 
			
		||||
    internal static string GetDateFormat() => "MM/dd/yyyy hh:mm:ss tt";
 | 
			
		||||
    internal static string GetDateFormat() => "MM/dd/yyyy HH:mm:ss";
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -14,8 +14,8 @@ namespace Adaptation.FileHandlers.SPaCe;
 | 
			
		||||
public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    public FileRead(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, bool isEAFHosted) :
 | 
			
		||||
        base(new Description(), false, smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, 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<string>> 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)
 | 
			
		||||
    {
 | 
			
		||||
        _MinFileLength = 10;
 | 
			
		||||
        _NullData = string.Empty;
 | 
			
		||||
@ -116,8 +116,6 @@ public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
 | 
			
		||||
    private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
 | 
			
		||||
    {
 | 
			
		||||
        if (dateTime == DateTime.MinValue)
 | 
			
		||||
        { }
 | 
			
		||||
        Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
 | 
			
		||||
        Tuple<string, string[], string[]> pdsf = ProcessDataStandardFormat.GetLogisticsColumnsAndBody(reportFullPath);
 | 
			
		||||
        _Logistics = new Logistics(reportFullPath, pdsf.Item1);
 | 
			
		||||
 | 
			
		||||
@ -18,22 +18,13 @@ public class MonIn : IMonIn, IDisposable
 | 
			
		||||
    public static MonIn GetInstance(string url = "http://moninhttp.{0}.infineon.com/input/text")
 | 
			
		||||
    {
 | 
			
		||||
        MonIn instance;
 | 
			
		||||
        if (_Instances.ContainsKey(url))
 | 
			
		||||
        {
 | 
			
		||||
            instance = _Instances[url];
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
        lock (_Instances)
 | 
			
		||||
        {
 | 
			
		||||
                if (!_Instances.ContainsKey(url))
 | 
			
		||||
            if (_Instances.TryGetValue(url, out instance))
 | 
			
		||||
            {
 | 
			
		||||
                instance = new MonIn(url);
 | 
			
		||||
                _Instances.Add(url, instance);
 | 
			
		||||
            }
 | 
			
		||||
                else
 | 
			
		||||
                    instance = _Instances[url];
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return instance;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -7,12 +7,12 @@ trigger:
 | 
			
		||||
      - "Adaptation/*"
 | 
			
		||||
 | 
			
		||||
pool:
 | 
			
		||||
  name: Mesa-Windows-Service
 | 
			
		||||
  name: eaf
 | 
			
		||||
  demands: MET08ANLYSDIFAAST230-Development
 | 
			
		||||
 | 
			
		||||
steps:
 | 
			
		||||
  - script: |
 | 
			
		||||
      set coreVersion=net6.0
 | 
			
		||||
      set coreVersion=net7.0
 | 
			
		||||
      echo %coreVersion%
 | 
			
		||||
      echo ##vso[task.setvariable variable=CoreVersion;]%coreVersion%
 | 
			
		||||
      echo $(CoreVersion)
 | 
			
		||||
@ -22,11 +22,11 @@ steps:
 | 
			
		||||
      set configuration=Debug
 | 
			
		||||
      echo %configuration%
 | 
			
		||||
      echo ##vso[task.setvariable variable=Configuration;]%configuration%
 | 
			
		||||
      echo ($Configuration)
 | 
			
		||||
      echo $(Configuration)
 | 
			
		||||
    displayName: Configuration
 | 
			
		||||
 | 
			
		||||
  - script: |
 | 
			
		||||
      set nugetSource=https://messa017.infineon.com/v3/index.json
 | 
			
		||||
      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)
 | 
			
		||||
@ -97,7 +97,15 @@ steps:
 | 
			
		||||
      testResultsFormat: VSTest
 | 
			
		||||
      testResultsFiles: "**/*.trx"
 | 
			
		||||
      testRunTitle: "$(GitCommitSeven)-$(Build.BuildId)-$(CoreVersion)-$(Configuration)-$(Build.Repository.Name)"
 | 
			
		||||
      searchFolder: "$(System.DefaultWorkingDirectory)"
 | 
			
		||||
      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"
 | 
			
		||||
@ -113,7 +121,7 @@ steps:
 | 
			
		||||
    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)'
 | 
			
		||||
  - 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'
 | 
			
		||||
@ -125,18 +133,18 @@ steps:
 | 
			
		||||
  - task: CopyFiles@2
 | 
			
		||||
    displayName: 'Copy Files to: D:\Framework4.8'
 | 
			
		||||
    inputs:
 | 
			
		||||
      SourceFolder: 'bin\$(Configuration)'
 | 
			
		||||
      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: \\messv02ecc1.ec.local\EC_EAFRepository'
 | 
			
		||||
    displayName: 'Copy Files to: Local D EAF Deployment Storage'
 | 
			
		||||
    inputs:
 | 
			
		||||
      SourceFolder: 'bin\$(Configuration)'
 | 
			
		||||
      Contents: "*$(Build.Repository.Name)*"
 | 
			
		||||
      TargetFolder: '\\messv02ecc1.ec.local\EC_EAFRepository\Staging\DeploymentStorage\Adaptation_$(Build.Repository.Name)'
 | 
			
		||||
      SourceFolder: 'bin\$(Configuration)'
 | 
			
		||||
      TargetFolder: 'D:\EAF\EAF Deployment Storage\Adaptation_$(Build.Repository.Name)'
 | 
			
		||||
      OverWrite: true
 | 
			
		||||
    enabled: false
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -8,10 +8,9 @@
 | 
			
		||||
    <PropertyGroup>
 | 
			
		||||
        <ImplicitUsings>disable</ImplicitUsings>
 | 
			
		||||
        <IsPackable>false</IsPackable>
 | 
			
		||||
        <LangVersion>10.0</LangVersion>
 | 
			
		||||
        <Nullable>disable</Nullable>
 | 
			
		||||
        <RuntimeIdentifier>win-x64</RuntimeIdentifier>
 | 
			
		||||
        <TargetFramework>net6.0</TargetFramework>
 | 
			
		||||
        <TargetFramework>net8.0</TargetFramework>
 | 
			
		||||
    </PropertyGroup>
 | 
			
		||||
    <PropertyGroup>
 | 
			
		||||
        <VSTestLogger>trx</VSTestLogger>
 | 
			
		||||
@ -33,7 +32,10 @@
 | 
			
		||||
        <DefineConstants>Linux</DefineConstants>
 | 
			
		||||
    </PropertyGroup>
 | 
			
		||||
    <ItemGroup>
 | 
			
		||||
        <PackageReference Include="coverlet.collector" Version="3.2.0" />
 | 
			
		||||
        <RuntimeHostConfigurationOption Include="AssemblyName" Value="MET08ANLYSDIFAAST230" />
 | 
			
		||||
    </ItemGroup>
 | 
			
		||||
    <ItemGroup>
 | 
			
		||||
        <PackageReference Include="coverlet.collector" Version="6.0.3" />
 | 
			
		||||
        <PackageReference Include="FFMpegCore" Version="5.1.0" />
 | 
			
		||||
        <PackageReference Include="IKVM.AWT.WinForms" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
 | 
			
		||||
        <PackageReference Include="IKVM.OpenJDK.Core" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
 | 
			
		||||
@ -42,41 +44,39 @@
 | 
			
		||||
        <PackageReference Include="IKVM.OpenJDK.Util" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
 | 
			
		||||
        <PackageReference Include="IKVM.OpenJDK.XML.API" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
 | 
			
		||||
        <PackageReference Include="IKVM.Runtime" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
 | 
			
		||||
        <PackageReference Include="Instances" Version="3.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="7.0.4" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Configuration.json" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Configuration" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Win32.SystemEvents" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="MSTest.TestAdapter" Version="3.0.2" />
 | 
			
		||||
        <PackageReference Include="MSTest.TestFramework" Version="3.0.2" />
 | 
			
		||||
        <PackageReference Include="Instances" Version="3.0.1" />
 | 
			
		||||
        <PackageReference Include="log4net" Version="3.0.3"></PackageReference>
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="9.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="9.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="9.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="9.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Configuration.json" Version="9.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="9.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="9.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Logging" Version="9.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Win32.SystemEvents" Version="9.0.0" />
 | 
			
		||||
        <PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
 | 
			
		||||
        <PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
 | 
			
		||||
        <PackageReference Include="Pdfbox" Version="1.1.1"><NoWarn>NU1701</NoWarn></PackageReference>
 | 
			
		||||
        <PackageReference Include="RoboSharp" Version="1.2.8" />
 | 
			
		||||
        <PackageReference Include="System.Configuration.ConfigurationManager" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="System.Data.OleDb" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="System.Data.SqlClient" Version="4.8.5" />
 | 
			
		||||
        <PackageReference Include="System.Drawing.Common" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="System.Text.Json" Version="7.0.2" />
 | 
			
		||||
        <PackageReference Include="Tesseract" Version="5.2.0" />
 | 
			
		||||
    </ItemGroup>
 | 
			
		||||
    <ItemGroup>
 | 
			
		||||
        <PackageReference Include="Tibco.Rendezvous" Version="8.5.0" />
 | 
			
		||||
        <PackageReference Include="Infineon.Yoda" Version="5.4.1" />
 | 
			
		||||
        <PackageReference Include="RoboSharp" Version="1.6.0" />
 | 
			
		||||
        <PackageReference Include="System.Configuration.ConfigurationManager" Version="9.0.0" />
 | 
			
		||||
        <PackageReference Include="System.Data.OleDb" Version="9.0.0" />
 | 
			
		||||
        <PackageReference Include="System.Data.SqlClient" Version="4.8.6" />
 | 
			
		||||
        <PackageReference Include="System.Drawing.Common" Version="9.0.0" />
 | 
			
		||||
        <PackageReference Include="System.Text.Json" Version="9.0.0" />
 | 
			
		||||
    </ItemGroup>
 | 
			
		||||
    <ItemGroup>
 | 
			
		||||
        <PackageReference Include="Infineon.Mesa.PDF.Text.Stripper" Version="4.8.0.1"><NoWarn>NU1701</NoWarn></PackageReference>
 | 
			
		||||
    </ItemGroup>
 | 
			
		||||
    <ItemGroup>
 | 
			
		||||
        <PackageReference Include="External.Common.Logging.Core" Version="3.3.1"><NoWarn>NU1701</NoWarn></PackageReference>
 | 
			
		||||
        <PackageReference Include="External.Common.Logging" Version="3.3.1"><NoWarn>NU1701</NoWarn></PackageReference>
 | 
			
		||||
        <PackageReference Include="External.log4net" Version="2.0.8"><NoWarn>NU1701</NoWarn></PackageReference>
 | 
			
		||||
        <PackageReference Include="Infineon.Yoda.DotNetCore" Version="5.4.3" />
 | 
			
		||||
        <PackageReference Include="Tibco.Rendezvous.DotNetCore" Version="8.5.0" />
 | 
			
		||||
    </ItemGroup>
 | 
			
		||||
    <ItemGroup>
 | 
			
		||||
        <PackageReference Include="Tesseract" Version="5.2.0" />
 | 
			
		||||
    </ItemGroup>
 | 
			
		||||
    <ItemGroup>
 | 
			
		||||
        <None Include="appsettings.json">
 | 
			
		||||
 | 
			
		||||
@ -7,12 +7,12 @@ trigger:
 | 
			
		||||
      - "Adaptation/*"
 | 
			
		||||
 | 
			
		||||
pool:
 | 
			
		||||
  name: Mesa-Windows-Service
 | 
			
		||||
  name: eaf
 | 
			
		||||
  demands: MET08ANLYSDIFAAST230
 | 
			
		||||
 | 
			
		||||
steps:
 | 
			
		||||
  - script: |
 | 
			
		||||
      set coreVersion=net6.0
 | 
			
		||||
      set coreVersion=net7.0
 | 
			
		||||
      echo %coreVersion%
 | 
			
		||||
      echo ##vso[task.setvariable variable=CoreVersion;]%coreVersion%
 | 
			
		||||
      echo $(CoreVersion)
 | 
			
		||||
@ -22,11 +22,11 @@ steps:
 | 
			
		||||
      set configuration=Release
 | 
			
		||||
      echo %configuration%
 | 
			
		||||
      echo ##vso[task.setvariable variable=Configuration;]%configuration%
 | 
			
		||||
      echo ($Configuration)
 | 
			
		||||
      echo $(Configuration)
 | 
			
		||||
    displayName: Configuration
 | 
			
		||||
 | 
			
		||||
  - script: |
 | 
			
		||||
      set nugetSource=https://messa08ec.ec.local/v3/index.json
 | 
			
		||||
      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)
 | 
			
		||||
@ -97,7 +97,15 @@ steps:
 | 
			
		||||
      testResultsFormat: VSTest
 | 
			
		||||
      testResultsFiles: "**/*.trx"
 | 
			
		||||
      testRunTitle: "$(GitCommitSeven)-$(Build.BuildId)-$(CoreVersion)-$(Configuration)-$(Build.Repository.Name)"
 | 
			
		||||
      searchFolder: "$(System.DefaultWorkingDirectory)"
 | 
			
		||||
      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"
 | 
			
		||||
@ -113,7 +121,7 @@ steps:
 | 
			
		||||
    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)'
 | 
			
		||||
  - 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'
 | 
			
		||||
@ -125,17 +133,17 @@ steps:
 | 
			
		||||
  - task: CopyFiles@2
 | 
			
		||||
    displayName: 'Copy Files to: D:\Framework4.8'
 | 
			
		||||
    inputs:
 | 
			
		||||
      SourceFolder: 'bin\$(Configuration)'
 | 
			
		||||
      Contents: "*$(Build.Repository.Name)*"
 | 
			
		||||
      SourceFolder: 'bin\$(Configuration)'
 | 
			
		||||
      TargetFolder: 'D:\Framework4.8\$(GitCommitSeven)-$(Build.BuildId)-$(Build.Repository.Name)-$(Configuration)'
 | 
			
		||||
      OverWrite: true
 | 
			
		||||
 | 
			
		||||
  - task: CopyFiles@2
 | 
			
		||||
    displayName: 'Copy Files to: \\messv02ecc1.ec.local\EC_EAFRepository'
 | 
			
		||||
    displayName: 'Copy Files to: Local D EAF Deployment Storage'
 | 
			
		||||
    inputs:
 | 
			
		||||
      SourceFolder: 'bin\$(Configuration)'
 | 
			
		||||
      Contents: "*$(Build.Repository.Name)*"
 | 
			
		||||
      TargetFolder: '\\messv02ecc1.ec.local\EC_EAFRepository\Staging\DeploymentStorage\Adaptation_$(Build.Repository.Name)'
 | 
			
		||||
      SourceFolder: 'bin\$(Configuration)'
 | 
			
		||||
      TargetFolder: 'D:\EAF\EAF Deployment Storage\Adaptation_$(Build.Repository.Name)'
 | 
			
		||||
      OverWrite: true
 | 
			
		||||
 | 
			
		||||
  - script: |
 | 
			
		||||
 | 
			
		||||
@ -115,6 +115,42 @@ public class Description : IDescription, Properties.IDescription
 | 
			
		||||
    List<IDescription> IDescription.GetDescriptions(IFileRead fileRead, Logistics logistics, List<Test> tests, IProcessData iProcessData)
 | 
			
		||||
    {
 | 
			
		||||
        List<IDescription> results = new();
 | 
			
		||||
        if (iProcessData is null || iProcessData.Details.Count == 0)
 | 
			
		||||
            results.Add(GetDefault(fileRead, logistics));
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            string nullData;
 | 
			
		||||
            Description description;
 | 
			
		||||
            object configDataNullData = fileRead.NullData;
 | 
			
		||||
            if (configDataNullData is null)
 | 
			
		||||
                nullData = string.Empty;
 | 
			
		||||
            else
 | 
			
		||||
                nullData = configDataNullData.ToString();
 | 
			
		||||
            for (int i = 0; i < iProcessData.Details.Count; i++)
 | 
			
		||||
            {
 | 
			
		||||
                if (iProcessData.Details[i] is null)
 | 
			
		||||
                    continue;
 | 
			
		||||
                description = new Description
 | 
			
		||||
                {
 | 
			
		||||
                    Test = (int)tests[i],
 | 
			
		||||
                    Count = tests.Count,
 | 
			
		||||
                    Index = i,
 | 
			
		||||
                    //
 | 
			
		||||
                    EventName = fileRead.EventName,
 | 
			
		||||
                    NullData = nullData,
 | 
			
		||||
                    JobID = fileRead.CellInstanceName,
 | 
			
		||||
                    Sequence = logistics.Sequence.ToString(),
 | 
			
		||||
                    MesEntity = logistics.MesEntity,
 | 
			
		||||
                    ReportFullPath = logistics.ReportFullPath,
 | 
			
		||||
                    ProcessJobID = logistics.ProcessJobID,
 | 
			
		||||
                    MID = logistics.MID,
 | 
			
		||||
                    //
 | 
			
		||||
                    Date = DateTime.Now.ToString(GetDateFormat()),
 | 
			
		||||
                    RDS = string.Empty,
 | 
			
		||||
                };
 | 
			
		||||
                results.Add(description);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return results;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -63,7 +63,7 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
    string Properties.IFileRead.CellInstanceConnectionName => _CellInstanceConnectionName;
 | 
			
		||||
    string Properties.IFileRead.ParameterizedModelObjectDefinitionType => _ParameterizedModelObjectDefinitionType;
 | 
			
		||||
 | 
			
		||||
    public FileRead(IDescription description, bool isEvent, 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, bool isEAFHosted)
 | 
			
		||||
    public FileRead(IDescription description, bool isEvent, 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)
 | 
			
		||||
    {
 | 
			
		||||
        _SMTP = smtp;
 | 
			
		||||
        _IsEvent = isEvent;
 | 
			
		||||
@ -106,7 +106,7 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
                throw new Exception(cellInstanceConnectionName);
 | 
			
		||||
            if (string.IsNullOrEmpty(equipmentDictionaryName) && isEvent)
 | 
			
		||||
                throw new Exception(cellInstanceConnectionName);
 | 
			
		||||
            if (!string.IsNullOrEmpty(equipmentDictionaryName) && !isEvent)
 | 
			
		||||
            if (!string.IsNullOrEmpty(equipmentDictionaryName) && !isEvent && connectionCount > 1)
 | 
			
		||||
                throw new Exception(cellInstanceConnectionName);
 | 
			
		||||
            // if (string.IsNullOrEmpty(equipmentDictionaryName) && !isEvent)
 | 
			
		||||
            //     throw new Exception(cellInstanceConnectionName);
 | 
			
		||||
@ -163,7 +163,7 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
    protected static ModelObjectParameterDefinition[] GetProperties(string cellInstanceConnectionName, IList<ModelObjectParameterDefinition> modelObjectParameters, string propertyNamePrefix)
 | 
			
		||||
    {
 | 
			
		||||
        ModelObjectParameterDefinition[] results = (from l in modelObjectParameters where l.Name.StartsWith(propertyNamePrefix) select l).ToArray();
 | 
			
		||||
        if (!results.Any())
 | 
			
		||||
        if (results.Length == 0)
 | 
			
		||||
            throw new Exception(cellInstanceConnectionName);
 | 
			
		||||
        return results;
 | 
			
		||||
    }
 | 
			
		||||
@ -171,7 +171,7 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
    protected static ModelObjectParameterDefinition[] GetProperties(string cellInstanceConnectionName, IList<ModelObjectParameterDefinition> modelObjectParameters, string propertyNamePrefix, string propertyNameSuffix)
 | 
			
		||||
    {
 | 
			
		||||
        ModelObjectParameterDefinition[] results = (from l in modelObjectParameters where l.Name.StartsWith(propertyNamePrefix) && l.Name.EndsWith(propertyNameSuffix) select l).ToArray();
 | 
			
		||||
        if (!results.Any())
 | 
			
		||||
        if (results.Length == 0)
 | 
			
		||||
            throw new Exception(cellInstanceConnectionName);
 | 
			
		||||
        return results;
 | 
			
		||||
    }
 | 
			
		||||
@ -203,7 +203,7 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
            }
 | 
			
		||||
            lock (threadExceptions)
 | 
			
		||||
            {
 | 
			
		||||
                if (threadExceptions.Any())
 | 
			
		||||
                if (threadExceptions.Count != 0)
 | 
			
		||||
                {
 | 
			
		||||
                    foreach (Exception item in threadExceptions)
 | 
			
		||||
                        _Log.Error(string.Concat(item.Message, Environment.NewLine, Environment.NewLine, item.StackTrace));
 | 
			
		||||
@ -241,7 +241,7 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
            if (!_IsDuplicator)
 | 
			
		||||
                WriteAllLines(to, results);
 | 
			
		||||
        }
 | 
			
		||||
        if (extractResults is not null && extractResults.Item4 is not null && extractResults.Item4.Any())
 | 
			
		||||
        if (extractResults is not null && extractResults.Item4 is not null && extractResults.Item4.Count != 0)
 | 
			
		||||
        {
 | 
			
		||||
            string itemFile;
 | 
			
		||||
            List<string> directories = new();
 | 
			
		||||
@ -260,19 +260,21 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
        return results;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected static string GetTupleFile<T>(Logistics logistics, List<T> descriptions, Properties.IScopeInfo scopeInfo, string duplicateDirectory) where T : Properties.IDescription
 | 
			
		||||
    protected static string GetTupleFile<T>(Logistics logistics, List<T> descriptions, Properties.IScopeInfo scopeInfo, string duplicateDirectory, string duplicateFile) where T : Properties.IDescription
 | 
			
		||||
    {
 | 
			
		||||
        string result;
 | 
			
		||||
        string rds;
 | 
			
		||||
        string fileName;
 | 
			
		||||
        string dateValue;
 | 
			
		||||
        string rdsPlaceholder = "%RDS%";
 | 
			
		||||
        if (!descriptions.Any() || string.IsNullOrEmpty(descriptions[0].RDS))
 | 
			
		||||
        string mesEntityPlaceholder = "%MesEntity%";
 | 
			
		||||
        if (descriptions.Count == 0 || string.IsNullOrEmpty(descriptions[0].RDS))
 | 
			
		||||
            rds = logistics.MID;
 | 
			
		||||
        else
 | 
			
		||||
            rds = descriptions[0].RDS;
 | 
			
		||||
        string[] segments = scopeInfo.FileName.Split(new string[] { "DateTime:" }, StringSplitOptions.RemoveEmptyEntries);
 | 
			
		||||
        if (segments.Length == 0)
 | 
			
		||||
            result = string.Concat(duplicateDirectory, @"\", scopeInfo.FileNameWithoutExtension.Replace(rdsPlaceholder, rds));
 | 
			
		||||
            result = string.Concat(duplicateDirectory, @"\", scopeInfo.FileNameWithoutExtension.Replace(rdsPlaceholder, rds).Replace(mesEntityPlaceholder, logistics.MesEntity));
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            segments = segments[1].Split('%');
 | 
			
		||||
@ -284,7 +286,11 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
                    continue;
 | 
			
		||||
                datePlaceholder = string.Concat('%', segment, '%');
 | 
			
		||||
            }
 | 
			
		||||
            result = string.Concat(duplicateDirectory, @"\", scopeInfo.FileName.Replace(rdsPlaceholder, rds).Replace(datePlaceholder, dateValue));
 | 
			
		||||
            fileName = scopeInfo.FileName.Replace(rdsPlaceholder, rds).Replace(mesEntityPlaceholder, logistics.MesEntity).Replace(datePlaceholder, dateValue);
 | 
			
		||||
            if (!duplicateFile.Contains("Viewer"))
 | 
			
		||||
                result = Path.Combine(duplicateDirectory, fileName);
 | 
			
		||||
            else
 | 
			
		||||
                result = Path.Combine(duplicateDirectory, $"Viewer_{fileName}");
 | 
			
		||||
        }
 | 
			
		||||
        if (result.Contains('%'))
 | 
			
		||||
            throw new Exception("Placeholder exists!");
 | 
			
		||||
@ -306,7 +312,7 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
            preWait = dateTime.AddMilliseconds(1234).Ticks;
 | 
			
		||||
        else
 | 
			
		||||
            preWait = dateTime.AddMilliseconds(_FileConnectorConfiguration.FileHandleWaitTime.Value).Ticks;
 | 
			
		||||
        if (!collection.Any())
 | 
			
		||||
        if (collection.Count == 0)
 | 
			
		||||
            duplicateFiles.Add(duplicateFile);
 | 
			
		||||
        string fileName = Path.GetFileNameWithoutExtension(logistics.ReportFullPath);
 | 
			
		||||
        string successFile = string.Concat(successDirectory, @"\", Path.GetFileName(logistics.ReportFullPath));
 | 
			
		||||
@ -317,7 +323,7 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
            else if (!scopeInfo.FileName.Contains('%'))
 | 
			
		||||
                tupleFile = string.Concat(duplicateDirectory, @"\", fileName, "_", scopeInfo.FileNameWithoutExtension, ".pdsfc");
 | 
			
		||||
            else
 | 
			
		||||
                tupleFile = GetTupleFile(logistics, descriptions, scopeInfo, duplicateDirectory);
 | 
			
		||||
                tupleFile = GetTupleFile(logistics, descriptions, scopeInfo, duplicateDirectory, duplicateFile);
 | 
			
		||||
            tupleFileName = Path.GetFileNameWithoutExtension(tupleFile).Split('.')[0];
 | 
			
		||||
            duplicateFiles.Add(tupleFile);
 | 
			
		||||
            if (_IsEAFHosted)
 | 
			
		||||
@ -416,10 +422,12 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
    protected void WritePDSF(IFileRead fileRead, JsonElement[] jsonElements)
 | 
			
		||||
    {
 | 
			
		||||
        string directory;
 | 
			
		||||
        string weekOfYear = _Calendar.GetWeekOfYear(_Logistics.DateTimeFromSequence, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00");
 | 
			
		||||
        string weekDirectory = $"{_Logistics.DateTimeFromSequence:yyyy}_Week_{weekOfYear}{@"\"}{_Logistics.DateTimeFromSequence:yyyy-MM-dd}";
 | 
			
		||||
        if (!_CellInstanceConnectionName.StartsWith(_CellInstanceName) && _CellInstanceConnectionNameBase == _EquipmentType)
 | 
			
		||||
            directory = Path.Combine(_TracePath, _EquipmentType, "Target", _CellInstanceName, _CellInstanceConnectionName);
 | 
			
		||||
            directory = Path.Combine(_TracePath, _EquipmentType, "Target", weekDirectory, _CellInstanceName, _CellInstanceConnectionName);
 | 
			
		||||
        else
 | 
			
		||||
            directory = Path.Combine(_TracePath, _EquipmentType, "Source", _CellInstanceName, _CellInstanceConnectionName);
 | 
			
		||||
            directory = Path.Combine(_TracePath, _EquipmentType, "Source", weekDirectory, _CellInstanceName, _CellInstanceConnectionName);
 | 
			
		||||
        if (!Directory.Exists(directory))
 | 
			
		||||
            _ = Directory.CreateDirectory(directory);
 | 
			
		||||
        string file = Path.Combine(directory, string.Concat(_Logistics.MesEntity, "_", _Logistics.Sequence, ".ipdsf"));
 | 
			
		||||
@ -454,6 +462,7 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
    protected void TriggerEvents(Tuple<string, Test[], JsonElement[], List<FileInfo>> extractResults, List<string> headerNames, Dictionary<string, string> keyValuePairs)
 | 
			
		||||
    {
 | 
			
		||||
        object value;
 | 
			
		||||
        string segments;
 | 
			
		||||
        string description;
 | 
			
		||||
        List<object[]> list;
 | 
			
		||||
        for (int i = 0; i < extractResults.Item3.Length; i++)
 | 
			
		||||
@ -461,10 +470,10 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
            _Log.Debug(string.Concat("TriggerEvent - {", _Logistics.ReportFullPath, "} ", i, " of ", extractResults.Item3.Length));
 | 
			
		||||
            foreach (JsonProperty jsonProperty in extractResults.Item3[i].EnumerateObject())
 | 
			
		||||
            {
 | 
			
		||||
                if (jsonProperty.Value.ValueKind != JsonValueKind.String || !keyValuePairs.ContainsKey(jsonProperty.Name))
 | 
			
		||||
                if (jsonProperty.Value.ValueKind != JsonValueKind.String || !keyValuePairs.TryGetValue(jsonProperty.Name, out segments))
 | 
			
		||||
                    description = string.Empty;
 | 
			
		||||
                else
 | 
			
		||||
                    description = keyValuePairs[jsonProperty.Name].Split('|')[0];
 | 
			
		||||
                    description = segments.Split('|')[0];
 | 
			
		||||
                if (!_UseCyclicalForDescription || headerNames.Contains(jsonProperty.Name))
 | 
			
		||||
                    value = jsonProperty.Value.ToString();
 | 
			
		||||
                else
 | 
			
		||||
@ -480,6 +489,43 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected static void NestExistingFiles(FileConnectorConfiguration fileConnectorConfiguration)
 | 
			
		||||
    {
 | 
			
		||||
        if (!fileConnectorConfiguration.IncludeSubDirectories.Value)
 | 
			
		||||
        {
 | 
			
		||||
            string[] matches = GetMatches(fileConnectorConfiguration);
 | 
			
		||||
            if (matches is not null && matches.Length > 0)
 | 
			
		||||
            {
 | 
			
		||||
                string fileName;
 | 
			
		||||
                string nestedDirectory = Path.Combine(fileConnectorConfiguration.SourceFileLocation, DateTime.Now.Ticks.ToString());
 | 
			
		||||
                if (!Directory.Exists(nestedDirectory))
 | 
			
		||||
                    _ = Directory.CreateDirectory(nestedDirectory);
 | 
			
		||||
                foreach (string match in matches)
 | 
			
		||||
                {
 | 
			
		||||
                    fileName = Path.GetFileName(match);
 | 
			
		||||
                    File.Move(match, Path.Combine(nestedDirectory, fileName));
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected static string[] GetMatches(FileConnectorConfiguration fileConnectorConfiguration)
 | 
			
		||||
    {
 | 
			
		||||
        string[] segments;
 | 
			
		||||
        string[] results = null;
 | 
			
		||||
        foreach (string subSourceFileFilter in fileConnectorConfiguration.SourceFileFilters)
 | 
			
		||||
        {
 | 
			
		||||
            segments = subSourceFileFilter.Split('\\');
 | 
			
		||||
            if (fileConnectorConfiguration.IncludeSubDirectories.Value)
 | 
			
		||||
                results = Directory.GetFiles(fileConnectorConfiguration.SourceFileLocation, segments.Last(), SearchOption.AllDirectories);
 | 
			
		||||
            else
 | 
			
		||||
                results = Directory.GetFiles(fileConnectorConfiguration.SourceFileLocation, segments.Last(), SearchOption.TopDirectoryOnly);
 | 
			
		||||
            if (results.Length != 0)
 | 
			
		||||
                break;
 | 
			
		||||
        }
 | 
			
		||||
        return results;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected Tuple<string, Test[], JsonElement[], List<FileInfo>> ReExtract(IFileRead fileRead, List<string> headerNames, Dictionary<string, string> keyValuePairs)
 | 
			
		||||
    {
 | 
			
		||||
        Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
 | 
			
		||||
@ -487,19 +533,8 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
            results = null;
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            string[] segments;
 | 
			
		||||
            string[] matches = null;
 | 
			
		||||
            foreach (string subSourceFileFilter in _FileConnectorConfiguration.SourceFileFilters)
 | 
			
		||||
            {
 | 
			
		||||
                segments = subSourceFileFilter.Split('\\');
 | 
			
		||||
                if (_FileConnectorConfiguration.IncludeSubDirectories.Value)
 | 
			
		||||
                    matches = Directory.GetFiles(_FileConnectorConfiguration.SourceFileLocation, segments.Last(), SearchOption.AllDirectories);
 | 
			
		||||
                else
 | 
			
		||||
                    matches = Directory.GetFiles(_FileConnectorConfiguration.SourceFileLocation, segments.Last(), SearchOption.TopDirectoryOnly);
 | 
			
		||||
                if (matches.Any())
 | 
			
		||||
                    break;
 | 
			
		||||
            }
 | 
			
		||||
            if (matches is null || !matches.Any())
 | 
			
		||||
            string[] matches = GetMatches(_FileConnectorConfiguration);
 | 
			
		||||
            if (matches is null || matches.Length == 0)
 | 
			
		||||
                results = null;
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
@ -562,16 +597,99 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    internal static List<string> GetDirectoryNames(string directory)
 | 
			
		||||
    {
 | 
			
		||||
#nullable enable
 | 
			
		||||
        List<string> results = new();
 | 
			
		||||
        string? fileName;
 | 
			
		||||
        string? checkDirectory = directory;
 | 
			
		||||
        string? pathRoot = Path.GetPathRoot(directory);
 | 
			
		||||
        string extension = Path.GetExtension(directory);
 | 
			
		||||
        if (string.IsNullOrEmpty(pathRoot))
 | 
			
		||||
            throw new NullReferenceException(nameof(pathRoot));
 | 
			
		||||
        if (Directory.Exists(directory))
 | 
			
		||||
        {
 | 
			
		||||
            fileName = Path.GetFileName(directory);
 | 
			
		||||
            if (!string.IsNullOrEmpty(fileName))
 | 
			
		||||
                results.Add(fileName);
 | 
			
		||||
        }
 | 
			
		||||
        else if ((string.IsNullOrEmpty(extension) || extension.Length > 3) && !File.Exists(directory))
 | 
			
		||||
        {
 | 
			
		||||
            fileName = Path.GetFileName(directory);
 | 
			
		||||
            if (!string.IsNullOrEmpty(fileName))
 | 
			
		||||
                results.Add(fileName);
 | 
			
		||||
        }
 | 
			
		||||
        for (int i = 0; i < int.MaxValue; i++)
 | 
			
		||||
        {
 | 
			
		||||
            checkDirectory = Path.GetDirectoryName(checkDirectory);
 | 
			
		||||
            if (string.IsNullOrEmpty(checkDirectory) || checkDirectory == pathRoot)
 | 
			
		||||
                break;
 | 
			
		||||
            fileName = Path.GetFileName(checkDirectory);
 | 
			
		||||
            if (string.IsNullOrEmpty(fileName))
 | 
			
		||||
                continue;
 | 
			
		||||
            results.Add(fileName);
 | 
			
		||||
        }
 | 
			
		||||
        results.Add(pathRoot);
 | 
			
		||||
        results.Reverse();
 | 
			
		||||
        return results;
 | 
			
		||||
#nullable disable
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private string GetJobIdDirectory(string path)
 | 
			
		||||
    {
 | 
			
		||||
        string result;
 | 
			
		||||
        List<string> directoryNames = GetDirectoryNames(path);
 | 
			
		||||
        if (!directoryNames.Contains(_Logistics.JobID))
 | 
			
		||||
            result = Path.GetDirectoryName(path);
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            result = string.Empty;
 | 
			
		||||
            foreach (string directoryName in directoryNames)
 | 
			
		||||
            {
 | 
			
		||||
                result = Path.Combine(result, directoryName);
 | 
			
		||||
                if (directoryName == _Logistics.JobID)
 | 
			
		||||
                    break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static void DeleteEmptyTopDirectories(string rootDirectory)
 | 
			
		||||
    {
 | 
			
		||||
        if (Directory.Exists(rootDirectory))
 | 
			
		||||
        {
 | 
			
		||||
            string[] files;
 | 
			
		||||
            string[] directories;
 | 
			
		||||
            string[] subDirectories = Directory.GetDirectories(rootDirectory, "*", SearchOption.TopDirectoryOnly);
 | 
			
		||||
            foreach (string subDirectory in subDirectories)
 | 
			
		||||
            {
 | 
			
		||||
                files = Directory.GetFiles(subDirectory, "*", SearchOption.AllDirectories);
 | 
			
		||||
                if (files.Length > 0)
 | 
			
		||||
                    continue;
 | 
			
		||||
                directories = Directory.GetDirectories(subDirectory, "*", SearchOption.TopDirectoryOnly);
 | 
			
		||||
                if (directories.Length > 0)
 | 
			
		||||
                    continue;
 | 
			
		||||
                try
 | 
			
		||||
                { Directory.Delete(subDirectory); }
 | 
			
		||||
                catch (UnauthorizedAccessException)
 | 
			
		||||
                {
 | 
			
		||||
                    new DirectoryInfo(subDirectory).Attributes = FileAttributes.Normal;
 | 
			
		||||
                    Directory.Delete(subDirectory);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void Shared1811(string to, FileInfo sourceFile)
 | 
			
		||||
    {
 | 
			
		||||
        if (!_IsDuplicator && _FileConnectorConfiguration.SourceFileFilter != "*" && sourceFile.Exists && sourceFile.Length < _MinFileLength)
 | 
			
		||||
        {
 | 
			
		||||
            string directoryName = Path.GetFileName(to);
 | 
			
		||||
            string jobIdDirectory = Path.GetDirectoryName(to);
 | 
			
		||||
            string jobIdDirectory = GetJobIdDirectory(to);
 | 
			
		||||
            DateTime dateTime = DateTime.Now.AddMinutes(-15);
 | 
			
		||||
            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 destinationDirectory = string.Concat(jobIdDirectory, @"\_ Ignore 100 bytes\", weekDirectory, @"\", directoryName);
 | 
			
		||||
            string destinationDirectory = Path.Combine(jobIdDirectory, "_ Ignore 100 bytes", weekDirectory, directoryName);
 | 
			
		||||
            if (!Directory.Exists(destinationDirectory))
 | 
			
		||||
                _ = Directory.CreateDirectory(destinationDirectory);
 | 
			
		||||
            File.Move(sourceFile.FullName, string.Concat(destinationDirectory, @"\", sourceFile.Name));
 | 
			
		||||
@ -582,13 +700,13 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
                {
 | 
			
		||||
                    if (!checkDirectory.Contains('_'))
 | 
			
		||||
                        continue;
 | 
			
		||||
                    if (Directory.GetDirectories(checkDirectory, "*", SearchOption.TopDirectoryOnly).Any())
 | 
			
		||||
                    if (Directory.GetDirectories(checkDirectory, "*", SearchOption.TopDirectoryOnly).Length != 0)
 | 
			
		||||
                        continue;
 | 
			
		||||
                    if (Directory.GetFiles(checkDirectory, "*", SearchOption.TopDirectoryOnly).Any())
 | 
			
		||||
                    if (Directory.GetFiles(checkDirectory, "*", SearchOption.TopDirectoryOnly).Length != 0)
 | 
			
		||||
                        continue;
 | 
			
		||||
                    if (Directory.GetDirectories(checkDirectory, "*", SearchOption.AllDirectories).Any())
 | 
			
		||||
                    if (Directory.GetDirectories(checkDirectory, "*", SearchOption.AllDirectories).Length != 0)
 | 
			
		||||
                        continue;
 | 
			
		||||
                    if (Directory.GetFiles(checkDirectory, "*", SearchOption.AllDirectories).Any())
 | 
			
		||||
                    if (Directory.GetFiles(checkDirectory, "*", SearchOption.AllDirectories).Length != 0)
 | 
			
		||||
                        continue;
 | 
			
		||||
                    if (new DirectoryInfo(checkDirectory).CreationTime > dateTime)
 | 
			
		||||
                        continue;
 | 
			
		||||
@ -596,6 +714,7 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception) { throw; }
 | 
			
		||||
            DeleteEmptyTopDirectories(jobIdDirectory);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -605,7 +724,7 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
        {
 | 
			
		||||
            foreach (string directory in (from l in directories orderby l.Split('\\').Length descending select l).Distinct())
 | 
			
		||||
            {
 | 
			
		||||
                if (Directory.Exists(directory) && !Directory.GetFiles(directory).Any())
 | 
			
		||||
                if (Directory.Exists(directory) && Directory.GetFiles(directory).Length == 0)
 | 
			
		||||
                    Directory.Delete(directory);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -91,7 +91,7 @@ public class Logistics : ILogistics
 | 
			
		||||
        string[] segments;
 | 
			
		||||
        _FileInfo = new(reportFullPath);
 | 
			
		||||
        _Logistics1 = logistics.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList();
 | 
			
		||||
        if (!Logistics1.Any() || !Logistics1[0].StartsWith("LOGISTICS_1"))
 | 
			
		||||
        if (Logistics1.Count == 0 || !Logistics1[0].StartsWith("LOGISTICS_1"))
 | 
			
		||||
        {
 | 
			
		||||
            _NullData = null;
 | 
			
		||||
            _JobID = "null";
 | 
			
		||||
 | 
			
		||||
@ -2,18 +2,27 @@
 | 
			
		||||
 | 
			
		||||
public partial class WS
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    public class Attachment
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
        public string SubGroupId { get; set; }
 | 
			
		||||
        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 uniqueId, string destinationFileName, string sourceFileName)
 | 
			
		||||
        public Attachment(string subGroupId, long headerId, string headerIdDirectory, string uniqueId, string destinationFileName, string sourceFileName)
 | 
			
		||||
        {
 | 
			
		||||
            SubGroupId = subGroupId;
 | 
			
		||||
            HeaderId = headerId;
 | 
			
		||||
            HeaderIdDirectory = headerIdDirectory;
 | 
			
		||||
            UniqueId = uniqueId;
 | 
			
		||||
            DestinationFileName = destinationFileName;
 | 
			
		||||
            SourceFileName = sourceFileName;
 | 
			
		||||
            AttachmentId = System.Guid.NewGuid().ToString();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -10,7 +10,7 @@ namespace Adaptation.Shared.Metrology;
 | 
			
		||||
public partial class WS
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    public static (string, Results) SendData(string url, object payload, int timeoutSeconds = 120)
 | 
			
		||||
    public static (string, Results) SendData(string url, long sequence, string directory, object payload, int timeoutSeconds = 120)
 | 
			
		||||
    {
 | 
			
		||||
        Results results = new();
 | 
			
		||||
        string resultsJson = string.Empty;
 | 
			
		||||
@ -31,6 +31,10 @@ public partial class WS
 | 
			
		||||
                HttpResponseMessage httpResponseMessage = httpClient.SendAsync(httpRequestMessage, HttpCompletionOption.ResponseContentRead).Result;
 | 
			
		||||
                resultsJson = httpResponseMessage.Content.ReadAsStringAsync().Result;
 | 
			
		||||
                results = JsonSerializer.Deserialize<Results>(resultsJson, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
 | 
			
		||||
                string checkDirectory = Path.Combine(directory, $"-{results.HeaderID}");
 | 
			
		||||
                if (!Directory.Exists(checkDirectory))
 | 
			
		||||
                    _ = Directory.CreateDirectory(checkDirectory);
 | 
			
		||||
                File.WriteAllText(Path.Combine(checkDirectory, $"{sequence}.json"), json);
 | 
			
		||||
            }
 | 
			
		||||
            if (!results.Success)
 | 
			
		||||
                results.Errors.Add(results.ToString());
 | 
			
		||||
@ -51,58 +55,54 @@ public partial class WS
 | 
			
		||||
        return new(resultsJson, results);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // this method is a wrapper for attaching a file to either a header or data record
 | 
			
		||||
    //   URL is the same URL used for SendData, ex: http://localhost/api/inbound/CDE
 | 
			
		||||
    //   attachToHeaderId is the ID returned by SendData 
 | 
			
		||||
    //   attachToDataUniqueId is the string unique ID for the data record, aka the Title of the Sharepoint list entry
 | 
			
		||||
    //   fileContents is a byte array with the contents of the file
 | 
			
		||||
    //   fileName is which attachment this is, image.pdf, data.pdf, data.txt, header.pdf, etc
 | 
			
		||||
    //   timeoutSeconds is configured as the request timeout
 | 
			
		||||
    // this method will either succeed or throw an exception
 | 
			
		||||
    // also, this has been made synchronous
 | 
			
		||||
    public static void AttachFile(string url, long attachToHeaderId, string attachToDataUniqueId, byte[] fileContents, string fileName, int timeoutSeconds = 60)
 | 
			
		||||
    public static void AttachFile(string url, Attachment attachment, int timeoutSeconds = 60)
 | 
			
		||||
    {
 | 
			
		||||
        using HttpClient httpClient = new();
 | 
			
		||||
        string requestUrl = url + "/attachment?headerid=" + attachToHeaderId.ToString();
 | 
			
		||||
        if (!string.IsNullOrWhiteSpace(attachToDataUniqueId))
 | 
			
		||||
        {
 | 
			
		||||
            requestUrl += "&datauniqueid=";
 | 
			
		||||
            requestUrl += System.Net.WebUtility.UrlEncode(attachToDataUniqueId);
 | 
			
		||||
        }
 | 
			
		||||
        requestUrl += "&filename="; // this is just so the web server log shows the filename
 | 
			
		||||
        requestUrl += System.Net.WebUtility.UrlEncode(fileName);
 | 
			
		||||
 | 
			
		||||
        string json = JsonSerializer.Serialize(attachment);
 | 
			
		||||
        httpClient.Timeout = new TimeSpan(0, 0, 0, timeoutSeconds, 0);
 | 
			
		||||
 | 
			
		||||
        MultipartFormDataContent multipartFormDataContent = new();
 | 
			
		||||
        ByteArrayContent byteArrayContent = new(fileContents);
 | 
			
		||||
        byteArrayContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream");
 | 
			
		||||
 | 
			
		||||
        multipartFormDataContent.Add(byteArrayContent, "attachment", fileName);
 | 
			
		||||
 | 
			
		||||
        HttpResponseMessage httpResponseMessage = httpClient.PostAsync(requestUrl, multipartFormDataContent).Result;
 | 
			
		||||
 | 
			
		||||
        if (httpResponseMessage.IsSuccessStatusCode)
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        StringContent httpContent = new(json, Encoding.UTF8, "application/json");
 | 
			
		||||
        HttpResponseMessage httpResponseMessage = httpClient.PostAsync($"{url}/attachment", httpContent).Result;
 | 
			
		||||
        if (!httpResponseMessage.IsSuccessStatusCode)
 | 
			
		||||
        {
 | 
			
		||||
            string resultBody = httpResponseMessage.Content.ReadAsStringAsync().Result;
 | 
			
		||||
 | 
			
		||||
        throw new Exception("Attachment failed: " + resultBody);
 | 
			
		||||
            throw new Exception($"Attachment failed: {resultBody}");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static void AttachFiles(string url, long headerID, List<Attachment> headerAttachments = null, List<Attachment> dataAttachments = null)
 | 
			
		||||
    public static void AttachFiles(string url, List<Attachment> headerAttachments = null, List<Attachment> dataAttachments = null)
 | 
			
		||||
    {
 | 
			
		||||
        string directory;
 | 
			
		||||
        try
 | 
			
		||||
        {
 | 
			
		||||
            if (headerAttachments is not null)
 | 
			
		||||
            {
 | 
			
		||||
                foreach (Attachment attachment in headerAttachments)
 | 
			
		||||
                    AttachFile(url, headerID, "", File.ReadAllBytes(attachment.SourceFileName), attachment.DestinationFileName);
 | 
			
		||||
                {
 | 
			
		||||
                    directory = Path.Combine(Path.GetDirectoryName(attachment.HeaderIdDirectory), attachment.AttachmentId) ?? throw new Exception();
 | 
			
		||||
                    if (!Directory.Exists(directory))
 | 
			
		||||
                        _ = Directory.CreateDirectory(directory);
 | 
			
		||||
                    File.Copy(attachment.SourceFileName, Path.Combine(directory, attachment.DestinationFileName), overwrite: true);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            if (dataAttachments is not null)
 | 
			
		||||
            {
 | 
			
		||||
                foreach (Attachment attachment in dataAttachments)
 | 
			
		||||
                    AttachFile(url, headerID, attachment.UniqueId, File.ReadAllBytes(attachment.SourceFileName), attachment.DestinationFileName);
 | 
			
		||||
                {
 | 
			
		||||
                    directory = Path.Combine(Path.GetDirectoryName(attachment.HeaderIdDirectory.Replace("Header", "Data")), attachment.AttachmentId) ?? throw new Exception();
 | 
			
		||||
                    if (!Directory.Exists(directory))
 | 
			
		||||
                        _ = Directory.CreateDirectory(directory);
 | 
			
		||||
                    File.Copy(attachment.SourceFileName, Path.Combine(directory, attachment.DestinationFileName), overwrite: true);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            if (headerAttachments is not null)
 | 
			
		||||
            {
 | 
			
		||||
                foreach (Attachment attachment in headerAttachments)
 | 
			
		||||
                    AttachFile(url, attachment);
 | 
			
		||||
            }
 | 
			
		||||
            if (dataAttachments is not null)
 | 
			
		||||
            {
 | 
			
		||||
                foreach (Attachment attachment in dataAttachments)
 | 
			
		||||
                    AttachFile(url, attachment);
 | 
			
		||||
            }
 | 
			
		||||
            //MessageBox.Show(r.ToString());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -23,7 +23,7 @@ public class ProcessDataStandardFormat
 | 
			
		||||
    public static string GetPDSFText(IFileRead fileRead, Logistics logistics, JsonElement[] jsonElements, string logisticsText)
 | 
			
		||||
    {
 | 
			
		||||
        string result;
 | 
			
		||||
        if (!jsonElements.Any())
 | 
			
		||||
        if (jsonElements.Length == 0)
 | 
			
		||||
            result = string.Empty;
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
@ -146,15 +146,17 @@ public class ProcessDataStandardFormat
 | 
			
		||||
        string logistics = pdsf.Item1;
 | 
			
		||||
        string[] columns = pdsf.Item2;
 | 
			
		||||
        string[] bodyLines = pdsf.Item3;
 | 
			
		||||
        if (!bodyLines.Any() || !bodyLines[0].Contains('\t'))
 | 
			
		||||
        if (bodyLines.Length == 0 || !bodyLines[0].Contains('\t'))
 | 
			
		||||
            results = JsonSerializer.Deserialize<JsonElement[]>("[]");
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            string value;
 | 
			
		||||
            string[] segments;
 | 
			
		||||
            List<string> lines = new();
 | 
			
		||||
            StringBuilder stringBuilder = new();
 | 
			
		||||
            foreach (string bodyLine in bodyLines)
 | 
			
		||||
            {
 | 
			
		||||
                _ = stringBuilder.Clear();
 | 
			
		||||
                _ = stringBuilder.Append('{');
 | 
			
		||||
                segments = bodyLine.Trim().Split('\t');
 | 
			
		||||
                if (!lookForNumbers)
 | 
			
		||||
@ -179,10 +181,11 @@ public class ProcessDataStandardFormat
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                _ = stringBuilder.Remove(stringBuilder.Length - 1, 1);
 | 
			
		||||
                _ = stringBuilder.AppendLine("},");
 | 
			
		||||
                _ = stringBuilder.AppendLine("}");
 | 
			
		||||
                lines.Add(stringBuilder.ToString());
 | 
			
		||||
            }
 | 
			
		||||
            _ = stringBuilder.Remove(stringBuilder.Length - 3, 3);
 | 
			
		||||
            results = JsonSerializer.Deserialize<JsonElement[]>(string.Concat("[", stringBuilder, "]"));
 | 
			
		||||
            string json = $"[{string.Join(",", lines)}]";
 | 
			
		||||
            results = JsonSerializer.Deserialize<JsonElement[]>(json);
 | 
			
		||||
        }
 | 
			
		||||
        return results;
 | 
			
		||||
    }
 | 
			
		||||
@ -211,9 +214,10 @@ public class ProcessDataStandardFormat
 | 
			
		||||
    public static Tuple<string, Dictionary<Test, Dictionary<string, List<string>>>> GetTestDictionary(Tuple<string, string[], string[]> pdsf)
 | 
			
		||||
    {
 | 
			
		||||
        Dictionary<Test, Dictionary<string, List<string>>> results = new();
 | 
			
		||||
        List<string> collection;
 | 
			
		||||
        string testColumn = nameof(Test);
 | 
			
		||||
        Dictionary<string, List<string>> keyValuePairs = GetDictionary(pdsf);
 | 
			
		||||
        if (!keyValuePairs.ContainsKey(testColumn))
 | 
			
		||||
        if (!keyValuePairs.TryGetValue(testColumn, out collection))
 | 
			
		||||
            throw new Exception();
 | 
			
		||||
        int min;
 | 
			
		||||
        int max;
 | 
			
		||||
@ -221,9 +225,9 @@ public class ProcessDataStandardFormat
 | 
			
		||||
        List<string> vs;
 | 
			
		||||
        string columnKey;
 | 
			
		||||
        Dictionary<Test, List<int>> tests = new();
 | 
			
		||||
        for (int i = 0; i < keyValuePairs[testColumn].Count; i++)
 | 
			
		||||
        for (int i = 0; i < collection.Count; i++)
 | 
			
		||||
        {
 | 
			
		||||
            if (Enum.TryParse(keyValuePairs[testColumn][i], out Test test))
 | 
			
		||||
            if (Enum.TryParse(collection[i], out Test test))
 | 
			
		||||
            {
 | 
			
		||||
                if (!results.ContainsKey(test))
 | 
			
		||||
                {
 | 
			
		||||
@ -325,7 +329,7 @@ public class ProcessDataStandardFormat
 | 
			
		||||
                    _ = line.Append(';');
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            if (!pairedParameterNames.Any())
 | 
			
		||||
            if (pairedParameterNames.Count == 0)
 | 
			
		||||
            {
 | 
			
		||||
                _ = line.Remove(line.Length - 1, 1);
 | 
			
		||||
                _ = result.AppendLine(line.ToString());
 | 
			
		||||
 | 
			
		||||
@ -14,6 +14,7 @@ public enum Test
 | 
			
		||||
    CandelaPSL = 38,
 | 
			
		||||
    CandelaVerify = 37,
 | 
			
		||||
    CDE = 24,
 | 
			
		||||
    Climatec = 54, //Largest
 | 
			
		||||
    CV = 3,
 | 
			
		||||
    DailyRPMAverage = 19,
 | 
			
		||||
    DailyRPMPLRatio = 20,
 | 
			
		||||
@ -21,7 +22,7 @@ public enum Test
 | 
			
		||||
    Denton = 9,
 | 
			
		||||
    DiffusionLength = 45,
 | 
			
		||||
    GRATXTCenter = 51,
 | 
			
		||||
    GRATXTEdge = 52, //Largest
 | 
			
		||||
    GRATXTEdge = 52,
 | 
			
		||||
    GrowthRateXML = 50,
 | 
			
		||||
    Hall = 10,
 | 
			
		||||
    HgCV = 23,
 | 
			
		||||
@ -38,6 +39,7 @@ public enum Test
 | 
			
		||||
    RPMPLRatio = 17,
 | 
			
		||||
    RPMXY = 15,
 | 
			
		||||
    SP1 = 8,
 | 
			
		||||
    SRP2100 = 53,
 | 
			
		||||
    Tencor = 7,
 | 
			
		||||
    UV = 35,
 | 
			
		||||
    VerificationLehighton = 14,
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,182 @@
 | 
			
		||||
#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_59_0;
 | 
			
		||||
 | 
			
		||||
[TestClass]
 | 
			
		||||
public class MET08ANLYSDIFAAST230 : EAFLoggingUnitTesting
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
#pragma warning disable CA2254
 | 
			
		||||
#pragma warning disable IDE0060
 | 
			
		||||
 | 
			
		||||
    internal static string DummyRoot { get; private set; }
 | 
			
		||||
    internal static MET08ANLYSDIFAAST230 EAFLoggingUnitTesting { get; private set; }
 | 
			
		||||
 | 
			
		||||
    static MET08ANLYSDIFAAST230() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy";
 | 
			
		||||
 | 
			
		||||
    public MET08ANLYSDIFAAST230() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
 | 
			
		||||
    {
 | 
			
		||||
        if (EAFLoggingUnitTesting is null)
 | 
			
		||||
            throw new Exception();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public MET08ANLYSDIFAAST230(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [ClassInitialize]
 | 
			
		||||
    public static void ClassInitialize(TestContext testContext)
 | 
			
		||||
    {
 | 
			
		||||
        EAFLoggingUnitTesting ??= new MET08ANLYSDIFAAST230(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__MET08ANLYSDIFAAST230__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__MET08ANLYSDIFAAST230__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__MET08ANLYSDIFAAST230__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__MET08ANLYSDIFAAST230__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__MET08ANLYSDIFAAST230__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__MET08ANLYSDIFAAST230__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__MET08ANLYSDIFAAST230__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__MET08ANLYSDIFAAST230__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__MET08ANLYSDIFAAST230__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__MET08ANLYSDIFAAST230__Dummy()
 | 
			
		||||
    {
 | 
			
		||||
        string check = "637400762024374000.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"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
@ -1,3 +1,4 @@
 | 
			
		||||
#if v2_43_0
 | 
			
		||||
using Adaptation._Tests.Shared;
 | 
			
		||||
using Microsoft.Extensions.Logging;
 | 
			
		||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
 | 
			
		||||
@ -45,7 +46,7 @@ public class MET08ANLYSDIFAAST230 : EAFLoggingUnitTesting
 | 
			
		||||
        EAFLoggingUnitTesting?.Dispose();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if true
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
@ -58,7 +59,7 @@ public class MET08ANLYSDIFAAST230 : EAFLoggingUnitTesting
 | 
			
		||||
        EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if true
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
@ -71,7 +72,7 @@ public class MET08ANLYSDIFAAST230 : EAFLoggingUnitTesting
 | 
			
		||||
        EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if true
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
@ -84,7 +85,7 @@ public class MET08ANLYSDIFAAST230 : EAFLoggingUnitTesting
 | 
			
		||||
        EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if true
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
@ -97,7 +98,7 @@ public class MET08ANLYSDIFAAST230 : EAFLoggingUnitTesting
 | 
			
		||||
        EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if true
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
@ -110,7 +111,7 @@ public class MET08ANLYSDIFAAST230 : EAFLoggingUnitTesting
 | 
			
		||||
        EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if true
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
@ -123,7 +124,7 @@ public class MET08ANLYSDIFAAST230 : EAFLoggingUnitTesting
 | 
			
		||||
        EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if true
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
@ -136,7 +137,7 @@ public class MET08ANLYSDIFAAST230 : EAFLoggingUnitTesting
 | 
			
		||||
        EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if true
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
@ -149,7 +150,7 @@ public class MET08ANLYSDIFAAST230 : EAFLoggingUnitTesting
 | 
			
		||||
        EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if true
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
@ -162,7 +163,7 @@ public class MET08ANLYSDIFAAST230 : EAFLoggingUnitTesting
 | 
			
		||||
        EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if true
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
@ -176,3 +177,4 @@ public class MET08ANLYSDIFAAST230 : EAFLoggingUnitTesting
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
@ -1,3 +1,4 @@
 | 
			
		||||
#if v2_47_5
 | 
			
		||||
using Adaptation._Tests.Shared;
 | 
			
		||||
using Microsoft.Extensions.Logging;
 | 
			
		||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
 | 
			
		||||
@ -18,7 +19,7 @@ public class MET08ANLYSDIFAAST230 : EAFLoggingUnitTesting
 | 
			
		||||
    internal static string DummyRoot { get; private set; }
 | 
			
		||||
    internal static MET08ANLYSDIFAAST230 EAFLoggingUnitTesting { get; private set; }
 | 
			
		||||
 | 
			
		||||
    static MET08ANLYSDIFAAST230() => DummyRoot = @"\\messv02ecc1.ec.local\EC_Characterization_Si\Dummy";
 | 
			
		||||
    static MET08ANLYSDIFAAST230() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy";
 | 
			
		||||
 | 
			
		||||
    public MET08ANLYSDIFAAST230() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
 | 
			
		||||
    {
 | 
			
		||||
@ -178,3 +179,4 @@ public class MET08ANLYSDIFAAST230 : EAFLoggingUnitTesting
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
@ -0,0 +1,162 @@
 | 
			
		||||
#if v2_56_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.Staging.v2_56_0;
 | 
			
		||||
 | 
			
		||||
[TestClass]
 | 
			
		||||
public class MET08ANLYSDIFAAST230 : EAFLoggingUnitTesting
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
#pragma warning disable CA2254
 | 
			
		||||
#pragma warning disable IDE0060
 | 
			
		||||
 | 
			
		||||
    internal static string DummyRoot { get; private set; }
 | 
			
		||||
    internal static MET08ANLYSDIFAAST230 EAFLoggingUnitTesting { get; private set; }
 | 
			
		||||
 | 
			
		||||
    static MET08ANLYSDIFAAST230() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy";
 | 
			
		||||
 | 
			
		||||
    public MET08ANLYSDIFAAST230() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
 | 
			
		||||
    {
 | 
			
		||||
        if (EAFLoggingUnitTesting is null)
 | 
			
		||||
            throw new Exception();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public MET08ANLYSDIFAAST230(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [ClassInitialize]
 | 
			
		||||
    public static void ClassInitialize(TestContext testContext)
 | 
			
		||||
    {
 | 
			
		||||
        EAFLoggingUnitTesting ??= new MET08ANLYSDIFAAST230(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();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [Ignore]
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_56_0__MET08ANLYSDIFAAST230__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"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [Ignore]
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_56_0__MET08ANLYSDIFAAST230__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"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [Ignore]
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_56_0__MET08ANLYSDIFAAST230__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"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [Ignore]
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_56_0__MET08ANLYSDIFAAST230__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"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [Ignore]
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_56_0__MET08ANLYSDIFAAST230__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"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [Ignore]
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_56_0__MET08ANLYSDIFAAST230__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"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [Ignore]
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_56_0__MET08ANLYSDIFAAST230__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"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [Ignore]
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_56_0__MET08ANLYSDIFAAST230__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"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [Ignore]
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_56_0__MET08ANLYSDIFAAST230__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"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [Ignore]
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_56_0__MET08ANLYSDIFAAST230__Dummy()
 | 
			
		||||
    {
 | 
			
		||||
        string check = "637400762024374000.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"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
@ -0,0 +1,182 @@
 | 
			
		||||
#if v2_57_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.Staging.v2_57_0;
 | 
			
		||||
 | 
			
		||||
[TestClass]
 | 
			
		||||
public class MET08ANLYSDIFAAST230 : EAFLoggingUnitTesting
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
#pragma warning disable CA2254
 | 
			
		||||
#pragma warning disable IDE0060
 | 
			
		||||
 | 
			
		||||
    internal static string DummyRoot { get; private set; }
 | 
			
		||||
    internal static MET08ANLYSDIFAAST230 EAFLoggingUnitTesting { get; private set; }
 | 
			
		||||
 | 
			
		||||
    static MET08ANLYSDIFAAST230() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy";
 | 
			
		||||
 | 
			
		||||
    public MET08ANLYSDIFAAST230() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
 | 
			
		||||
    {
 | 
			
		||||
        if (EAFLoggingUnitTesting is null)
 | 
			
		||||
            throw new Exception();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public MET08ANLYSDIFAAST230(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [ClassInitialize]
 | 
			
		||||
    public static void ClassInitialize(TestContext testContext)
 | 
			
		||||
    {
 | 
			
		||||
        EAFLoggingUnitTesting ??= new MET08ANLYSDIFAAST230(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 Staging__v2_57_0__MET08ANLYSDIFAAST230__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 Staging__v2_57_0__MET08ANLYSDIFAAST230__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 Staging__v2_57_0__MET08ANLYSDIFAAST230__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 Staging__v2_57_0__MET08ANLYSDIFAAST230__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 Staging__v2_57_0__MET08ANLYSDIFAAST230__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 Staging__v2_57_0__MET08ANLYSDIFAAST230__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 Staging__v2_57_0__MET08ANLYSDIFAAST230__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 Staging__v2_57_0__MET08ANLYSDIFAAST230__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 Staging__v2_57_0__MET08ANLYSDIFAAST230__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 Staging__v2_57_0__MET08ANLYSDIFAAST230__Dummy()
 | 
			
		||||
    {
 | 
			
		||||
        string check = "637400762024374000.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"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
@ -0,0 +1,128 @@
 | 
			
		||||
#if true
 | 
			
		||||
using Adaptation._Tests.Shared;
 | 
			
		||||
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 MET08ANLYSDIFAAST230
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
#pragma warning disable CA2254
 | 
			
		||||
#pragma warning disable IDE0060
 | 
			
		||||
 | 
			
		||||
    private static CreateSelfDescription.Production.v2_59_0.MET08ANLYSDIFAAST230 _MET08ANLYSDIFAAST230;
 | 
			
		||||
 | 
			
		||||
    [ClassInitialize]
 | 
			
		||||
    public static void ClassInitialize(TestContext testContext)
 | 
			
		||||
    {
 | 
			
		||||
        CreateSelfDescription.Production.v2_59_0.MET08ANLYSDIFAAST230.ClassInitialize(testContext);
 | 
			
		||||
        _MET08ANLYSDIFAAST230 = CreateSelfDescription.Production.v2_59_0.MET08ANLYSDIFAAST230.EAFLoggingUnitTesting;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static void NonThrowTryCatch()
 | 
			
		||||
    {
 | 
			
		||||
        try
 | 
			
		||||
        { throw new Exception(); }
 | 
			
		||||
        catch (Exception) { }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Production__v2_59_0__MET08ANLYSDIFAAST230__MoveMatchingFiles() => _MET08ANLYSDIFAAST230.Production__v2_59_0__MET08ANLYSDIFAAST230__MoveMatchingFiles();
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Production__v2_59_0__MET08ANLYSDIFAAST230__OpenInsightMetrologyViewer() => _MET08ANLYSDIFAAST230.Production__v2_59_0__MET08ANLYSDIFAAST230__OpenInsightMetrologyViewer();
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Production__v2_59_0__MET08ANLYSDIFAAST230__IQSSi() => _MET08ANLYSDIFAAST230.Production__v2_59_0__MET08ANLYSDIFAAST230__IQSSi();
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Production__v2_59_0__MET08ANLYSDIFAAST230__OpenInsight() => _MET08ANLYSDIFAAST230.Production__v2_59_0__MET08ANLYSDIFAAST230__OpenInsight();
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Production__v2_59_0__MET08ANLYSDIFAAST230__OpenInsight638149072810290000__Normal()
 | 
			
		||||
    {
 | 
			
		||||
        string check = "*.pdsf";
 | 
			
		||||
        MethodBase methodBase = new StackFrame().GetMethod();
 | 
			
		||||
        _MET08ANLYSDIFAAST230.Production__v2_59_0__MET08ANLYSDIFAAST230__OpenInsight();
 | 
			
		||||
        string[] variables = _MET08ANLYSDIFAAST230.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false);
 | 
			
		||||
        IFileRead fileRead = _MET08ANLYSDIFAAST230.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
 | 
			
		||||
        Logistics logistics = new(fileRead);
 | 
			
		||||
        _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics);
 | 
			
		||||
        NonThrowTryCatch();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Production__v2_59_0__MET08ANLYSDIFAAST230__OpenInsightMetrologyViewerAttachments() => _MET08ANLYSDIFAAST230.Production__v2_59_0__MET08ANLYSDIFAAST230__OpenInsightMetrologyViewerAttachments();
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Production__v2_59_0__MET08ANLYSDIFAAST230__APC() => _MET08ANLYSDIFAAST230.Production__v2_59_0__MET08ANLYSDIFAAST230__APC();
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Production__v2_59_0__MET08ANLYSDIFAAST230__SPaCe() => _MET08ANLYSDIFAAST230.Production__v2_59_0__MET08ANLYSDIFAAST230__SPaCe();
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Production__v2_59_0__MET08ANLYSDIFAAST230__Processed() => _MET08ANLYSDIFAAST230.Production__v2_59_0__MET08ANLYSDIFAAST230__Processed();
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Production__v2_59_0__MET08ANLYSDIFAAST230__Archive() => _MET08ANLYSDIFAAST230.Production__v2_59_0__MET08ANLYSDIFAAST230__Archive();
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Production__v2_59_0__MET08ANLYSDIFAAST230__Archive638144101790470000__Normal()
 | 
			
		||||
    {
 | 
			
		||||
        string check = "*.pdsf";
 | 
			
		||||
        MethodBase methodBase = new StackFrame().GetMethod();
 | 
			
		||||
        _MET08ANLYSDIFAAST230.Production__v2_59_0__MET08ANLYSDIFAAST230__Archive();
 | 
			
		||||
        string[] variables = _MET08ANLYSDIFAAST230.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false);
 | 
			
		||||
        IFileRead fileRead = _MET08ANLYSDIFAAST230.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
 | 
			
		||||
        Logistics logistics = new(fileRead);
 | 
			
		||||
        _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics);
 | 
			
		||||
        NonThrowTryCatch();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Production__v2_59_0__MET08ANLYSDIFAAST230__Dummy() => _MET08ANLYSDIFAAST230.Production__v2_59_0__MET08ANLYSDIFAAST230__Dummy();
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
@ -1,3 +1,4 @@
 | 
			
		||||
#if v2_43_0
 | 
			
		||||
using Adaptation.Shared;
 | 
			
		||||
using Adaptation.Shared.Methods;
 | 
			
		||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
 | 
			
		||||
@ -22,13 +23,13 @@ public class MET08ANLYSDIFAAST230
 | 
			
		||||
        _MET08ANLYSDIFAAST230 = CreateSelfDescription.Staging.v2_43_0.MET08ANLYSDIFAAST230.EAFLoggingUnitTesting;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if true
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_43_0__MET08ANLYSDIFAAST230__MoveMatchingFiles() => _MET08ANLYSDIFAAST230.Staging__v2_43_0__MET08ANLYSDIFAAST230__MoveMatchingFiles();
 | 
			
		||||
 | 
			
		||||
#if true
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
@ -43,19 +44,19 @@ public class MET08ANLYSDIFAAST230
 | 
			
		||||
        _ = Shared.AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF: false);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if true
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_43_0__MET08ANLYSDIFAAST230__OpenInsightMetrologyViewer() => _MET08ANLYSDIFAAST230.Staging__v2_43_0__MET08ANLYSDIFAAST230__OpenInsightMetrologyViewer();
 | 
			
		||||
 | 
			
		||||
#if true
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_43_0__MET08ANLYSDIFAAST230__IQSSi() => _MET08ANLYSDIFAAST230.Staging__v2_43_0__MET08ANLYSDIFAAST230__IQSSi();
 | 
			
		||||
 | 
			
		||||
#if true
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
@ -70,46 +71,47 @@ public class MET08ANLYSDIFAAST230
 | 
			
		||||
        _ = Shared.AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF: false);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if true
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_43_0__MET08ANLYSDIFAAST230__OpenInsight() => _MET08ANLYSDIFAAST230.Staging__v2_43_0__MET08ANLYSDIFAAST230__OpenInsight();
 | 
			
		||||
 | 
			
		||||
#if true
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_43_0__MET08ANLYSDIFAAST230__OpenInsightMetrologyViewerAttachments() => _MET08ANLYSDIFAAST230.Staging__v2_43_0__MET08ANLYSDIFAAST230__OpenInsightMetrologyViewerAttachments();
 | 
			
		||||
 | 
			
		||||
#if true
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_43_0__MET08ANLYSDIFAAST230__APC() => _MET08ANLYSDIFAAST230.Staging__v2_43_0__MET08ANLYSDIFAAST230__APC();
 | 
			
		||||
 | 
			
		||||
#if true
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_43_0__MET08ANLYSDIFAAST230__SPaCe() => _MET08ANLYSDIFAAST230.Staging__v2_43_0__MET08ANLYSDIFAAST230__SPaCe();
 | 
			
		||||
 | 
			
		||||
#if true
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_43_0__MET08ANLYSDIFAAST230__Processed() => _MET08ANLYSDIFAAST230.Staging__v2_43_0__MET08ANLYSDIFAAST230__Processed();
 | 
			
		||||
 | 
			
		||||
#if true
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_43_0__MET08ANLYSDIFAAST230__Archive() => _MET08ANLYSDIFAAST230.Staging__v2_43_0__MET08ANLYSDIFAAST230__Archive();
 | 
			
		||||
 | 
			
		||||
#if true
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_43_0__MET08ANLYSDIFAAST230__Dummy() => _MET08ANLYSDIFAAST230.Staging__v2_43_0__MET08ANLYSDIFAAST230__Dummy();
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
@ -1,3 +1,4 @@
 | 
			
		||||
#if v2_47_5
 | 
			
		||||
using Adaptation._Tests.Shared;
 | 
			
		||||
using Adaptation.Shared;
 | 
			
		||||
using Adaptation.Shared.Methods;
 | 
			
		||||
@ -114,3 +115,4 @@ public class MET08ANLYSDIFAAST230
 | 
			
		||||
    public void Staging__v2_47_5__MET08ANLYSDIFAAST230__Dummy() => _MET08ANLYSDIFAAST230.Staging__v2_47_5__MET08ANLYSDIFAAST230__Dummy();
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
@ -0,0 +1,94 @@
 | 
			
		||||
#if v2_56_0
 | 
			
		||||
using Adaptation._Tests.Shared;
 | 
			
		||||
using Adaptation.Shared;
 | 
			
		||||
using Adaptation.Shared.Methods;
 | 
			
		||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
 | 
			
		||||
using System.Diagnostics;
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
 | 
			
		||||
namespace Adaptation._Tests.Extract.Staging.v2_56_0;
 | 
			
		||||
 | 
			
		||||
[TestClass]
 | 
			
		||||
public class MET08ANLYSDIFAAST230
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
#pragma warning disable CA2254
 | 
			
		||||
#pragma warning disable IDE0060
 | 
			
		||||
 | 
			
		||||
    private static CreateSelfDescription.Staging.v2_56_0.MET08ANLYSDIFAAST230 _MET08ANLYSDIFAAST230;
 | 
			
		||||
 | 
			
		||||
    [ClassInitialize]
 | 
			
		||||
    public static void ClassInitialize(TestContext testContext)
 | 
			
		||||
    {
 | 
			
		||||
        CreateSelfDescription.Staging.v2_56_0.MET08ANLYSDIFAAST230.ClassInitialize(testContext);
 | 
			
		||||
        _MET08ANLYSDIFAAST230 = CreateSelfDescription.Staging.v2_56_0.MET08ANLYSDIFAAST230.EAFLoggingUnitTesting;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [Ignore]
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_56_0__MET08ANLYSDIFAAST230__MoveMatchingFiles() => _MET08ANLYSDIFAAST230.Staging__v2_56_0__MET08ANLYSDIFAAST230__MoveMatchingFiles();
 | 
			
		||||
 | 
			
		||||
    [Ignore]
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_56_0__MET08ANLYSDIFAAST230__OpenInsightMetrologyViewer() => _MET08ANLYSDIFAAST230.Staging__v2_56_0__MET08ANLYSDIFAAST230__OpenInsightMetrologyViewer();
 | 
			
		||||
 | 
			
		||||
    [Ignore]
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_56_0__MET08ANLYSDIFAAST230__IQSSi() => _MET08ANLYSDIFAAST230.Staging__v2_56_0__MET08ANLYSDIFAAST230__IQSSi();
 | 
			
		||||
 | 
			
		||||
    [Ignore]
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_56_0__MET08ANLYSDIFAAST230__OpenInsight() => _MET08ANLYSDIFAAST230.Staging__v2_56_0__MET08ANLYSDIFAAST230__OpenInsight();
 | 
			
		||||
 | 
			
		||||
    [Ignore]
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_56_0__MET08ANLYSDIFAAST230__OpenInsight638149072810290000__Normal()
 | 
			
		||||
    {
 | 
			
		||||
        string check = "*.pdsf";
 | 
			
		||||
        MethodBase methodBase = new StackFrame().GetMethod();
 | 
			
		||||
        _MET08ANLYSDIFAAST230.Staging__v2_56_0__MET08ANLYSDIFAAST230__OpenInsight();
 | 
			
		||||
        string[] variables = _MET08ANLYSDIFAAST230.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false);
 | 
			
		||||
        IFileRead fileRead = _MET08ANLYSDIFAAST230.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
 | 
			
		||||
        Logistics logistics = new(fileRead);
 | 
			
		||||
        _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [Ignore]
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_56_0__MET08ANLYSDIFAAST230__OpenInsightMetrologyViewerAttachments() => _MET08ANLYSDIFAAST230.Staging__v2_56_0__MET08ANLYSDIFAAST230__OpenInsightMetrologyViewerAttachments();
 | 
			
		||||
 | 
			
		||||
    [Ignore]
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_56_0__MET08ANLYSDIFAAST230__APC() => _MET08ANLYSDIFAAST230.Staging__v2_56_0__MET08ANLYSDIFAAST230__APC();
 | 
			
		||||
 | 
			
		||||
    [Ignore]
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_56_0__MET08ANLYSDIFAAST230__SPaCe() => _MET08ANLYSDIFAAST230.Staging__v2_56_0__MET08ANLYSDIFAAST230__SPaCe();
 | 
			
		||||
 | 
			
		||||
    [Ignore]
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_56_0__MET08ANLYSDIFAAST230__Processed() => _MET08ANLYSDIFAAST230.Staging__v2_56_0__MET08ANLYSDIFAAST230__Processed();
 | 
			
		||||
 | 
			
		||||
    [Ignore]
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_56_0__MET08ANLYSDIFAAST230__Archive() => _MET08ANLYSDIFAAST230.Staging__v2_56_0__MET08ANLYSDIFAAST230__Archive();
 | 
			
		||||
 | 
			
		||||
    [Ignore]
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_56_0__MET08ANLYSDIFAAST230__Archive638144101790470000__Normal()
 | 
			
		||||
    {
 | 
			
		||||
        string check = "*.pdsf";
 | 
			
		||||
        MethodBase methodBase = new StackFrame().GetMethod();
 | 
			
		||||
        _MET08ANLYSDIFAAST230.Staging__v2_56_0__MET08ANLYSDIFAAST230__Archive();
 | 
			
		||||
        string[] variables = _MET08ANLYSDIFAAST230.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false);
 | 
			
		||||
        IFileRead fileRead = _MET08ANLYSDIFAAST230.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
 | 
			
		||||
        Logistics logistics = new(fileRead);
 | 
			
		||||
        _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [Ignore]
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_56_0__MET08ANLYSDIFAAST230__Dummy() => _MET08ANLYSDIFAAST230.Staging__v2_56_0__MET08ANLYSDIFAAST230__Dummy();
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
@ -0,0 +1,118 @@
 | 
			
		||||
#if v2_57_0
 | 
			
		||||
using Adaptation._Tests.Shared;
 | 
			
		||||
using Adaptation.Shared;
 | 
			
		||||
using Adaptation.Shared.Methods;
 | 
			
		||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
 | 
			
		||||
using System.Diagnostics;
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
 | 
			
		||||
namespace Adaptation._Tests.Extract.Staging.v2_57_0;
 | 
			
		||||
 | 
			
		||||
[TestClass]
 | 
			
		||||
public class MET08ANLYSDIFAAST230
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
#pragma warning disable CA2254
 | 
			
		||||
#pragma warning disable IDE0060
 | 
			
		||||
 | 
			
		||||
    private static CreateSelfDescription.Staging.v2_57_0.MET08ANLYSDIFAAST230 _MET08ANLYSDIFAAST230;
 | 
			
		||||
 | 
			
		||||
    [ClassInitialize]
 | 
			
		||||
    public static void ClassInitialize(TestContext testContext)
 | 
			
		||||
    {
 | 
			
		||||
        CreateSelfDescription.Staging.v2_57_0.MET08ANLYSDIFAAST230.ClassInitialize(testContext);
 | 
			
		||||
        _MET08ANLYSDIFAAST230 = CreateSelfDescription.Staging.v2_57_0.MET08ANLYSDIFAAST230.EAFLoggingUnitTesting;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_57_0__MET08ANLYSDIFAAST230__MoveMatchingFiles() => _MET08ANLYSDIFAAST230.Staging__v2_57_0__MET08ANLYSDIFAAST230__MoveMatchingFiles();
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_57_0__MET08ANLYSDIFAAST230__OpenInsightMetrologyViewer() => _MET08ANLYSDIFAAST230.Staging__v2_57_0__MET08ANLYSDIFAAST230__OpenInsightMetrologyViewer();
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_57_0__MET08ANLYSDIFAAST230__IQSSi() => _MET08ANLYSDIFAAST230.Staging__v2_57_0__MET08ANLYSDIFAAST230__IQSSi();
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_57_0__MET08ANLYSDIFAAST230__OpenInsight() => _MET08ANLYSDIFAAST230.Staging__v2_57_0__MET08ANLYSDIFAAST230__OpenInsight();
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_57_0__MET08ANLYSDIFAAST230__OpenInsight638149072810290000__Normal()
 | 
			
		||||
    {
 | 
			
		||||
        string check = "*.pdsf";
 | 
			
		||||
        MethodBase methodBase = new StackFrame().GetMethod();
 | 
			
		||||
        _MET08ANLYSDIFAAST230.Staging__v2_57_0__MET08ANLYSDIFAAST230__OpenInsight();
 | 
			
		||||
        string[] variables = _MET08ANLYSDIFAAST230.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false);
 | 
			
		||||
        IFileRead fileRead = _MET08ANLYSDIFAAST230.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
 | 
			
		||||
        Logistics logistics = new(fileRead);
 | 
			
		||||
        _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_57_0__MET08ANLYSDIFAAST230__OpenInsightMetrologyViewerAttachments() => _MET08ANLYSDIFAAST230.Staging__v2_57_0__MET08ANLYSDIFAAST230__OpenInsightMetrologyViewerAttachments();
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_57_0__MET08ANLYSDIFAAST230__APC() => _MET08ANLYSDIFAAST230.Staging__v2_57_0__MET08ANLYSDIFAAST230__APC();
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_57_0__MET08ANLYSDIFAAST230__SPaCe() => _MET08ANLYSDIFAAST230.Staging__v2_57_0__MET08ANLYSDIFAAST230__SPaCe();
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_57_0__MET08ANLYSDIFAAST230__Processed() => _MET08ANLYSDIFAAST230.Staging__v2_57_0__MET08ANLYSDIFAAST230__Processed();
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_57_0__MET08ANLYSDIFAAST230__Archive() => _MET08ANLYSDIFAAST230.Staging__v2_57_0__MET08ANLYSDIFAAST230__Archive();
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_57_0__MET08ANLYSDIFAAST230__Archive638144101790470000__Normal()
 | 
			
		||||
    {
 | 
			
		||||
        string check = "*.pdsf";
 | 
			
		||||
        MethodBase methodBase = new StackFrame().GetMethod();
 | 
			
		||||
        _MET08ANLYSDIFAAST230.Staging__v2_57_0__MET08ANLYSDIFAAST230__Archive();
 | 
			
		||||
        string[] variables = _MET08ANLYSDIFAAST230.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false);
 | 
			
		||||
        IFileRead fileRead = _MET08ANLYSDIFAAST230.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
 | 
			
		||||
        Logistics logistics = new(fileRead);
 | 
			
		||||
        _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging__v2_57_0__MET08ANLYSDIFAAST230__Dummy() => _MET08ANLYSDIFAAST230.Staging__v2_57_0__MET08ANLYSDIFAAST230__Dummy();
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
@ -305,7 +305,7 @@ public class AdaptationTesting : ISMTP
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            results = Directory.GetFiles(mbn.TextFileDirectory, "*.txt", SearchOption.TopDirectoryOnly);
 | 
			
		||||
            if (!string.IsNullOrEmpty(mbn.Ticks) && _HasWaitForProperty && !results.Any())
 | 
			
		||||
            if (!string.IsNullOrEmpty(mbn.Ticks) && _HasWaitForProperty && results.Length == 0)
 | 
			
		||||
            {
 | 
			
		||||
                _ = Process.Start("explorer.exe", mbn.TextFileDirectory);
 | 
			
		||||
                File.WriteAllText(Path.Combine(mbn.TextFileDirectory, "_ Why.why"), string.Empty);
 | 
			
		||||
@ -373,9 +373,7 @@ public class AdaptationTesting : ISMTP
 | 
			
		||||
        Tuple<string, CellInstanceVersion> result;
 | 
			
		||||
        CellInstanceVersion cellInstanceVersion;
 | 
			
		||||
        string cellInstanceServiceV2 = string.Concat("http://", _HostNameAndPort, "/CellInstanceServiceV2/", cellInstanceName, "/", cellInstanceVersionName, "/configuration");
 | 
			
		||||
        if (_CellInstanceVersions.ContainsKey(cellInstanceServiceV2))
 | 
			
		||||
            cellInstanceVersion = _CellInstanceVersions[cellInstanceServiceV2];
 | 
			
		||||
        else
 | 
			
		||||
        if (!_CellInstanceVersions.TryGetValue(cellInstanceServiceV2, out cellInstanceVersion))
 | 
			
		||||
        {
 | 
			
		||||
            cellInstanceVersion = GetCellInstanceVersion(cellInstanceServiceV2);
 | 
			
		||||
            _CellInstanceVersions.Add(cellInstanceServiceV2, cellInstanceVersion);
 | 
			
		||||
@ -401,7 +399,7 @@ public class AdaptationTesting : ISMTP
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        if (!results.Any() || (!string.IsNullOrEmpty(cellInstanceConnectionName) && !results.ContainsKey(cellInstanceConnectionName)))
 | 
			
		||||
        if (results.Count == 0 || (!string.IsNullOrEmpty(cellInstanceConnectionName) && !results.ContainsKey(cellInstanceConnectionName)))
 | 
			
		||||
            throw new Exception("Match not found (check test method name matches Mango)!");
 | 
			
		||||
        return results;
 | 
			
		||||
    }
 | 
			
		||||
@ -413,9 +411,8 @@ public class AdaptationTesting : ISMTP
 | 
			
		||||
            result = componentModelComponentsIndexes.ElementAt(0).Value;
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            if (componentModelComponentsIndexes is null || !componentModelComponentsIndexes.ContainsKey(cellInstanceConnectionName))
 | 
			
		||||
            if (componentModelComponentsIndexes is null || !componentModelComponentsIndexes.TryGetValue(cellInstanceConnectionName, out result))
 | 
			
		||||
                throw new Exception();
 | 
			
		||||
            result = componentModelComponentsIndexes[cellInstanceConnectionName];
 | 
			
		||||
        }
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
@ -487,7 +484,7 @@ public class AdaptationTesting : ISMTP
 | 
			
		||||
            else if (i == 1)
 | 
			
		||||
                _ = stringBuilder.
 | 
			
		||||
                    AppendLine().
 | 
			
		||||
                    Append("static ").Append(cellInstanceNameWithoutHyphen).AppendLine("() => DummyRoot = @\"\\\\messv02ecc1.ec.local\\EC_Characterization_Si\\Dummy\";").
 | 
			
		||||
                    Append("static ").Append(cellInstanceNameWithoutHyphen).AppendLine("() => DummyRoot = @\"\\\\mesfs.infineon.com\\EC_Characterization_Si\\Dummy\";").
 | 
			
		||||
                    AppendLine().
 | 
			
		||||
                    Append("public ").Append(cellInstanceNameWithoutHyphen).AppendLine("() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)").
 | 
			
		||||
                    AppendLine("{").
 | 
			
		||||
@ -565,7 +562,7 @@ public class AdaptationTesting : ISMTP
 | 
			
		||||
                else if (i == 1)
 | 
			
		||||
                {
 | 
			
		||||
                    if (componentsCellComponentCellComponent.Equipment.EquipmentType.Version != cellInstanceVersionName)
 | 
			
		||||
                        throw new Exception("Versions should match!");
 | 
			
		||||
                        throw new Exception($"Versions should match! {componentsCellComponentCellComponent.Equipment.EquipmentType.Version} != {cellInstanceVersionName}");
 | 
			
		||||
                    equipmentTypeName = componentsCellComponentCellComponent.Equipment.EquipmentType.Name;
 | 
			
		||||
                    _ = stringBuilder.
 | 
			
		||||
                        AppendLine("#if true").
 | 
			
		||||
@ -596,7 +593,7 @@ public class AdaptationTesting : ISMTP
 | 
			
		||||
                throw new Exception();
 | 
			
		||||
            _ = stringBuilder.Clear();
 | 
			
		||||
        }
 | 
			
		||||
        if (componentsCellComponentCellComponentEquipmentDictionaryNames.Any() && string.IsNullOrEmpty(cellInstanceVersion.FrozenBy))
 | 
			
		||||
        if (componentsCellComponentCellComponentEquipmentDictionaryNames.Count != 0 && string.IsNullOrEmpty(cellInstanceVersion.FrozenBy))
 | 
			
		||||
        {
 | 
			
		||||
            if (!cellInstanceVersion.CellCommunicatingRule.EndsWith(".Communicating") || !(from l in componentsCellComponentCellComponentEquipmentNames where l == cellInstanceVersion.CellCommunicatingRule.Split('.')[0] select true).Any())
 | 
			
		||||
                throw new Exception($"{methodName} - CellCommunicatingRule not correct in Mango!");
 | 
			
		||||
@ -648,9 +645,7 @@ public class AdaptationTesting : ISMTP
 | 
			
		||||
        Tuple<string, FileConnectorConfiguration> result;
 | 
			
		||||
        FileConnectorConfiguration fileConnectorConfiguration;
 | 
			
		||||
        string cellInstanceServiceV2With = string.Concat(cellInstanceVersionTuple.Item1, '/', cellInstanceConnectionName);
 | 
			
		||||
        if (_FileConnectorConfigurations.ContainsKey(cellInstanceServiceV2With))
 | 
			
		||||
            fileConnectorConfiguration = _FileConnectorConfigurations[cellInstanceServiceV2With];
 | 
			
		||||
        else
 | 
			
		||||
        if (!_FileConnectorConfigurations.TryGetValue(cellInstanceServiceV2With, out fileConnectorConfiguration))
 | 
			
		||||
        {
 | 
			
		||||
            Dictionary<string, int[]> componentModelComponentsIndexes = GetComponentModelComponentsIndexes(cellInstanceVersionTuple.Item2, cellInstanceConnectionName);
 | 
			
		||||
            int[] cellInstanceConnectionNameIndexes = GetCellInstanceConnectionNameIndexes(cellInstanceConnectionName, componentModelComponentsIndexes);
 | 
			
		||||
@ -696,9 +691,7 @@ public class AdaptationTesting : ISMTP
 | 
			
		||||
        int[] cellInstanceConnectionNameIndexes = GetCellInstanceConnectionNameIndexes(cellInstanceConnectionName, componentModelComponentsIndexes);
 | 
			
		||||
        ComponentsCellComponentCellComponent componentsCellComponentCellComponent = cellInstanceVersion.ComponentModel.Components[cellInstanceConnectionNameIndexes[0]].Children[cellInstanceConnectionNameIndexes[1]];
 | 
			
		||||
        string equipmentTypeServiceV2 = string.Concat("http://", _HostNameAndPort, "/EquipmentTypeServiceV2/", componentsCellComponentCellComponent.Equipment.EquipmentType.Name, "/", componentsCellComponentCellComponent.Equipment.EquipmentType.Version, "/configuration");
 | 
			
		||||
        if (_EquipmentTypeVersions.ContainsKey(equipmentTypeServiceV2))
 | 
			
		||||
            equipmentTypeVersion = _EquipmentTypeVersions[equipmentTypeServiceV2];
 | 
			
		||||
        else
 | 
			
		||||
        if (!_EquipmentTypeVersions.TryGetValue(equipmentTypeServiceV2, out equipmentTypeVersion))
 | 
			
		||||
        {
 | 
			
		||||
            equipmentTypeVersion = GetEquipmentTypeVersion(equipmentTypeServiceV2);
 | 
			
		||||
            _EquipmentTypeVersions.Add(equipmentTypeServiceV2, equipmentTypeVersion);
 | 
			
		||||
@ -763,7 +756,7 @@ public class AdaptationTesting : ISMTP
 | 
			
		||||
        string[] results;
 | 
			
		||||
        string equipmentDictionaryName;
 | 
			
		||||
        string equipmentDictionaryVersionName;
 | 
			
		||||
        if (_SkipEquipmentDictionary || equipmentTypeVersion?.EventActionSequences is null || !equipmentTypeVersion.EventActionSequences.Any() || !(from l in equipmentTypeVersion.EventActionSequences where l.HandledEvent.StartsWith("Equipment.FileRead") select 1).Any())
 | 
			
		||||
        if (_SkipEquipmentDictionary || equipmentTypeVersion?.EventActionSequences is null || equipmentTypeVersion.EventActionSequences.Length == 0 || !(from l in equipmentTypeVersion.EventActionSequences where l.HandledEvent.StartsWith("Equipment.FileRead") select 1).Any())
 | 
			
		||||
        {
 | 
			
		||||
            equipmentDictionaryName = string.Empty;
 | 
			
		||||
            equipmentDictionaryVersionName = string.Empty;
 | 
			
		||||
@ -834,9 +827,7 @@ public class AdaptationTesting : ISMTP
 | 
			
		||||
            equipmentDictionaryVersion = null;
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            if (_EquipmentDictionaryVersions.ContainsKey(equipmentDictionaryServiceV2))
 | 
			
		||||
                equipmentDictionaryVersion = _EquipmentDictionaryVersions[equipmentDictionaryServiceV2];
 | 
			
		||||
            else
 | 
			
		||||
            if (!_EquipmentDictionaryVersions.TryGetValue(equipmentDictionaryServiceV2, out equipmentDictionaryVersion))
 | 
			
		||||
            {
 | 
			
		||||
                equipmentDictionaryVersion = GetEquipmentDictionaryVersion(equipmentDictionaryServiceV2);
 | 
			
		||||
                _EquipmentDictionaryVersions.Add(equipmentDictionaryServiceV2, equipmentDictionaryVersion);
 | 
			
		||||
@ -850,14 +841,15 @@ public class AdaptationTesting : ISMTP
 | 
			
		||||
    {
 | 
			
		||||
        Tuple<string, List<Tuple<string, string>>> result;
 | 
			
		||||
        List<Tuple<string, string>> results;
 | 
			
		||||
        List<Tuple<string, string>> collection;
 | 
			
		||||
        if (_SkipEquipmentDictionary)
 | 
			
		||||
            results = new List<Tuple<string, string>>();
 | 
			
		||||
        else if (string.IsNullOrEmpty(equipmentDictionaryVersionTuple.Item1))
 | 
			
		||||
            throw new Exception();
 | 
			
		||||
        else if (equipmentDictionaryVersionTuple?.Item4?.Events?.Event is null)
 | 
			
		||||
            results = new List<Tuple<string, string>>();
 | 
			
		||||
        else if (_EquipmentDictionaryEventDescriptions.ContainsKey(equipmentDictionaryVersionTuple.Item1))
 | 
			
		||||
            results = _EquipmentDictionaryEventDescriptions[equipmentDictionaryVersionTuple.Item1];
 | 
			
		||||
        else if (_EquipmentDictionaryEventDescriptions.TryGetValue(equipmentDictionaryVersionTuple.Item1, out collection))
 | 
			
		||||
            results = collection;
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            results = new List<Tuple<string, string>>();
 | 
			
		||||
@ -962,6 +954,8 @@ public class AdaptationTesting : ISMTP
 | 
			
		||||
            fileConnectorConfigurationTuple.Item2.SourceFileFilters = sourceFileFilter.Split('|').ToList();
 | 
			
		||||
        }
 | 
			
		||||
        if (_TestContext.FullyQualifiedTestClassName.Contains(nameof(Extract)))
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                if (!string.IsNullOrEmpty(fileConnectorConfigurationTuple.Item2.ErrorTargetFileLocation))
 | 
			
		||||
                {
 | 
			
		||||
@ -980,11 +974,17 @@ public class AdaptationTesting : ISMTP
 | 
			
		||||
                }
 | 
			
		||||
                if (!string.IsNullOrEmpty(fileConnectorConfigurationTuple.Item2.AlternateTargetFolder))
 | 
			
		||||
                {
 | 
			
		||||
                if (!Directory.Exists(fileConnectorConfigurationTuple.Item2.AlternateTargetFolder))
 | 
			
		||||
                    _ = Directory.CreateDirectory(fileConnectorConfigurationTuple.Item2.AlternateTargetFolder);
 | 
			
		||||
                    if (!Directory.Exists(fileConnectorConfigurationTuple.Item2.AlternateTargetFolder.Split('|')[0]))
 | 
			
		||||
                        _ = Directory.CreateDirectory(fileConnectorConfigurationTuple.Item2.AlternateTargetFolder.Split('|')[0]);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        result = FileHandlers.CellInstanceConnectionName.Get(this, fileParameter, mbn.CellInstanceName, mbn.CellInstanceConnectionName, fileConnectorConfigurationTuple.Item2, equipmentTypeVersionTuple.Item2, parameterizedModelObjectDefinitionTypeTuple.Item2, modelObjectParametersTuple.Item2, equipmentDictionaryVersionTuple.Item2, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: false);
 | 
			
		||||
            catch (IOException ex)
 | 
			
		||||
            {
 | 
			
		||||
                if (!ex.Message.Contains("SMB1"))
 | 
			
		||||
                    throw;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        result = FileHandlers.CellInstanceConnectionName.Get(this, fileParameter, mbn.CellInstanceName, mbn.CellInstanceConnectionName, fileConnectorConfigurationTuple.Item2, equipmentTypeVersionTuple.Item2, parameterizedModelObjectDefinitionTypeTuple.Item2, modelObjectParametersTuple.Item2, equipmentDictionaryVersionTuple.Item2, dummyRuns, staticRuns, useCyclicalForDescription, connectionCount: cellInstanceVersionTuple.Item2.EquipmentConnections.Length);
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -1001,7 +1001,7 @@ public class AdaptationTesting : ISMTP
 | 
			
		||||
        string sourceFileLocation = string.Empty;
 | 
			
		||||
        MethodBaseName mbn = GetMethodBaseName(methodBase);
 | 
			
		||||
        string[] textFiles = GetTextFiles(mbn);
 | 
			
		||||
        if (!textFiles.Any())
 | 
			
		||||
        if (textFiles.Length == 0)
 | 
			
		||||
        {
 | 
			
		||||
            if (_HasWaitForProperty)
 | 
			
		||||
                throw new Exception("Set text file!");
 | 
			
		||||
@ -1065,7 +1065,7 @@ public class AdaptationTesting : ISMTP
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
                    string[] files = Directory.GetFiles(ipdsfDirectory, searchPattern, SearchOption.TopDirectoryOnly);
 | 
			
		||||
                    if (files.Any())
 | 
			
		||||
                    if (files.Length != 0)
 | 
			
		||||
                        ipdsfFile = files[0];
 | 
			
		||||
                    else
 | 
			
		||||
                        ipdsfFile = searchPattern;
 | 
			
		||||
@ -1109,9 +1109,9 @@ public class AdaptationTesting : ISMTP
 | 
			
		||||
        {
 | 
			
		||||
            string[] pdsfFiles;
 | 
			
		||||
            pdsfFiles = Directory.GetFiles(searchDirectory, searchPattern, SearchOption.TopDirectoryOnly);
 | 
			
		||||
            if (!pdsfFiles.Any())
 | 
			
		||||
            if (pdsfFiles.Length == 0)
 | 
			
		||||
                _ = Process.Start("explorer.exe", searchDirectory);
 | 
			
		||||
            Assert.IsTrue(pdsfFiles.Any(), "GetFiles check");
 | 
			
		||||
            Assert.IsTrue(pdsfFiles.Length != 0, "GetFiles check");
 | 
			
		||||
            results = GetLogisticsColumnsAndBody(pdsfFiles[0]);
 | 
			
		||||
        }
 | 
			
		||||
        Assert.IsFalse(string.IsNullOrEmpty(results.Item1));
 | 
			
		||||
@ -1244,6 +1244,8 @@ public class AdaptationTesting : ISMTP
 | 
			
		||||
    {
 | 
			
		||||
        string result;
 | 
			
		||||
        Tuple<string, Test[], JsonElement[], List<FileInfo>> extractResult = fileRead.ReExtract();
 | 
			
		||||
        if (extractResult is null)
 | 
			
		||||
            throw new Exception($"Using pattern {variables[4]} no file was found <{variables[2]}>");
 | 
			
		||||
        if (!fileRead.IsDuplicator)
 | 
			
		||||
        {
 | 
			
		||||
            Assert.IsFalse(string.IsNullOrEmpty(extractResult?.Item1));
 | 
			
		||||
 | 
			
		||||
@ -2,7 +2,6 @@ using Microsoft.VisualStudio.TestTools.UnitTesting;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Diagnostics;
 | 
			
		||||
using System.IO;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Text.Json;
 | 
			
		||||
@ -74,7 +73,7 @@ public class UnitTesting
 | 
			
		||||
            if (string.IsNullOrEmpty(result))
 | 
			
		||||
                break;
 | 
			
		||||
            checkFiles = Directory.GetFiles(result, "*.Tests.*proj", SearchOption.TopDirectoryOnly);
 | 
			
		||||
            if (checkFiles.Any())
 | 
			
		||||
            if (checkFiles.Length != 0)
 | 
			
		||||
                break;
 | 
			
		||||
            result = Path.GetDirectoryName(result);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -2,8 +2,10 @@ using Adaptation._Tests.Shared;
 | 
			
		||||
using Microsoft.Extensions.Logging;
 | 
			
		||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Diagnostics;
 | 
			
		||||
using System.IO;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
using System.Text;
 | 
			
		||||
 | 
			
		||||
@ -38,6 +40,13 @@ public class MET08ANLYSDIFAAST230 : LoggingUnitTesting, IDisposable
 | 
			
		||||
        LoggingUnitTesting?.Dispose();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static void NonThrowTryCatch()
 | 
			
		||||
    {
 | 
			
		||||
        try
 | 
			
		||||
        { throw new Exception(); }
 | 
			
		||||
        catch (Exception) { }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void TestDateTime()
 | 
			
		||||
    {
 | 
			
		||||
@ -49,24 +58,47 @@ public class MET08ANLYSDIFAAST230 : LoggingUnitTesting, IDisposable
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging()
 | 
			
		||||
    public void Production()
 | 
			
		||||
    {
 | 
			
		||||
        MethodBase methodBase = new StackFrame().GetMethod();
 | 
			
		||||
        StringBuilder results = new();
 | 
			
		||||
        (string cellInstanceName, string cellInstanceVersionName)[] collection = new (string, string)[]
 | 
			
		||||
        {
 | 
			
		||||
            new("MET08ANLYSDIFAAST230", "v2.47.5"),
 | 
			
		||||
            new("MET08ANLYSDIFAAST230", "v2.59.0"),
 | 
			
		||||
        };
 | 
			
		||||
        string staging = "http://mestsa07ec.ec.local:9003/CellInstanceServiceV2";
 | 
			
		||||
        string production = "http://messa08ec.infineon.com:9003/CellInstanceServiceV2";
 | 
			
		||||
        Shared.PasteSpecialXml.EAF.XML.API.CellInstance.CellInstanceVersion cellInstanceVersion;
 | 
			
		||||
        LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
 | 
			
		||||
        foreach ((string cellInstanceName, string cellInstanceVersionName) in collection)
 | 
			
		||||
        {
 | 
			
		||||
            cellInstanceVersion = AdaptationTesting.GetCellInstanceVersion($"{staging}/{cellInstanceName}/{cellInstanceVersionName}/configuration");
 | 
			
		||||
            cellInstanceVersion = AdaptationTesting.GetCellInstanceVersion($"{production}/{cellInstanceName}/{cellInstanceVersionName}/configuration");
 | 
			
		||||
            _ = results.AppendLine($"{cellInstanceName}\t{cellInstanceVersionName}\t{cellInstanceVersion.EdaConnection.PortNumber}");
 | 
			
		||||
        }
 | 
			
		||||
        File.WriteAllText($"D:/Tmp/{methodBase.Module.Name}-{methodBase.ReflectedType.Name}-{methodBase.Name}.tsv", results.ToString());
 | 
			
		||||
        string sourceDirectory = "D:/Tmp/cellInstanceVersion.EdaConnection.PortNumber";
 | 
			
		||||
        if (!Directory.Exists(sourceDirectory))
 | 
			
		||||
            _ = Directory.CreateDirectory(sourceDirectory);
 | 
			
		||||
        File.WriteAllText(Path.Combine(sourceDirectory, $"{methodBase.Module.Name}-{methodBase.ReflectedType.Name}-{methodBase.Name}.tsv"), results.ToString());
 | 
			
		||||
        LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void CellInstanceVersionEdaConnectionPortNumber()
 | 
			
		||||
    {
 | 
			
		||||
        MethodBase methodBase = new StackFrame().GetMethod();
 | 
			
		||||
        string sourceDirectory = "D:/Tmp/cellInstanceVersion.EdaConnection.PortNumber";
 | 
			
		||||
        if (Directory.Exists(sourceDirectory))
 | 
			
		||||
        {
 | 
			
		||||
            string destinationDirectory = Path.Combine(sourceDirectory, "All");
 | 
			
		||||
            if (!Directory.Exists(destinationDirectory))
 | 
			
		||||
                _ = Directory.CreateDirectory(destinationDirectory);
 | 
			
		||||
            List<string> lines = new();
 | 
			
		||||
            string[] files = Directory.GetFiles(sourceDirectory, "*.tsv", SearchOption.TopDirectoryOnly);
 | 
			
		||||
            foreach (string file in files)
 | 
			
		||||
                lines.AddRange(File.ReadAllLines(file));
 | 
			
		||||
            File.WriteAllLines(Path.Combine(destinationDirectory, $"{DateTime.Now.Ticks}.tsv"), lines.Distinct().OrderBy(l => l));
 | 
			
		||||
        }
 | 
			
		||||
        LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
 | 
			
		||||
        NonThrowTryCatch();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -2,8 +2,10 @@ using Adaptation._Tests.Shared;
 | 
			
		||||
using Microsoft.Extensions.Logging;
 | 
			
		||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Diagnostics;
 | 
			
		||||
using System.IO;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
using System.Text;
 | 
			
		||||
 | 
			
		||||
@ -38,6 +40,13 @@ public class SECS : LoggingUnitTesting, IDisposable
 | 
			
		||||
        LoggingUnitTesting?.Dispose();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static void NonThrowTryCatch()
 | 
			
		||||
    {
 | 
			
		||||
        try
 | 
			
		||||
        { throw new Exception(); }
 | 
			
		||||
        catch (Exception) { }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void TestDateTime()
 | 
			
		||||
    {
 | 
			
		||||
@ -49,24 +58,47 @@ public class SECS : LoggingUnitTesting, IDisposable
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging()
 | 
			
		||||
    public void Production()
 | 
			
		||||
    {
 | 
			
		||||
        MethodBase methodBase = new StackFrame().GetMethod();
 | 
			
		||||
        StringBuilder results = new();
 | 
			
		||||
        (string cellInstanceName, string cellInstanceVersionName)[] collection = new (string, string)[]
 | 
			
		||||
        {
 | 
			
		||||
            new("SPV01", "v2.43.0"),
 | 
			
		||||
            new("SPV01", "v2.20.1"),
 | 
			
		||||
        };
 | 
			
		||||
        string staging = "http://mestsa07ec.ec.local:9003/CellInstanceServiceV2";
 | 
			
		||||
        string production = "http://messa08ec.infineon.com:9003/CellInstanceServiceV2";
 | 
			
		||||
        Shared.PasteSpecialXml.EAF.XML.API.CellInstance.CellInstanceVersion cellInstanceVersion;
 | 
			
		||||
        LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
 | 
			
		||||
        foreach ((string cellInstanceName, string cellInstanceVersionName) in collection)
 | 
			
		||||
        {
 | 
			
		||||
            cellInstanceVersion = AdaptationTesting.GetCellInstanceVersion($"{staging}/{cellInstanceName}/{cellInstanceVersionName}/configuration");
 | 
			
		||||
            cellInstanceVersion = AdaptationTesting.GetCellInstanceVersion($"{production}/{cellInstanceName}/{cellInstanceVersionName}/configuration");
 | 
			
		||||
            _ = results.AppendLine($"{cellInstanceName}\t{cellInstanceVersionName}\t{cellInstanceVersion.EdaConnection.PortNumber}");
 | 
			
		||||
        }
 | 
			
		||||
        File.WriteAllText($"D:/Tmp/{methodBase.Module.Name}-{methodBase.ReflectedType.Name}-{methodBase.Name}.tsv", results.ToString());
 | 
			
		||||
        string sourceDirectory = "D:/Tmp/cellInstanceVersion.EdaConnection.PortNumber";
 | 
			
		||||
        if (!Directory.Exists(sourceDirectory))
 | 
			
		||||
            _ = Directory.CreateDirectory(sourceDirectory);
 | 
			
		||||
        File.WriteAllText(Path.Combine(sourceDirectory, $"{methodBase.Module.Name}-{methodBase.ReflectedType.Name}-{methodBase.Name}.tsv"), results.ToString());
 | 
			
		||||
        LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void CellInstanceVersionEdaConnectionPortNumber()
 | 
			
		||||
    {
 | 
			
		||||
        MethodBase methodBase = new StackFrame().GetMethod();
 | 
			
		||||
        string sourceDirectory = "D:/Tmp/cellInstanceVersion.EdaConnection.PortNumber";
 | 
			
		||||
        if (Directory.Exists(sourceDirectory))
 | 
			
		||||
        {
 | 
			
		||||
            string destinationDirectory = Path.Combine(sourceDirectory, "All");
 | 
			
		||||
            if (!Directory.Exists(destinationDirectory))
 | 
			
		||||
                _ = Directory.CreateDirectory(destinationDirectory);
 | 
			
		||||
            List<string> lines = new();
 | 
			
		||||
            string[] files = Directory.GetFiles(sourceDirectory, "*.tsv", SearchOption.TopDirectoryOnly);
 | 
			
		||||
            foreach (string file in files)
 | 
			
		||||
                lines.AddRange(File.ReadAllLines(file));
 | 
			
		||||
            File.WriteAllLines(Path.Combine(destinationDirectory, $"{DateTime.Now.Ticks}.tsv"), lines.Distinct().OrderBy(l => l));
 | 
			
		||||
        }
 | 
			
		||||
        LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
 | 
			
		||||
        NonThrowTryCatch();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -45,7 +45,7 @@
 | 
			
		||||
      "Password": "tVyC7uPHtScZR8NLInSaxQ=="
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "Use": true,
 | 
			
		||||
      "Use": false,
 | 
			
		||||
      "Letter": "i",
 | 
			
		||||
      "Share": "\\\\messdv002.na.infineon.com\\Candela",
 | 
			
		||||
      "User": "INFINEON\\MESGaNEAF",
 | 
			
		||||
@ -115,14 +115,14 @@
 | 
			
		||||
      "Password": "rzXkXdHKetDfsukhZKW0yA=="
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "Use": true,
 | 
			
		||||
      "Use": false,
 | 
			
		||||
      "Letter": "s",
 | 
			
		||||
      "Share": "\\\\messv02ecc1.ec.local\\EC_EAFRepository",
 | 
			
		||||
      "User": "EC\\ECMESEAF",
 | 
			
		||||
      "Password": "CUGygiPwahy4U3j+6KqqoMZ08STyVDR1rKm6MwPpt00="
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "Use": true,
 | 
			
		||||
      "Use": false,
 | 
			
		||||
      "Letter": "t",
 | 
			
		||||
      "Share": "\\\\messv02ecc1.ec.local\\EC_EDA",
 | 
			
		||||
      "User": "EC\\ECEDASvc",
 | 
			
		||||
 | 
			
		||||
@ -45,7 +45,7 @@
 | 
			
		||||
      "Password": "tVyC7uPHtScZR8NLInSaxQ=="
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "Use": true,
 | 
			
		||||
      "Use": false,
 | 
			
		||||
      "Letter": "i",
 | 
			
		||||
      "Share": "\\\\messdv002.na.infineon.com\\Candela",
 | 
			
		||||
      "User": "INFINEON\\MESGaNEAF",
 | 
			
		||||
@ -115,14 +115,14 @@
 | 
			
		||||
      "Password": "rzXkXdHKetDfsukhZKW0yA=="
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "Use": true,
 | 
			
		||||
      "Use": false,
 | 
			
		||||
      "Letter": "s",
 | 
			
		||||
      "Share": "\\\\messv02ecc1.ec.local\\EC_EAFRepository",
 | 
			
		||||
      "User": "EC\\ECMESEAF",
 | 
			
		||||
      "Password": "CUGygiPwahy4U3j+6KqqoMZ08STyVDR1rKm6MwPpt00="
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "Use": true,
 | 
			
		||||
      "Use": false,
 | 
			
		||||
      "Letter": "t",
 | 
			
		||||
      "Share": "\\\\messv02ecc1.ec.local\\EC_EDA",
 | 
			
		||||
      "User": "EC\\ECEDASvc",
 | 
			
		||||
 | 
			
		||||
@ -1,14 +1,8 @@
 | 
			
		||||
{
 | 
			
		||||
    "scripts": {
 | 
			
		||||
        "Alpha": "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
 | 
			
		||||
        "nuget-clear": "dotnet nuget locals all --clear",
 | 
			
		||||
        "build": "dotnet build --runtime win-x64 --self-contained",
 | 
			
		||||
        "build-Package-Management": "dotnet build --runtime win-x64 --self-contained --source https://packagemanagement.eu.infineon.com:4430/api/v2/",
 | 
			
		||||
        "build-nuget-And-Package-Management": "dotnet build --runtime win-x64 --self-contained --source https://api.nuget.org/v3/index.json --source https://packagemanagement.eu.infineon.com:4430/api/v2/",
 | 
			
		||||
        "build-All-Sources": "dotnet build --runtime win-x64 --self-contained --source https://api.nuget.org/v3/index.json --source https://packagemanagement.eu.infineon.com:4430/api/v2/ --source https://tfs.intra.infineon.com/tfs/ManufacturingIT/_packaging/eaf/nuget/v3/index.json --source http://192.168.0.73:5002/v3/index.json",
 | 
			
		||||
        "dotnet-format": "dotnet format --report .vscode --verbosity detailed --severity warn",
 | 
			
		||||
        "MSBuild": "\"C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe\" /target:Build /restore:True /p:RestoreSources=https://api.nuget.org/v3/index.json%3Bhttps://packagemanagement.eu.infineon.com:4430/api/v2/%3Bhttps://tfs.intra.infineon.com/tfs/ManufacturingIT/_packaging/eaf/nuget/v3/index.json /DetailedSummary /ConsoleLoggerParameters:PerformanceSummary;ErrorsOnly; /property:Configuration=Debug;TargetFrameworkVersion=v4.8 ../MET08ANLYSDIFAAST230.csproj",
 | 
			
		||||
        "pull": "git pull",
 | 
			
		||||
        "kanbn.board": "kanbn board",
 | 
			
		||||
        "kanbn.board.json": "kanbn board -j > .kanbn/board.json",
 | 
			
		||||
        "garbage-collect": "git gc",
 | 
			
		||||
        "AT-CreateSelfDescription.Staging.v2_43_0-MET08ANLYSDIFAAST230": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_43_0 & ClassName~MET08ANLYSDIFAAST230\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
 | 
			
		||||
        "AX-CreateSelfDescription.Staging.v2_43_0-SPV01_EQPT": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_43_0 & ClassName~SPV01_EQPT\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
 | 
			
		||||
 | 
			
		||||
@ -165,7 +165,7 @@ public partial class FileRead : FileReaderHandler, ISMTP
 | 
			
		||||
                Equipment.SelfDescriptionBuilder.AddParameterTypeDefinition(structuredType);
 | 
			
		||||
            }
 | 
			
		||||
            if (!parameterTypeDefinitions.ContainsKey(jsonProperty.Value.ValueKind))
 | 
			
		||||
                throw new Exception(string.Concat('{', jsonProperty.Value.ValueKind, "} is not mapped!"));
 | 
			
		||||
                throw new Exception(string.Concat('<', jsonProperty.Name, "> {", jsonProperty.Value.ValueKind, "} is not mapped!"));
 | 
			
		||||
        }
 | 
			
		||||
        foreach (JsonProperty jsonProperty in jsonProperties)
 | 
			
		||||
        {
 | 
			
		||||
@ -197,7 +197,7 @@ public partial class FileRead : FileReaderHandler, ISMTP
 | 
			
		||||
        FileConnectorConfiguration fileConnectorConfiguration = Mapper.Map(Configuration);
 | 
			
		||||
        string parameterizedModelObjectDefinitionType = methodBase.DeclaringType.FullName;
 | 
			
		||||
        IList<ModelObjectParameterDefinition> modelObjectParameters = Mapper.Map(ConfiguredParameters);
 | 
			
		||||
        _FileRead = CellInstanceConnectionName.Get(this, FileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, _DummyRuns, _StaticRuns, _UseCyclicalForDescription, isEAFHosted: true);
 | 
			
		||||
        _FileRead = CellInstanceConnectionName.Get(this, FileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, _DummyRuns, _StaticRuns, _UseCyclicalForDescription, connectionCount: null);
 | 
			
		||||
        if (_FileRead.IsEvent)
 | 
			
		||||
            AddParameterRangeAndEvent();
 | 
			
		||||
    }
 | 
			
		||||
@ -338,7 +338,7 @@ public partial class FileRead : FileReaderHandler, ISMTP
 | 
			
		||||
        if (modelObjectParameterDefinitionJsonElement.ValueKind != JsonValueKind.Array)
 | 
			
		||||
            throw new Exception();
 | 
			
		||||
        IList<ModelObjectParameterDefinition> modelObjectParameters = JsonSerializer.Deserialize<IList<ModelObjectParameterDefinition>>(modelObjectParameterDefinitionJsonElement.ToString(), jsonSerializerOptions);
 | 
			
		||||
        _FileRead = CellInstanceConnectionName.Get(this, FileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, _DummyRuns, _StaticRuns, _UseCyclicalForDescription, isEAFHosted: false);
 | 
			
		||||
        _FileRead = CellInstanceConnectionName.Get(this, FileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, _DummyRuns, _StaticRuns, _UseCyclicalForDescription, connectionCount: null);
 | 
			
		||||
        results = _FileRead.ReExtract();
 | 
			
		||||
        if (results?.Item2 is null)
 | 
			
		||||
            throw new Exception();
 | 
			
		||||
 | 
			
		||||
@ -48,6 +48,12 @@
 | 
			
		||||
    <ErrorReport>prompt</ErrorReport>
 | 
			
		||||
    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition=" '$(TargetFrameworkVersion)' == 'v4.8' ">
 | 
			
		||||
    <DefineConstants>NETFRAMEWORK;NET20;NET35;NET40;NET45;NET451;NET452;NET46;NET461;NET462;NET47;NET471;NET472;NET48;$(DefineConstants)</DefineConstants>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <RuntimeHostConfigurationOption Include="AssemblyName" Value="MET08ANLYSDIFAAST230" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <Reference Include="System" />
 | 
			
		||||
    <Reference Include="System.Core" />
 | 
			
		||||
@ -107,6 +113,7 @@
 | 
			
		||||
    <Compile Include="Adaptation\FileHandlers\OpenInsightMetrologyViewer\FileRead.cs" />
 | 
			
		||||
    <Compile Include="Adaptation\FileHandlers\OpenInsight\FileRead.cs" />
 | 
			
		||||
    <Compile Include="Adaptation\FileHandlers\OpenInsight\FromIQS.cs" />
 | 
			
		||||
    <Compile Include="Adaptation\FileHandlers\OpenInsight\Root.cs" />
 | 
			
		||||
    <Compile Include="Adaptation\FileHandlers\Processed\FileRead.cs" />
 | 
			
		||||
    <Compile Include="Adaptation\FileHandlers\SECS\Description.cs" />
 | 
			
		||||
    <Compile Include="Adaptation\FileHandlers\SECS\ProcessData.cs" />
 | 
			
		||||
@ -158,10 +165,10 @@
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <PackageReference Include="Infineon.EAF.Runtime">
 | 
			
		||||
      <Version>2.47.0</Version>
 | 
			
		||||
      <Version>2.59.0</Version>
 | 
			
		||||
    </PackageReference>
 | 
			
		||||
    <PackageReference Include="System.Text.Json">
 | 
			
		||||
      <Version>6.0.3</Version>
 | 
			
		||||
      <Version>8.0.3</Version>
 | 
			
		||||
    </PackageReference>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup />
 | 
			
		||||
 | 
			
		||||
@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
 | 
			
		||||
// You can specify all the values or you can default the Build and Revision Numbers
 | 
			
		||||
// by using the '*' as shown below:
 | 
			
		||||
// [assembly: AssemblyVersion("1.0.*")]
 | 
			
		||||
[assembly: AssemblyVersion("2.47.5.0")]
 | 
			
		||||
[assembly: AssemblyFileVersion("2.47.5.0")]
 | 
			
		||||
[assembly: AssemblyVersion("2.59.0.0")]
 | 
			
		||||
[assembly: AssemblyFileVersion("2.59.0.0")]
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user