Compare commits
	
		
			25 Commits
		
	
	
		
			f64a62671f
			...
			10-22-a
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 4e9c86f64e | |||
| a9bfda7da6 | |||
| 2bda7012cd | |||
| 7561a08adc | |||
| 4a6fdda47d | |||
| aafa856b7a | |||
| 2204608d6a | |||
| 5b3ea9d527 | |||
| 997e741885 | |||
| 3419ac0704 | |||
| 6c9d81a3ec | |||
| 7c19bdf9ce | |||
| ca968eb19a | |||
| e0298fb8f5 | |||
| 8235e80035 | |||
| abe39b215b | |||
| 9d7651e7e0 | |||
| f800002819 | |||
| b783ccb964 | |||
| 653c894865 | |||
| 8d588289e1 | |||
| b8ba8f2219 | |||
| bf2f5ed20c | |||
| 7b993aaa94 | |||
| 119e2bd535 | 
| @ -110,7 +110,7 @@ dotnet_diagnostic.CA2254.severity = none # CA2254: The logging message template | ||||
| 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.IDE0005.severity = none # 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 | ||||
| @ -122,6 +122,8 @@ dotnet_diagnostic.IDE0290.severity = none # Use primary constructor [Distance]cs | ||||
| dotnet_diagnostic.IDE0300.severity = none # IDE0300: Collection initialization can be simplified | ||||
| dotnet_diagnostic.IDE0301.severity = none #IDE0301: Collection initialization can be simplified | ||||
| dotnet_diagnostic.IDE0305.severity = none # IDE0305: Collection initialization can be simplified | ||||
| dotnet_diagnostic.MSTEST0015.severity = none # MSTEST0015: Test method {method} should not be ignored | ||||
| dotnet_diagnostic.MSTEST0037.severity = error # MSTEST0037: Use proper 'Assert' methods | ||||
| dotnet_diagnostic.SYSLIB1045.severity = none # SYSLIB1045: diagnostics for regex source generation | ||||
| dotnet_naming_rule.abstract_method_should_be_pascal_case.severity = warning | ||||
| dotnet_naming_rule.abstract_method_should_be_pascal_case.style = pascal_case | ||||
|  | ||||
							
								
								
									
										39
									
								
								Adaptation/.vscode/launch.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										39
									
								
								Adaptation/.vscode/launch.json
									
									
									
									
										vendored
									
									
								
							| @ -1,10 +1,43 @@ | ||||
| { | ||||
|   "configurations": [ | ||||
|     { | ||||
|       "mode": "debug", | ||||
|       "name": "Go launch file", | ||||
|       "program": "${file}", | ||||
|       "request": "launch", | ||||
|       "type": "go" | ||||
|     }, | ||||
|     { | ||||
|       "name": "node Launch Current Opened File", | ||||
|       "program": "${file}", | ||||
|       "request": "launch", | ||||
|       "type": "node" | ||||
|     }, | ||||
|     { | ||||
|       "cwd": "${workspaceFolder}", | ||||
|       "internalConsoleOptions": "neverOpen", | ||||
|       "name": "Debug File", | ||||
|       "program": "${file}", | ||||
|       "request": "launch", | ||||
|       "stopOnEntry": false, | ||||
|       "type": "bun", | ||||
|       "watchMode": false | ||||
|     }, | ||||
|     { | ||||
|       "cwd": "${workspaceFolder}", | ||||
|       "internalConsoleOptions": "neverOpen", | ||||
|       "name": "Run File", | ||||
|       "noDebug": true, | ||||
|       "program": "${file}", | ||||
|       "request": "launch", | ||||
|       "type": "bun", | ||||
|       "watchMode": false | ||||
|     }, | ||||
|     { | ||||
|       "name": ".NET Core Attach", | ||||
|       "type": "coreclr", | ||||
|       "processId": 32760, | ||||
|       "request": "attach", | ||||
|       "processId": 10528 | ||||
|       "type": "coreclr" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
| } | ||||
							
								
								
									
										153
									
								
								Adaptation/.vscode/tasks.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										153
									
								
								Adaptation/.vscode/tasks.json
									
									
									
									
										vendored
									
									
								
							| @ -1,19 +1,134 @@ | ||||
| { | ||||
|     "version": "2.0.0", | ||||
|     "inputs": [ | ||||
|         { | ||||
|             "default": "Development", | ||||
|             "description": "Which ASP Net Core Environment?", | ||||
|             "id": "ASPNETCORE_ENVIRONMENT", | ||||
|             "options": [ | ||||
|                 "Development", | ||||
|                 "Production" | ||||
|             ], | ||||
|             "type": "pickString" | ||||
|         }, | ||||
|         { | ||||
|             "default": "{AssemblyTitle}", | ||||
|             "description": "What Assembly Title?", | ||||
|             "id": "AssemblyTitle", | ||||
|             "type": "promptString" | ||||
|         }, | ||||
|         { | ||||
|             "default": "{Build.BuildId}", | ||||
|             "description": "Which Build BuildId?", | ||||
|             "id": "Build.BuildId", | ||||
|             "type": "promptString" | ||||
|         }, | ||||
|         { | ||||
|             "default": "{Build.Reason}", | ||||
|             "description": "Which Build Reason?", | ||||
|             "id": "Build.Reason", | ||||
|             "type": "promptString" | ||||
|         }, | ||||
|         { | ||||
|             "default": "{Build.Repository.Id}", | ||||
|             "description": "Which Build Repository Id?", | ||||
|             "id": "Build.Repository.Id", | ||||
|             "type": "promptString" | ||||
|         }, | ||||
|         { | ||||
|             "default": "{Build.Repository.Name}", | ||||
|             "description": "Which Build Repository Name?", | ||||
|             "id": "Build.Repository.Name", | ||||
|             "type": "promptString" | ||||
|         }, | ||||
|         { | ||||
|             "default": "{Build.SourceVersion}", | ||||
|             "description": "Which Build Source Version?", | ||||
|             "id": "Build.SourceVersion", | ||||
|             "type": "promptString" | ||||
|         }, | ||||
|         { | ||||
|             "default": "Debug", | ||||
|             "description": "Which Configuration?", | ||||
|             "id": "Configuration", | ||||
|             "options": [ | ||||
|                 "Debug", | ||||
|                 "Release" | ||||
|             ], | ||||
|             "type": "pickString" | ||||
|         }, | ||||
|         { | ||||
|             "default": "net8.0", | ||||
|             "description": "Which Core Version?", | ||||
|             "id": "CoreVersion", | ||||
|             "options": [ | ||||
|                 "net8.0" | ||||
|             ], | ||||
|             "type": "pickString" | ||||
|         }, | ||||
|         { | ||||
|             "default": "C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe", | ||||
|             "description": "Which MS Build?", | ||||
|             "id": "MSBuild", | ||||
|             "type": "promptString" | ||||
|         }, | ||||
|         { | ||||
|             "default": "https://artifactory.intra.infineon.com/artifactory/api/nuget/ngt-fi-package-main-vir/", | ||||
|             "description": "Which Nuget Source?", | ||||
|             "id": "NugetSource", | ||||
|             "type": "promptString" | ||||
|         }, | ||||
|         { | ||||
|             "default": "win-x64", | ||||
|             "description": "Which Runtime?", | ||||
|             "id": "Runtime", | ||||
|             "options": [ | ||||
|                 "win-x64", | ||||
|                 "win-x32", | ||||
|                 "linux-x64", | ||||
|                 "linux-x32" | ||||
|             ], | ||||
|             "type": "pickString" | ||||
|         }, | ||||
|         { | ||||
|             "default": "L:/", | ||||
|             "description": "Which System DefaultWorkingDirectory?", | ||||
|             "id": "System.DefaultWorkingDirectory", | ||||
|             "options": [ | ||||
|                 "L:/", | ||||
|                 "D:/", | ||||
|                 "C:/" | ||||
|             ], | ||||
|             "type": "pickString" | ||||
|         }, | ||||
|         { | ||||
|             "default": "v4.8", | ||||
|             "description": "Which Core Target Framework Version?", | ||||
|             "id": "TargetFrameworkVersion", | ||||
|             "options": [ | ||||
|                 "v4.8" | ||||
|             ], | ||||
|             "type": "pickString" | ||||
|         }, | ||||
|         { | ||||
|             "default": "{UserSecretsId}", | ||||
|             "description": "Which Core User Secrets Id?", | ||||
|             "id": "UserSecretsId", | ||||
|             "type": "promptString" | ||||
|         } | ||||
|     ], | ||||
|     "tasks": [ | ||||
|         { | ||||
|             "label": "Build", | ||||
|             "command": "dotnet", | ||||
|             "type": "process", | ||||
|             "args": [ | ||||
|                 "build", | ||||
|                 "/property:GenerateFullPaths=true", | ||||
|                 "/consoleloggerparameters:NoSummary" | ||||
|                 "build" | ||||
|             ], | ||||
|             "problemMatcher": "$msCompile" | ||||
|         }, | ||||
|         { | ||||
|             "label": "Test-Debug", | ||||
|             "label": "Test Debug", | ||||
|             "command": "dotnet", | ||||
|             "type": "process", | ||||
|             "args": [ | ||||
| @ -24,7 +139,7 @@ | ||||
|             "problemMatcher": "$msCompile" | ||||
|         }, | ||||
|         { | ||||
|             "label": "Test-Release", | ||||
|             "label": "Test Release", | ||||
|             "command": "dotnet", | ||||
|             "type": "process", | ||||
|             "args": [ | ||||
| @ -50,7 +165,7 @@ | ||||
|             "problemMatcher": "$msCompile" | ||||
|         }, | ||||
|         { | ||||
|             "label": "Format-Whitespaces", | ||||
|             "label": "Format Whitespaces", | ||||
|             "command": "dotnet", | ||||
|             "type": "process", | ||||
|             "args": [ | ||||
| @ -78,7 +193,7 @@ | ||||
|             "args": [ | ||||
|                 "/target:Build", | ||||
|                 "/restore:True", | ||||
|                 "/p:RestoreSources=https://artifactory.intra.infineon.com/artifactory/api/nuget/ngt-fi-package-main-vir/%3Bhttps://packagemanagement.eu.infineon.com:4430/api/v2/%3Bhttps://tfs.intra.infineon.com/tfs/FactoryIntegration/_packaging/EAF/nuget/v3/index.json%3Bhttps://tfs.intra.infineon.com/tfs/FactoryIntegration/_packaging/EAF%40Local/nuget/v3/index.json%3Bhttps://api.nuget.org/v3/index.json", | ||||
|                 "/p:RestoreSources=https://artifactory.intra.infineon.com/artifactory/api/nuget/ngt-fi-package-main-vir/%3Bhttps://tfs.intra.infineon.com/tfs/FactoryIntegration/_packaging/EAF/nuget/v3/index.json%3Bhttps://tfs.intra.infineon.com/tfs/FactoryIntegration/_packaging/EAF%40Local/nuget/v3/index.json%3Bhttps://api.nuget.org/v3/index.json", | ||||
|                 "/detailedsummary", | ||||
|                 "/consoleloggerparameters:PerformanceSummary;ErrorsOnly;", | ||||
|                 "/property:Configuration=Debug;TargetFrameworkVersion=v4.8", | ||||
| @ -87,13 +202,33 @@ | ||||
|             "problemMatcher": "$msCompile" | ||||
|         }, | ||||
|         { | ||||
|             "label": "Project", | ||||
|             "label": "Code Project", | ||||
|             "type": "shell", | ||||
|             "command": "code ../MET08RESIHGCV.csproj", | ||||
|             "problemMatcher": [] | ||||
|         }, | ||||
|         { | ||||
|             "label": "Git Config", | ||||
|             "label": "Code Read Me", | ||||
|             "type": "shell", | ||||
|             "command": "code ../README.md", | ||||
|             "problemMatcher": [] | ||||
|         }, | ||||
|         { | ||||
|             "label": "File-Folder-Helper AOT s X Day-Helper-2025-03-20", | ||||
|             "type": "shell", | ||||
|             "command": "L:/DevOps/Mesa_FI/File-Folder-Helper/bin/Release/net8.0/win-x64/publish/File-Folder-Helper.exe", | ||||
|             "args": [ | ||||
|                 "s", | ||||
|                 "X", | ||||
|                 "L:/DevOps/EAF-Mesa-Integration/MET08RESIHGCV", | ||||
|                 "Day-Helper-2025-03-20", | ||||
|                 "false", | ||||
|                 "4" | ||||
|             ], | ||||
|             "problemMatcher": [] | ||||
|         }, | ||||
|         { | ||||
|             "label": "Code Git Config", | ||||
|             "type": "shell", | ||||
|             "command": "code ../.git/config", | ||||
|             "problemMatcher": [] | ||||
|  | ||||
| @ -14,7 +14,7 @@ namespace Adaptation.FileHandlers.APC; | ||||
| public class FileRead : Shared.FileRead, IFileRead | ||||
| { | ||||
|  | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<Shared.Metrology.WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|         base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null) | ||||
|     { | ||||
|         _MinFileLength = 10; | ||||
| @ -120,15 +120,15 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|     private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime) | ||||
|     { | ||||
|         Tuple<string, Test[], JsonElement[], List<FileInfo>> results; | ||||
|         Tuple<string, string[], string[]> pdsf = ProcessDataStandardFormat.GetLogisticsColumnsAndBody(reportFullPath); | ||||
|         _Logistics = new Logistics(reportFullPath, pdsf.Item1); | ||||
|         ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath); | ||||
|         _Logistics = new Logistics(reportFullPath, processDataStandardFormat); | ||||
|         SetFileParameterLotIDToLogisticsMID(); | ||||
|         JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(pdsf); | ||||
|         JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(processDataStandardFormat); | ||||
|         List<Shared.Properties.IDescription> descriptions = GetDuplicatorDescriptions(jsonElements); | ||||
|         Test[] tests = (from l in descriptions select (Test)l.Test).ToArray(); | ||||
|         if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0) | ||||
|             FileCopy(reportFullPath, dateTime, descriptions); | ||||
|         results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(pdsf.Item1, tests, jsonElements, new List<FileInfo>()); | ||||
|         results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(string.Join(Environment.NewLine, processDataStandardFormat.Logistics), tests, jsonElements, new List<FileInfo>()); | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|  | ||||
| @ -18,7 +18,7 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|     private readonly string _JobIdParentDirectory; | ||||
|     private readonly string _JobIdArchiveParentDirectory; | ||||
|  | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<Shared.Metrology.WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|         base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null) | ||||
|     { | ||||
|         _MinFileLength = 10; | ||||
| @ -120,9 +120,10 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|         if (dateTime == DateTime.MinValue) | ||||
|             throw new ArgumentNullException(nameof(dateTime)); | ||||
|         string logisticsSequence = _Logistics.Sequence.ToString(); | ||||
|         string day = $"{_Logistics.DateTimeFromSequence:yyyy-MM-dd}"; | ||||
|         string weekOfYear = _Calendar.GetWeekOfYear(_Logistics.DateTimeFromSequence, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00"); | ||||
|         string weekDirectory = $"{_Logistics.DateTimeFromSequence:yyyy}_Week_{weekOfYear}{@"\"}{_Logistics.DateTimeFromSequence:yyyy-MM-dd}"; | ||||
|         string destinationArchiveDirectory = Path.Combine(_JobIdArchiveParentDirectory, _Logistics.JobID, weekDirectory); | ||||
|         string weekDirectory = $"{_Logistics.DateTimeFromSequence:yyyy}_Week_{weekOfYear}"; | ||||
|         string destinationArchiveDirectory = Path.Combine(_JobIdArchiveParentDirectory, _Logistics.JobID, weekDirectory, day); | ||||
|         if (!Directory.Exists(destinationArchiveDirectory)) | ||||
|             _ = Directory.CreateDirectory(destinationArchiveDirectory); | ||||
|         string jobIdDirectory = Path.Combine(_JobIdParentDirectory, _Logistics.JobID); | ||||
| @ -144,15 +145,15 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|     private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime) | ||||
|     { | ||||
|         Tuple<string, Test[], JsonElement[], List<FileInfo>> results; | ||||
|         Tuple<string, string[], string[]> pdsf = ProcessDataStandardFormat.GetLogisticsColumnsAndBody(reportFullPath); | ||||
|         _Logistics = new Logistics(reportFullPath, pdsf.Item1); | ||||
|         ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath); | ||||
|         _Logistics = new Logistics(reportFullPath, processDataStandardFormat); | ||||
|         SetFileParameterLotIDToLogisticsMID(); | ||||
|         JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(pdsf); | ||||
|         JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(processDataStandardFormat); | ||||
|         List<Shared.Properties.IDescription> descriptions = GetDuplicatorDescriptions(jsonElements); | ||||
|         Test[] tests = (from l in descriptions select (Test)l.Test).ToArray(); | ||||
|         if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0) | ||||
|             MoveArchive(reportFullPath, dateTime); | ||||
|         results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(pdsf.Item1, tests, jsonElements, new List<FileInfo>()); | ||||
|         results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(string.Join(Environment.NewLine, processDataStandardFormat.Logistics), tests, jsonElements, new List<FileInfo>()); | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|  | ||||
| @ -9,7 +9,7 @@ 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, int? connectionCount) | ||||
|     internal static IFileRead Get(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<Shared.Metrology.WS.Results>> staticRuns, bool useCyclicalForDescription, int? connectionCount) | ||||
|     { | ||||
|         IFileRead result = cellInstanceConnectionName switch | ||||
|         { | ||||
| @ -22,9 +22,11 @@ public class CellInstanceConnectionName | ||||
|             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(pdsf) => new pdsf.FileRead(smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null), | ||||
|             nameof(pcl) => new pcl.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(SPaCe) => new SPaCe.FileRead(smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null), | ||||
|             nameof(TransmissionControlProtocol) => new TransmissionControlProtocol.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,7 +23,7 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|     private int _LastDummyRunIndex; | ||||
|     private readonly string[] _CellNames; | ||||
|  | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<Shared.Metrology.WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|         base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null) | ||||
|     { | ||||
|         _MinFileLength = 10; | ||||
|  | ||||
| @ -14,7 +14,7 @@ namespace Adaptation.FileHandlers.IQSSi; | ||||
| public class FileRead : Shared.FileRead, IFileRead | ||||
| { | ||||
|  | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<Shared.Metrology.WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|         base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null) | ||||
|     { | ||||
|         _MinFileLength = 10; | ||||
| @ -103,7 +103,7 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|     private void FileCopy<T>(string reportFullPath, DateTime dateTime, List<T> descriptions) where T : Shared.Properties.IDescription | ||||
|     private void WriteFile<T>(string reportFullPath, DateTime dateTime, List<T> descriptions) where T : Shared.Properties.IDescription | ||||
|     { | ||||
|         bool isDummyRun = false; | ||||
|         string successDirectory = string.Empty; | ||||
| @ -111,23 +111,24 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|         string duplicateDirectory = Path.Combine(_FileConnectorConfiguration.SourceFileLocation, _CellInstanceName); | ||||
|         if (!Directory.Exists(duplicateDirectory)) | ||||
|             _ = Directory.CreateDirectory(duplicateDirectory); | ||||
|         string duplicateFile = Path.Combine(duplicateDirectory, Path.GetFileName(reportFullPath)); | ||||
|         File.Copy(reportFullPath, duplicateFile, overwrite: true); | ||||
|         string duplicateFile = Path.Combine(duplicateDirectory, $"{Path.GetFileName(reportFullPath)}.xml"); | ||||
|         string xml = ProcessDataStandardFormat.GetXml(reportFullPath); | ||||
|         File.WriteAllText(duplicateFile, xml); | ||||
|         WaitForFileConsumption(dateTime, descriptions, isDummyRun, successDirectory, duplicateDirectory, collection, duplicateFile); | ||||
|     } | ||||
|  | ||||
|     private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime) | ||||
|     { | ||||
|         Tuple<string, Test[], JsonElement[], List<FileInfo>> results; | ||||
|         Tuple<string, string[], string[]> pdsf = ProcessDataStandardFormat.GetLogisticsColumnsAndBody(reportFullPath); | ||||
|         _Logistics = new Logistics(reportFullPath, pdsf.Item1); | ||||
|         ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath); | ||||
|         _Logistics = new Logistics(reportFullPath, processDataStandardFormat); | ||||
|         SetFileParameterLotIDToLogisticsMID(); | ||||
|         JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(pdsf); | ||||
|         JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(processDataStandardFormat); | ||||
|         List<Shared.Properties.IDescription> descriptions = GetDuplicatorDescriptions(jsonElements); | ||||
|         Test[] tests = (from l in descriptions select (Test)l.Test).ToArray(); | ||||
|         if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0) | ||||
|             FileCopy(reportFullPath, dateTime, descriptions); | ||||
|         results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(pdsf.Item1, tests, jsonElements, new List<FileInfo>()); | ||||
|             WriteFile(reportFullPath, dateTime, descriptions); | ||||
|         results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(string.Join(Environment.NewLine, processDataStandardFormat.Logistics), tests, jsonElements, new List<FileInfo>()); | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|  | ||||
| @ -19,7 +19,7 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|  | ||||
|     private readonly HttpClient _HttpClient; | ||||
|  | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<Shared.Metrology.WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|         base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null) | ||||
|     { | ||||
|         _MinFileLength = 10; | ||||
| @ -159,12 +159,12 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|     private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime) | ||||
|     { | ||||
|         Tuple<string, Test[], JsonElement[], List<FileInfo>> results; | ||||
|         Tuple<string, string[], string[]> pdsf = ProcessDataStandardFormat.GetLogisticsColumnsAndBody(reportFullPath); | ||||
|         _Logistics = new Logistics(reportFullPath, pdsf.Item1); | ||||
|         ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath); | ||||
|         _Logistics = new Logistics(reportFullPath, processDataStandardFormat); | ||||
|         SetFileParameterLotIDToLogisticsMID(); | ||||
|         if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0) | ||||
|             ReWriteFile(reportFullPath, dateTime); | ||||
|         results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(pdsf.Item1, Array.Empty<Test>(), Array.Empty<JsonElement>(), new List<FileInfo>()); | ||||
|         results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(string.Join(Environment.NewLine, _Logistics.Logistics1), Array.Empty<Test>(), Array.Empty<JsonElement>(), new List<FileInfo>()); | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|  | ||||
| @ -5,17 +5,75 @@ using Adaptation.Shared.Duplicator; | ||||
| using Adaptation.Shared.Methods; | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.Collections.ObjectModel; | ||||
| using System.IO; | ||||
| using System.Linq; | ||||
| using System.Text; | ||||
| using System.Text.Json; | ||||
| using System.Threading; | ||||
|  | ||||
| namespace Adaptation.FileHandlers.MoveMatchingFiles; | ||||
|  | ||||
| #nullable enable | ||||
|  | ||||
| public class FileRead : Shared.FileRead, IFileRead | ||||
| { | ||||
|  | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|     internal class PreWith | ||||
|     { | ||||
|  | ||||
|         internal string ErrFile { get; private set; } | ||||
|         internal string CheckFile { get; private set; } | ||||
|         internal string MatchingFile { get; private set; } | ||||
|         internal string CheckDirectory { get; private set; } | ||||
|         internal string NoWaitDirectory { get; private set; } | ||||
|  | ||||
|         internal PreWith(string checkDirectory, | ||||
|                          string checkFile, | ||||
|                          string errFile, | ||||
|                          string matchingFile, | ||||
|                          string noWaitDirectory) | ||||
|         { | ||||
|             ErrFile = errFile; | ||||
|             CheckFile = checkFile; | ||||
|             MatchingFile = matchingFile; | ||||
|             CheckDirectory = checkDirectory; | ||||
|             NoWaitDirectory = noWaitDirectory; | ||||
|         } | ||||
|  | ||||
|     } | ||||
|  | ||||
|     internal class Pre | ||||
|     { | ||||
|  | ||||
|         internal string MatchingFile { get; private set; } | ||||
|         internal string CheckFile { get; private set; } | ||||
|  | ||||
|         internal Pre(string matchingFile, string checkFile) | ||||
|         { | ||||
|             MatchingFile = matchingFile; | ||||
|             CheckFile = checkFile; | ||||
|         } | ||||
|  | ||||
|     } | ||||
|  | ||||
|     internal class Post | ||||
|     { | ||||
|  | ||||
|         internal string ErrFile { get; private set; } | ||||
|         internal string CheckFile { get; private set; } | ||||
|  | ||||
|         internal Post(string checkFile, string errFile) | ||||
|         { | ||||
|             ErrFile = errFile; | ||||
|             CheckFile = checkFile; | ||||
|         } | ||||
|  | ||||
|     } | ||||
|  | ||||
|     private readonly ProcessDataStandardFormatMapping _ProcessDataStandardFormatMapping; | ||||
|  | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<Shared.Metrology.WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|         base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null) | ||||
|     { | ||||
|         _MinFileLength = 10; | ||||
| @ -27,6 +85,12 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|             throw new Exception(cellInstanceConnectionName); | ||||
|         if (!_IsDuplicator) | ||||
|             throw new Exception(cellInstanceConnectionName); | ||||
|         string processDataStandardFormatMappingOldColumnNames = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "Process.Data.Standard.Format.Mapping.Old.Column.Names"); | ||||
|         string processDataStandardFormatMappingNewColumnNames = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "Process.Data.Standard.Format.Mapping.New.Column.Names"); | ||||
|         string processDataStandardFormatMappingColumnIndices = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "Process.Data.Standard.Format.Mapping.Column.Indices"); | ||||
|         _ProcessDataStandardFormatMapping = ProcessDataStandardFormatMapping.Get(processDataStandardFormatMappingOldColumnNames, | ||||
|                                                                                  processDataStandardFormatMappingNewColumnNames, | ||||
|                                                                                  processDataStandardFormatMappingColumnIndices); | ||||
|     } | ||||
|  | ||||
|     void IFileRead.Move(Tuple<string, Test[], JsonElement[], List<FileInfo>> extractResults, Exception exception) | ||||
| @ -41,7 +105,8 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|         Move(extractResults); | ||||
|     } | ||||
|  | ||||
|     void IFileRead.WaitForThread() => WaitForThread(thread: null, threadExceptions: null); | ||||
|     void IFileRead.WaitForThread() => | ||||
|         WaitForThread(thread: null, threadExceptions: null); | ||||
|  | ||||
|     string IFileRead.GetEventDescription() | ||||
|     { | ||||
| @ -88,7 +153,7 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|         DateTime dateTime = DateTime.Now; | ||||
|         results = GetExtractResult(reportFullPath, dateTime); | ||||
|         if (results.Item3 is null) | ||||
|             results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(results.Item1, Array.Empty<Test>(), JsonSerializer.Deserialize<JsonElement[]>("[]"), results.Item4); | ||||
|             results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(results.Item1, Array.Empty<Test>(), JsonSerializer.Deserialize<JsonElement[]>("[]") ?? throw new Exception(), results.Item4); | ||||
|         if (results.Item3.Length > 0 && _IsEAFHosted) | ||||
|             WritePDSF(this, results.Item3); | ||||
|         UpdateLastTicksDuration(DateTime.Now.Ticks - dateTime.Ticks); | ||||
| @ -104,7 +169,33 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|     private static List<string> GetSearchDirectories(int numberLength, string parentDirectory) | ||||
|     private static ReadOnlyCollection<PreWith> GetPreWithCollection(ReadOnlyCollection<Pre> preCollection) | ||||
|     { | ||||
|         List<PreWith> results = new(); | ||||
|         string errFile; | ||||
|         PreWith preWith; | ||||
|         string? checkDirectory; | ||||
|         string noWaitDirectory; | ||||
|         foreach (Pre pre in preCollection) | ||||
|         { | ||||
|             errFile = string.Concat(pre.CheckFile, ".err"); | ||||
|             checkDirectory = Path.GetDirectoryName(pre.CheckFile); | ||||
|             if (string.IsNullOrEmpty(checkDirectory)) | ||||
|                 continue; | ||||
|             if (!Directory.Exists(checkDirectory)) | ||||
|                 _ = Directory.CreateDirectory(checkDirectory); | ||||
|             noWaitDirectory = Path.Combine(checkDirectory, "NoWaitDirectory"); | ||||
|             preWith = new(checkDirectory: checkDirectory, | ||||
|                           checkFile: pre.CheckFile, | ||||
|                           errFile: errFile, | ||||
|                           matchingFile: pre.MatchingFile, | ||||
|                           noWaitDirectory: noWaitDirectory); | ||||
|             results.Add(preWith); | ||||
|         } | ||||
|         return results.AsReadOnly(); | ||||
|     } | ||||
|  | ||||
|     private static ReadOnlyCollection<string> GetSearchDirectories(int numberLength, string parentDirectory) | ||||
|     { | ||||
|         List<string> results = new(); | ||||
|         string[] directories = Directory.GetDirectories(parentDirectory, "*", SearchOption.TopDirectoryOnly); | ||||
| @ -115,10 +206,138 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|             results.Add(directory); | ||||
|         } | ||||
|         results.Sort(); | ||||
|         return results.AsReadOnly(); | ||||
|     } | ||||
|  | ||||
|     private static void CreatePointerFile(int numberLength, string parentDirectory, ReadOnlyCollection<string> matchingFiles) | ||||
|     { | ||||
|         string checkFile; | ||||
|         string writeFile; | ||||
|         string? directoryName; | ||||
|         int parentDirectoryLength = parentDirectory.Length; | ||||
|         foreach (string matchingFile in matchingFiles) | ||||
|         { | ||||
|             directoryName = Path.GetDirectoryName(matchingFile); | ||||
|             if (directoryName is null) | ||||
|                 continue; | ||||
|             checkFile = $"{matchingFile[0]}{directoryName.Substring(parentDirectoryLength + numberLength + 1)}"; | ||||
|             writeFile = Path.Combine(parentDirectory, $"{directoryName.Substring(parentDirectory.Length + 1, numberLength)}.txt"); | ||||
|             if (File.Exists(writeFile)) | ||||
|                 continue; | ||||
|             File.AppendAllLines(writeFile, new string[] { parentDirectory, matchingFile, directoryName, checkFile }); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static ReadOnlyCollection<Pre> GetPreCollection(int numberLength, string parentDirectory, ReadOnlyCollection<string> matchingFiles) | ||||
|     { | ||||
|         List<Pre> results = new(); | ||||
|         Pre pre; | ||||
|         string checkFile; | ||||
|         int parentDirectoryLength = parentDirectory.Length; | ||||
|         foreach (string matchingFile in matchingFiles) | ||||
|         { | ||||
|             checkFile = $"{matchingFile[0]}{matchingFile.Substring(parentDirectoryLength + numberLength + 1)}"; | ||||
|             pre = new(matchingFile, checkFile); | ||||
|             results.Add(pre); | ||||
|         } | ||||
|         return results.AsReadOnly(); | ||||
|     } | ||||
|  | ||||
|     private void MoveCollection(DateTime dateTime, ProcessDataStandardFormat processDataStandardFormat, ReadOnlyCollection<PreWith> preWithCollection) | ||||
|     { | ||||
|         ReadOnlyCollection<Post> postCollection = GetPostCollection(dateTime, processDataStandardFormat, preWithCollection); | ||||
|         if (postCollection.Count != 0) | ||||
|         { | ||||
|             Thread.Sleep(500); | ||||
|             StringBuilder stringBuilder = new(); | ||||
|             foreach (Post post in postCollection) | ||||
|             { | ||||
|                 if (File.Exists(post.ErrFile)) | ||||
|                     _ = stringBuilder.AppendLine(File.ReadAllText(post.ErrFile)); | ||||
|                 if (File.Exists(post.CheckFile)) | ||||
|                     _ = stringBuilder.AppendLine($"<{post.CheckFile}> was not consumed by the end!"); | ||||
|             } | ||||
|             if (stringBuilder.Length > 0) | ||||
|                 throw new Exception(stringBuilder.ToString()); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private ReadOnlyCollection<Post> GetPostCollection(DateTime dateTime, ProcessDataStandardFormat processDataStandardFormat, ReadOnlyCollection<PreWith> preWithCollection) | ||||
|     { | ||||
|         List<Post> results = new(); | ||||
|         Post post; | ||||
|         long preWait; | ||||
|         foreach (PreWith preWith in preWithCollection) | ||||
|         { | ||||
|             if (!_IsEAFHosted) | ||||
|                 continue; | ||||
|             if (!_StaticRuns.TryGetValue(_Logistics.Sequence, out List<Shared.Metrology.WS.Results>? wsResults)) | ||||
|                 wsResults = null; | ||||
|             if (processDataStandardFormat.InputPDSF is null) | ||||
|                 File.Move(preWith.MatchingFile, preWith.CheckFile); | ||||
|             else | ||||
|             { | ||||
|                 ProcessDataStandardFormat.Write(preWith.CheckFile, processDataStandardFormat, wsResults); | ||||
|                 File.Delete(preWith.MatchingFile); | ||||
|             } | ||||
|             if (Directory.Exists(preWith.NoWaitDirectory)) | ||||
|             { | ||||
|                 post = new(preWith.CheckFile, preWith.ErrFile); | ||||
|                 results.Add(post); | ||||
|                 continue; | ||||
|             } | ||||
|             if (_FileConnectorConfiguration?.FileHandleWaitTime is null) | ||||
|                 preWait = DateTime.Now.AddMilliseconds(1234).Ticks; | ||||
|             else | ||||
|                 preWait = DateTime.Now.AddMilliseconds(_FileConnectorConfiguration.FileHandleWaitTime.Value).Ticks; | ||||
|             for (short i = 0; i < short.MaxValue; i++) | ||||
|             { | ||||
|                 if (DateTime.Now.Ticks > preWait) | ||||
|                     break; | ||||
|                 Thread.Sleep(500); | ||||
|             } | ||||
|             for (int i = 0; i < int.MaxValue; i++) | ||||
|             { | ||||
|                 if (File.Exists(preWith.ErrFile)) | ||||
|                     throw new Exception(File.ReadAllText(preWith.ErrFile)); | ||||
|                 if (!File.Exists(preWith.CheckFile)) | ||||
|                     break; | ||||
|                 if (new TimeSpan(DateTime.Now.Ticks - dateTime.Ticks).TotalSeconds > _BreakAfterSeconds) | ||||
|                     throw new Exception($"Not all files were consumed after {_BreakAfterSeconds} second(s)!"); | ||||
|                 Thread.Sleep(500); | ||||
|             } | ||||
|         } | ||||
|         return results.AsReadOnly(); | ||||
|     } | ||||
|  | ||||
|     private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime) | ||||
|     { | ||||
|         Tuple<string, Test[], JsonElement[], List<FileInfo>> results = new(string.Empty, Array.Empty<Test>(), Array.Empty<JsonElement>(), new List<FileInfo>()); | ||||
|         ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath, _ProcessDataStandardFormatMapping); | ||||
|         _Logistics = new Logistics(reportFullPath, processDataStandardFormat); | ||||
|         if (!_IsEAFHosted) | ||||
|             ProcessDataStandardFormat.Write("../../.pdsf", processDataStandardFormat, wsResults: null); | ||||
|         SetFileParameterLotIDToLogisticsMID(); | ||||
|         int numberLength = 2; | ||||
|         long ticks = dateTime.Ticks; | ||||
|         string parentParentDirectory = GetParentParent(reportFullPath); | ||||
|         ReadOnlyCollection<string> searchDirectories = GetSearchDirectories(numberLength, parentParentDirectory); | ||||
|         ReadOnlyCollection<string> matchingFiles = GetMatchingFiles(ticks, reportFullPath, searchDirectories); | ||||
|         if (matchingFiles.Count != searchDirectories.Count) | ||||
|             throw new Exception($"Didn't find all files after {_BreakAfterSeconds} second(s)!"); | ||||
|         if (_IsEAFHosted) | ||||
|         { | ||||
|             try | ||||
|             { CreatePointerFile(numberLength, parentParentDirectory, matchingFiles); } | ||||
|             catch (Exception) { } | ||||
|         } | ||||
|         ReadOnlyCollection<Pre> preCollection = GetPreCollection(numberLength, parentParentDirectory, matchingFiles); | ||||
|         ReadOnlyCollection<PreWith> preWithCollection = GetPreWithCollection(preCollection); | ||||
|         MoveCollection(dateTime, processDataStandardFormat, preWithCollection); | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|     private List<string> GetMatchingFiles(long ticks, string reportFullPath, List<string> searchDirectories) | ||||
|     private ReadOnlyCollection<string> GetMatchingFiles(long ticks, string reportFullPath, ReadOnlyCollection<string> searchDirectories) | ||||
|     { | ||||
|         List<string> results = new(); | ||||
|         string[] found; | ||||
| @ -137,129 +356,7 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|                     break; | ||||
|             } | ||||
|         } | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|     private static List<(string matchingFile, string checkFile)> GetCollection(int numberLength, string parentDirectory, List<string> matchingFiles) | ||||
|     { | ||||
|         List<(string matchingFile, string checkFile)> results = new(); | ||||
|         string checkFile; | ||||
|         int parentDirectoryLength = parentDirectory.Length; | ||||
|         foreach (string matchingFile in matchingFiles) | ||||
|         { | ||||
|             checkFile = $"{matchingFile[0]}{matchingFile.Substring(parentDirectoryLength + numberLength + 1)}"; | ||||
|             results.Add(new(matchingFile, checkFile)); | ||||
|         } | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|     private static List<(string, string, string, string, string)> GetCollection(List<(string matchingFile, string checkFile)> collection) | ||||
|     { | ||||
|         List<(string, string, string, string, string)> results = new(); | ||||
|         string errFile; | ||||
|         string checkDirectory; | ||||
|         string noWaitDirectory; | ||||
|         foreach ((string matchingFile, string checkFile) in collection) | ||||
|         { | ||||
|             errFile = string.Concat(checkFile, ".err"); | ||||
|             checkDirectory = Path.GetDirectoryName(checkFile); | ||||
|             if (!Directory.Exists(checkDirectory)) | ||||
|                 _ = Directory.CreateDirectory(checkDirectory); | ||||
|             noWaitDirectory = Path.Combine(checkDirectory, "NoWaitDirectory"); | ||||
|             results.Add(new(matchingFile, checkFile, errFile, checkDirectory, noWaitDirectory)); | ||||
|         } | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|     private void MoveCollection(DateTime dateTime, List<(string matchingFile, string checkFile)> collection) | ||||
|     { | ||||
|         long preWait; | ||||
|         List<(string checkFile, string errFile)> postCollection = new(); | ||||
|         foreach ((string matchingFile, string checkFile, string errFile, string checkDirectory, string noWaitDirectory) in GetCollection(collection)) | ||||
|         { | ||||
|             File.Move(matchingFile, checkFile); | ||||
|             if (Directory.Exists(noWaitDirectory)) | ||||
|             { | ||||
|                 postCollection.Add(new(checkFile, errFile)); | ||||
|                 continue; | ||||
|             } | ||||
|             if (_FileConnectorConfiguration?.FileHandleWaitTime is null) | ||||
|                 preWait = DateTime.Now.AddMilliseconds(1234).Ticks; | ||||
|             else | ||||
|                 preWait = DateTime.Now.AddMilliseconds(_FileConnectorConfiguration.FileHandleWaitTime.Value).Ticks; | ||||
|             for (short i = 0; i < short.MaxValue; i++) | ||||
|             { | ||||
|                 if (DateTime.Now.Ticks > preWait) | ||||
|                     break; | ||||
|                 Thread.Sleep(500); | ||||
|             } | ||||
|             for (int i = 0; i < int.MaxValue; i++) | ||||
|             { | ||||
|                 if (File.Exists(errFile)) | ||||
|                     throw new Exception(File.ReadAllText(errFile)); | ||||
|                 if (!File.Exists(checkFile)) | ||||
|                     break; | ||||
|                 if (new TimeSpan(DateTime.Now.Ticks - dateTime.Ticks).TotalSeconds > _BreakAfterSeconds) | ||||
|                     throw new Exception($"Not all files were consumed after {_BreakAfterSeconds} second(s)!"); | ||||
|                 Thread.Sleep(500); | ||||
|             } | ||||
|         } | ||||
|         if (postCollection.Count != 0) | ||||
|         { | ||||
|             Thread.Sleep(500); | ||||
|             StringBuilder stringBuilder = new(); | ||||
|             foreach ((string checkFile, string errFile) in postCollection) | ||||
|             { | ||||
|                 if (File.Exists(errFile)) | ||||
|                     _ = stringBuilder.AppendLine(File.ReadAllText(errFile)); | ||||
|                 if (File.Exists(checkFile)) | ||||
|                     _ = stringBuilder.AppendLine($"<{checkFile}> was not consumed by the end!"); | ||||
|             } | ||||
|             if (stringBuilder.Length > 0) | ||||
|                 throw new Exception(stringBuilder.ToString()); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static void CreatePointerFile(int numberLength, string parentDirectory, List<string> matchingFiles) | ||||
|     { | ||||
| #nullable enable | ||||
|         string checkFile; | ||||
|         string writeFile; | ||||
|         string? directoryName; | ||||
|         int parentDirectoryLength = parentDirectory.Length; | ||||
|         foreach (string matchingFile in matchingFiles) | ||||
|         { | ||||
|             directoryName = Path.GetDirectoryName(matchingFile); | ||||
|             if (directoryName is null) | ||||
|                 continue; | ||||
|             checkFile = $"{matchingFile[0]}{directoryName.Substring(parentDirectoryLength + numberLength + 1)}"; | ||||
|             writeFile = Path.Combine(parentDirectory, $"{directoryName.Substring(parentDirectory.Length + 1, numberLength)}.txt"); | ||||
|             if (File.Exists(writeFile)) | ||||
|                 continue; | ||||
|             File.AppendAllLines(writeFile, new string[] { parentDirectory, matchingFile, directoryName, checkFile }); | ||||
|         } | ||||
| #nullable disable | ||||
|     } | ||||
|  | ||||
|     private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime) | ||||
|     { | ||||
|         Tuple<string, Test[], JsonElement[], List<FileInfo>> results = new(string.Empty, null, null, new List<FileInfo>()); | ||||
|         Tuple<string, string[], string[]> pdsf = ProcessDataStandardFormat.GetLogisticsColumnsAndBody(reportFullPath); | ||||
|         _Logistics = new Logistics(reportFullPath, pdsf.Item1); | ||||
|         SetFileParameterLotIDToLogisticsMID(); | ||||
|         int numberLength = 2; | ||||
|         long ticks = dateTime.Ticks; | ||||
|         string parentParentDirectory = GetParentParent(reportFullPath); | ||||
|         List<string> searchDirectories = GetSearchDirectories(numberLength, parentParentDirectory); | ||||
|         List<string> matchingFiles = GetMatchingFiles(ticks, reportFullPath, searchDirectories); | ||||
|         if (matchingFiles.Count != searchDirectories.Count) | ||||
|             throw new Exception($"Didn't find all files after {_BreakAfterSeconds} second(s)!"); | ||||
|         try | ||||
|         { CreatePointerFile(numberLength, parentParentDirectory, matchingFiles); } | ||||
|         catch (Exception) { } | ||||
|         List<(string matchingFile, string checkFile)> collection = GetCollection(numberLength, parentParentDirectory, matchingFiles); | ||||
|         MoveCollection(dateTime, collection); | ||||
|         return results; | ||||
|         return results.AsReadOnly(); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @ -6,11 +6,9 @@ using Adaptation.Shared.Methods; | ||||
| using Adaptation.Shared.Metrology; | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.Collections.ObjectModel; | ||||
| using System.Globalization; | ||||
| using System.IO; | ||||
| using System.Linq; | ||||
| using System.Text; | ||||
| using System.Text.Json; | ||||
|  | ||||
| namespace Adaptation.FileHandlers.OpenInsight; | ||||
| @ -18,16 +16,12 @@ namespace Adaptation.FileHandlers.OpenInsight; | ||||
| public class FileRead : Shared.FileRead, IFileRead | ||||
| { | ||||
|  | ||||
|     private int _LastIndex; | ||||
|     private readonly string _IqsConnectionString; | ||||
|     private readonly string _OpenInsightFilePattern; | ||||
|     private readonly string _OpenInsightApiECDirectory; | ||||
|     private readonly ReadOnlyCollection<ModelObjectParameterDefinition> _IQSCopyCollection; | ||||
|  | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|         base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null) | ||||
|     { | ||||
|         _LastIndex = -1; | ||||
|         _MinFileLength = 10; | ||||
|         _Logistics = new(this); | ||||
|         _NullData = string.Empty; | ||||
| @ -37,9 +31,7 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|             throw new Exception(cellInstanceConnectionName); | ||||
|         if (!_IsDuplicator) | ||||
|             throw new Exception(cellInstanceConnectionName); | ||||
|         _IQSCopyCollection = new(GetProperties(cellInstanceConnectionName, modelObjectParameters, "IQS.Copy.")); | ||||
|         _IqsConnectionString = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "IQS.ConnectionString"); | ||||
|         _OpenInsightFilePattern = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "OpenInsight.FilePattern"); | ||||
|         _OpenInsightApiECDirectory = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "OpenInsight.Api.EC.Directory"); | ||||
|     } | ||||
|  | ||||
| @ -118,151 +110,62 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|     internal static string GetLines(Logistics logistics, List<pcl.Description> descriptions) | ||||
|     private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime) | ||||
|     { | ||||
|         StringBuilder results = new(); | ||||
|         char del = '\t'; | ||||
|         pcl.Description x = descriptions[0]; | ||||
|         _ = results.Append(x.UniqueId).Append(del). | ||||
|             Append(logistics.MesEntity).Append(del). | ||||
|             Append(x.Reactor).Append(del). | ||||
|             Append(x.RDS).Append(del). | ||||
|             Append(x.PSN).Append(del). | ||||
|             Append(x.Layer).Append(del). | ||||
|             Append(x.Zone).Append(del). | ||||
|             Append(x.Wafer).Append(del). | ||||
|             Append(x.Lot).Append(del). | ||||
|             Append(x.Plan).Append(del). | ||||
|             Append(x.Date).Append(del). | ||||
|             Append(x.WaferSize).Append(del). | ||||
|             Append(x.Ccomp).Append(del). | ||||
|             Append(x.Area).Append(del). | ||||
|             Append(x.CondType).Append(del). | ||||
|             Append(x.Model).Append(del). | ||||
|             Append(x.StartVoltage).Append(del). | ||||
|             Append(x.StopVoltage).Append(del). | ||||
|             Append(x.RampRate).Append(del). | ||||
|             Append(x.GLimit.Replace(" µ", string.Empty)).Append(del). | ||||
|             Append(x.SetupFile).Append(del). | ||||
|             Append(x.SetupFile).Append(del). | ||||
|             Append(x.Folder).Append(del). | ||||
|             Append(x.Pattern).Append(del). | ||||
|             Append(x.RhoMethod).Append(del). | ||||
|             Append(x.NAvgMean).Append(del). | ||||
|             Append(x.NAvgStdDev).Append(del). | ||||
|             Append(x.NAvgRadialGradient).Append(del). | ||||
|             Append(x.NslMean).Append(del). | ||||
|             Append(x.NslStdDev).Append(del). | ||||
|             Append(x.NslRadialGradient).Append(del). | ||||
|             Append(x.VdMean).Append(del). | ||||
|             Append(x.VdStdDev).Append(del). | ||||
|             Append(x.VdRadialGradient).Append(del). | ||||
|             Append(x.FlatZMean).Append(del). | ||||
|             Append(x.FlatZStdDev).Append(del). | ||||
|             Append(x.FlatZRadialGradient).Append(del). | ||||
|             Append(x.RhoAvgMean).Append(del). | ||||
|             Append(x.RhoAvgStdDev).Append(del). | ||||
|             Append(x.RhoAvgRadialGradient).Append(del). | ||||
|             Append(x.RhoslMean).Append(del). | ||||
|             Append(x.RhoslStdDev).Append(del). | ||||
|             Append(x.RhoslRadialGradient).Append(del). | ||||
|             Append(x.PhaseMean).Append(del). | ||||
|             Append(x.PhaseStdDev).Append(del). | ||||
|             Append(x.PhaseRadialGradient).Append(del). | ||||
|             Append(x.GradeMean).Append(del). | ||||
|             Append(x.GradeStdDev).Append(del). | ||||
|             Append(x.GradeRadialGradient).Append(del). | ||||
|             Append(x.RsMean).Append(del). | ||||
|             Append(x.RsStdDev).Append(del). | ||||
|             Append(x.RsRadialGradient); | ||||
|         foreach (pcl.Description description in descriptions) | ||||
|             _ = results.Append(del).Append(description.Index + 1). | ||||
|                         Append(del).Append(description.NAvg). | ||||
|                         Append(del).Append(description.Nsl). | ||||
|                         Append(del).Append(description.Vd). | ||||
|                         Append(del).Append(description.FlatZ). | ||||
|                         Append(del).Append(description.RhoAvg). | ||||
|                         Append(del).Append(description.Rhosl). | ||||
|                         Append(del).Append(description.Phase). | ||||
|                         Append(del).Append(description.Grade); | ||||
|         return results.ToString(); | ||||
|         Tuple<string, Test[], JsonElement[], List<FileInfo>> results; | ||||
|         string[] lines = File.ReadAllLines(reportFullPath); | ||||
|         ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath, lines); | ||||
|         _Logistics = new Logistics(reportFullPath, processDataStandardFormat); | ||||
|         SetFileParameterLotIDToLogisticsMID(); | ||||
|         JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(reportFullPath, lines, processDataStandardFormat); | ||||
|         List<pcl.Description> descriptions = pcl.ProcessData.GetDescriptions(jsonElements); | ||||
|         Test[] tests = (from l in descriptions select (Test)l.Test).ToArray(); | ||||
|         if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0) | ||||
|             SaveOpenInsightFile(reportFullPath, dateTime, descriptions, tests); | ||||
|         results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(string.Join(Environment.NewLine, processDataStandardFormat.Logistics), tests, jsonElements, new List<FileInfo>()); | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|     private void SaveOpenInsightFile(string reportFullPath, DateTime dateTime, string logistics, List<pcl.Description> descriptions, Test[] tests) | ||||
|     private void SaveOpenInsightFile(string reportFullPath, DateTime dateTime, List<pcl.Description> descriptions, Test[] tests) | ||||
|     { | ||||
|         string duplicateFile; | ||||
|         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"))) | ||||
|         if (descriptions.Count == 0 || tests.Length == 0) | ||||
|             duplicateFile = Path.Combine(duplicateDirectory, Path.GetFileName(reportFullPath)); | ||||
|         else | ||||
|         { | ||||
|             string parentParent = GetParentParent(_FileConnectorConfiguration.SourceFileLocation); | ||||
|             if (parentParent.Contains(_CellInstanceName)) | ||||
|                 parentParent = Path.GetDirectoryName(parentParent); | ||||
|             duplicateDirectory = Path.Combine(parentParent, "Data"); | ||||
|             if (!Directory.Exists(duplicateDirectory)) | ||||
|                 _ = Directory.CreateDirectory(duplicateDirectory); | ||||
|         } | ||||
|         string duplicateFile = Path.Combine(duplicateDirectory, Path.GetFileName(reportFullPath)); | ||||
|         if (descriptions.Count != 0 && tests.Length != 0) | ||||
|         { | ||||
|             string lines = GetLines(_Logistics, descriptions); | ||||
|             if (!string.IsNullOrEmpty(lines)) | ||||
|             long? subgroupId; | ||||
|             string fileName = Path.GetFileName(reportFullPath); | ||||
|             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 = null; | ||||
|             else | ||||
|                 (subgroupId, int? _, string _) = FromIQS.GetCommandText(_IqsConnectionString, _Logistics, descriptions[0], breakAfter, preWait); | ||||
|             if (_StaticRuns.TryGetValue(_Logistics.Sequence, out List<WS.Results> wsResults)) | ||||
|             { | ||||
|                 _LastIndex += 1; | ||||
|                 long? subGroupId; | ||||
|                 if (_LastIndex >= _IQSCopyCollection.Count) | ||||
|                     _LastIndex = 0; | ||||
|                 long breakAfter = dateTime.AddSeconds(_BreakAfterSeconds).Ticks; | ||||
|                 ModelObjectParameterDefinition modelObjectParameterDefinition = _IQSCopyCollection[_LastIndex]; | ||||
|                 long preWait = _FileConnectorConfiguration?.FileHandleWaitTime is null ? dateTime.AddMilliseconds(1234).Ticks : dateTime.AddMilliseconds(_FileConnectorConfiguration.FileHandleWaitTime.Value).Ticks; | ||||
|                 if (string.IsNullOrEmpty(descriptions[0].Reactor) || string.IsNullOrEmpty(descriptions[0].PSN)) | ||||
|                     subGroupId = null; | ||||
|                 else | ||||
|                     (subGroupId, int? _, string _) = FromIQS.GetCommandText(_IqsConnectionString, _Logistics, descriptions[0], breakAfter, preWait); | ||||
|                 if (subGroupId is null) | ||||
|                     collection.Add(new(new ScopeInfo(tests[0], _OpenInsightFilePattern), lines)); | ||||
|                 else | ||||
|                     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, _Logistics, reportFullPath, logistics, descriptions.First(), lines, subGroupId, weekOfYear); | ||||
|                 try | ||||
|                 { FromIQS.SaveCopy(_FileConnectorConfiguration.SourceFileLocation, _IqsConnectionString, modelObjectParameterDefinition.Name, modelObjectParameterDefinition.Value.Split('|')); } | ||||
|                 catch (Exception exception) | ||||
|                 { | ||||
|                     string subject = string.Concat("Exception:", _CellInstanceConnectionName); | ||||
|                     string body = string.Concat(exception.Message, Environment.NewLine, Environment.NewLine, exception.StackTrace); | ||||
|                     try | ||||
|                     { _SMTP.SendHighPriorityEmailMessage(subject, body); } | ||||
|                     catch (Exception) { } | ||||
|                 } | ||||
|                 if (wsResults is null || wsResults.Count != 1) | ||||
|                     throw new NullReferenceException($"{nameof(wsResults)} {wsResults?.Count} != 1 {_Logistics.Sequence}!"); | ||||
|                 lock (_StaticRuns) | ||||
|                     wsResults[0] = WS.Results.Get(wsResults[0], subgroupId); | ||||
|             } | ||||
|             if (!fileName.StartsWith("Viewer")) | ||||
|                 duplicateFile = Path.Combine(duplicateDirectory, $"{subgroupId} {fileName}".TrimStart()); | ||||
|             else | ||||
|                 duplicateFile = Path.Combine(duplicateDirectory, $"{$"Viewer {subgroupId}".TrimEnd()} {fileName.Replace("Viewer", string.Empty)}"); | ||||
|             string weekOfYear = _Calendar.GetWeekOfYear(_Logistics.DateTimeFromSequence, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00"); | ||||
|             FromIQS.Save(_OpenInsightApiECDirectory, _Logistics, reportFullPath, descriptions.First(), subgroupId, weekOfYear); | ||||
|         } | ||||
|         if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0) | ||||
|         { | ||||
|             File.Copy(reportFullPath, duplicateFile, overwrite: true); | ||||
|             WaitForFileConsumption(dateTime, descriptions, isDummyRun, successDirectory, duplicateDirectory, collection, duplicateFile); | ||||
|     } | ||||
|  | ||||
|     private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime) | ||||
|     { | ||||
|         Tuple<string, Test[], JsonElement[], List<FileInfo>> results; | ||||
|         Tuple<string, string[], string[]> pdsf = ProcessDataStandardFormat.GetLogisticsColumnsAndBody(reportFullPath); | ||||
|         _Logistics = new Logistics(reportFullPath, pdsf.Item1); | ||||
|         SetFileParameterLotIDToLogisticsMID(); | ||||
|         JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(pdsf); | ||||
|         List<pcl.Description> descriptions = pcl.ProcessData.GetDescriptions(jsonElements); | ||||
|         Test[] tests = (from l in descriptions select (Test)l.Test).ToArray(); | ||||
|         if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0) | ||||
|             SaveOpenInsightFile(reportFullPath, dateTime, pdsf.Item1, descriptions, tests); | ||||
|         results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(pdsf.Item1, tests, jsonElements, new List<FileInfo>()); | ||||
|         return results; | ||||
|         } | ||||
|     } | ||||
|  | ||||
| } | ||||
| @ -325,171 +325,18 @@ public class FromIQS | ||||
|         return new(result, count, commandText); | ||||
|     } | ||||
|  | ||||
|     private static string GetJson(Logistics logistics, string logisticLines, pcl.Description description) | ||||
|     internal static void Save(string openInsightApiECDirectory, Logistics logistics, string reportFullPath, pcl.Description description, long? subGroupId, string weekOfYear) | ||||
|     { | ||||
|         string result; | ||||
|         StringBuilder stringBuilder = new(); | ||||
|         var @object = new | ||||
|         { | ||||
|             description.MesEntity, | ||||
|             description.Employee, | ||||
|             description.Layer, | ||||
|             description.PSN, | ||||
|             description.RDS, | ||||
|             description.Reactor, | ||||
|             description.Recipe, | ||||
|             description.Zone, | ||||
|             logistics.DateTimeFromSequence.Ticks | ||||
|         }; | ||||
|         string[] pair; | ||||
|         string safeValue; | ||||
|         string[] segments; | ||||
|         string serializerValue; | ||||
|         foreach (string line in logisticLines.Split(new string[] { Environment.NewLine }, StringSplitOptions.None)) | ||||
|         { | ||||
|             segments = line.Split('\t'); | ||||
|             if (segments.Length < 2) | ||||
|                 continue; | ||||
|             segments = segments[1].Split(';'); | ||||
|             _ = stringBuilder.Append('{'); | ||||
|             foreach (string segment in segments) | ||||
|             { | ||||
|                 pair = segment.Split('='); | ||||
|                 if (pair.Length != 2 || pair[0].Length < 3) | ||||
|                     continue; | ||||
|                 serializerValue = JsonSerializer.Serialize(pair[1]); | ||||
|                 safeValue = serializerValue.Substring(1, serializerValue.Length - 2); | ||||
|                 _ = stringBuilder.Append('"').Append(pair[0].Substring(2)).Append('"').Append(':').Append('"').Append(safeValue).Append('"').Append(','); | ||||
|             } | ||||
|             if (stringBuilder.Length > 0) | ||||
|                 _ = stringBuilder.Remove(stringBuilder.Length - 1, 1); | ||||
|             _ = stringBuilder.Append('}').Append(','); | ||||
|         } | ||||
|         if (stringBuilder.Length > 0) | ||||
|             _ = stringBuilder.Remove(stringBuilder.Length - 1, 1); | ||||
|         _ = stringBuilder.Append(']').Append('}'); | ||||
|         _ = stringBuilder.Insert(0, ",\"Logistics\":["); | ||||
|         string json = JsonSerializer.Serialize(@object); | ||||
|         _ = stringBuilder.Insert(0, json.Substring(0, json.Length - 1)); | ||||
|         JsonElement? jsonElement = JsonSerializer.Deserialize<JsonElement>(stringBuilder.ToString()); | ||||
|         result = jsonElement is null ? "{}" : JsonSerializer.Serialize(jsonElement, new JsonSerializerOptions { WriteIndented = true }); | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
|     internal static void Save(string openInsightApiECDirectory, Logistics logistics, string reportFullPath, string logisticLines, pcl.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); | ||||
|         bool ecExists = ecPathRoot is not null && Directory.Exists(ecPathRoot); | ||||
|         string weekYear = $"{logistics.DateTimeFromSequence:yyyy}_Week_{weekOfYear}"; | ||||
|         string ecDirectory = Path.Combine(openInsightApiECDirectory, weekYear, $"-{description.PSN}", $"-{description.Reactor}", $"-{description.RDS}", $"-{subGroupId}"); | ||||
|         if (ecExists && !Directory.Exists(ecDirectory)) | ||||
|             _ = Directory.CreateDirectory(ecDirectory); | ||||
|         checkFile = Path.Combine(ecDirectory, fileName); | ||||
|         string checkFile = Path.Combine(ecDirectory, fileName); | ||||
|         if (ecExists && !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(ecDirectory, $"{logistics.DateTimeFromSequence.Ticks}.json"); | ||||
|         if (ecExists && !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 | ||||
|  | ||||
| } | ||||
| @ -19,7 +19,7 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|     private readonly string _OpenInsightMetrologyViewerAPI; | ||||
|     private readonly string _OpenInsightMetrologyViewerFileShare; | ||||
|  | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|         base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null) | ||||
|     { | ||||
|         _MinFileLength = 10; | ||||
| @ -110,10 +110,10 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|     private void SendData(string reportFullPath, DateTime dateTime, List<pcl.Description> descriptions) | ||||
|     private void SendData(string reportFullPath, DateTime dateTime, JsonElement[] jsonElements, List<pcl.Description> descriptions) | ||||
|     { | ||||
|         string checkDirectory; | ||||
|         WSRequest wsRequest = new(this, _Logistics, descriptions); | ||||
|         WSRequest wsRequest = new(this, _Logistics, jsonElements, descriptions); | ||||
|         int weekOfYear = _Calendar.GetWeekOfYear(dateTime, CalendarWeekRule.FirstDay, DayOfWeek.Sunday); | ||||
|         string directory = Path.Combine(_OpenInsightMetrologyViewerFileShare, dateTime.Year.ToString(), $"WW{weekOfYear:00}"); | ||||
|         checkDirectory = Path.Combine(directory, _Logistics.Sequence.ToString()); | ||||
| @ -121,16 +121,16 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|             _ = Directory.CreateDirectory(checkDirectory); | ||||
|         File.Copy(reportFullPath, Path.Combine(checkDirectory, Path.GetFileName(reportFullPath)), overwrite: true); | ||||
|         (string jsonResults, WS.Results wsResults) = WS.SendData(_OpenInsightMetrologyViewerAPI, _Logistics.Sequence, directory, wsRequest); | ||||
|         if (!wsResults.Success) | ||||
|             throw new Exception(wsResults.ToString()); | ||||
|         _Log.Debug(wsResults.HeaderID); | ||||
|         if (wsResults.Success is null || !wsResults.Success.Value) | ||||
|             throw new Exception(jsonResults); | ||||
|         _Log.Debug(wsResults.HeaderId); | ||||
|         lock (_StaticRuns) | ||||
|         { | ||||
|             if (!_StaticRuns.ContainsKey(_Logistics.Sequence)) | ||||
|                 _StaticRuns.Add(_Logistics.Sequence, new()); | ||||
|             _StaticRuns[_Logistics.Sequence].Add(jsonResults); | ||||
|             _StaticRuns[_Logistics.Sequence].Add(wsResults); | ||||
|         } | ||||
|         checkDirectory = Path.Combine(directory, $"-{wsResults.HeaderID}"); | ||||
|         checkDirectory = Path.Combine(directory, $"-{wsResults.HeaderId}"); | ||||
|         if (!Directory.Exists(checkDirectory)) | ||||
|             _ = Directory.CreateDirectory(checkDirectory); | ||||
|         File.Copy(reportFullPath, Path.Combine(checkDirectory, Path.GetFileName(reportFullPath)), overwrite: true); | ||||
| @ -139,15 +139,16 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|     private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime) | ||||
|     { | ||||
|         Tuple<string, Test[], JsonElement[], List<FileInfo>> results; | ||||
|         Tuple<string, string[], string[]> pdsf = ProcessDataStandardFormat.GetLogisticsColumnsAndBody(reportFullPath); | ||||
|         _Logistics = new Logistics(reportFullPath, pdsf.Item1); | ||||
|         string[] lines = File.ReadAllLines(reportFullPath); | ||||
|         ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath, lines); | ||||
|         _Logistics = new Logistics(reportFullPath, processDataStandardFormat); | ||||
|         SetFileParameterLotIDToLogisticsMID(); | ||||
|         JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(pdsf); | ||||
|         JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(reportFullPath, lines, processDataStandardFormat); | ||||
|         List<pcl.Description> descriptions = pcl.ProcessData.GetDescriptions(jsonElements); | ||||
|         Test[] tests = (from l in descriptions select (Test)l.Test).ToArray(); | ||||
|         if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0) | ||||
|             SendData(reportFullPath, dateTime, descriptions); | ||||
|         results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(pdsf.Item1, tests, jsonElements, new List<FileInfo>()); | ||||
|             SendData(reportFullPath, dateTime, jsonElements, descriptions); | ||||
|         results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(string.Join(Environment.NewLine, processDataStandardFormat.Logistics), tests, jsonElements, new List<FileInfo>()); | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|  | ||||
| @ -17,6 +17,7 @@ public class WSRequest | ||||
|     // | ||||
|  | ||||
|     public string Area { get; set; } | ||||
|     public string AttemptCounter { get; set; } | ||||
|     public string Ccomp { get; set; } | ||||
|     public string CellName { get; set; } | ||||
|     public string CondType { get; set; } | ||||
| @ -30,6 +31,7 @@ public class WSRequest | ||||
|     public string GradeRadialGradient { get; set; } | ||||
|     public string GradeStdDev { get; set; } | ||||
|     public int Id { get; set; } | ||||
|     public string IndexOf { get; set; } | ||||
|     public string Layer { get; set; } | ||||
|     public string Lot { get; set; } | ||||
|     public string Model { get; set; } | ||||
| @ -74,7 +76,7 @@ public class WSRequest | ||||
|     [Obsolete("For json")] public WSRequest() { } | ||||
|  | ||||
| #pragma warning disable IDE0060 | ||||
|     internal WSRequest(IFileRead fileRead, Logistics logistics, List<pcl.Description> descriptions, string processDataStandardFormat = null) | ||||
|     internal WSRequest(IFileRead fileRead, Logistics logistics, JsonElement[] jsonElements, List<pcl.Description> descriptions, string processDataStandardFormat = null) | ||||
| #pragma warning restore IDE0060 | ||||
|     { | ||||
|         Id = -1; | ||||
| @ -84,6 +86,7 @@ public class WSRequest | ||||
|         //Header | ||||
|         { | ||||
|             Area = x.Area; | ||||
|             AttemptCounter = x.AttemptCounter; | ||||
|             Ccomp = x.Ccomp; | ||||
|             CondType = x.CondType; | ||||
|             Date = x.Date; | ||||
| @ -95,7 +98,8 @@ public class WSRequest | ||||
|             GradeMean = x.GradeMean; | ||||
|             GradeRadialGradient = x.GradeRadialGradient; | ||||
|             GradeStdDev = x.GradeStdDev; | ||||
|             Operator = logistics.MesEntity; | ||||
|             IndexOf = x.IndexOf; | ||||
|             Operator = logistics.MesEntity; // different name | ||||
|             Layer = x.Layer; | ||||
|             Lot = x.Lot; | ||||
|             Model = x.Model; | ||||
| @ -154,8 +158,12 @@ public class WSRequest | ||||
|             Details.Add(detail); | ||||
|         } | ||||
|         Date ??= logistics.DateTimeFromSequence.ToString(); | ||||
|         if (UniqueId is null && Details.Count != 0) | ||||
|             UniqueId = Details[0].HeaderUniqueId; | ||||
|         UniqueId = $"{logistics.JobID}_{logistics.MID}_{logistics.DateTimeFromSequence:yyyyMMddHHmmssffff}"; | ||||
|         for (int i = 0; i < Details.Count; i++) | ||||
|         { | ||||
|             Details[i].HeaderUniqueId = UniqueId; | ||||
|             Details[i].UniqueId = $"{logistics.JobID}_{logistics.MID}_{logistics.DateTimeFromSequence:yyyyMMddHHmmssffff}_Item-{i + 1}"; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /// <summary> | ||||
| @ -179,29 +187,30 @@ public class WSRequest | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
|     internal static long GetHeaderId(IFileRead fileRead, Logistics logistics, string openInsightMetrologyViewerAPI, string openInsightMetrologyViewerFileShare, int weekOfYear, string json, List<pcl.Description> descriptions) | ||||
|     internal static long GetHeaderId(IFileRead fileRead, Logistics logistics, string openInsightMetrologyViewerAPI, string openInsightMetrologyViewerFileShare, int weekOfYear, WS.Results results, JsonElement[] jsonElements, List<pcl.Description> descriptions) | ||||
|     { | ||||
|         long result; | ||||
|         if (string.IsNullOrEmpty(json)) | ||||
|         if (results is not null && results.HeaderId is not null) | ||||
|             result = results.HeaderId.Value; | ||||
|         else | ||||
|         { | ||||
|             WSRequest wsRequest = new(fileRead, logistics, descriptions); | ||||
|             WSRequest wsRequest = new(fileRead, logistics, jsonElements, descriptions); | ||||
|             string directory = Path.Combine(openInsightMetrologyViewerFileShare, logistics.DateTimeFromSequence.Year.ToString(), $"WW{weekOfYear:00}"); | ||||
|             (json, WS.Results wsResults) = WS.SendData(openInsightMetrologyViewerAPI, logistics.Sequence, directory, wsRequest); | ||||
|             if (!wsResults.Success) | ||||
|             (_, WS.Results wsResults) = WS.SendData(openInsightMetrologyViewerAPI, logistics.Sequence, directory, wsRequest); | ||||
|             if (wsResults.Success is null || !wsResults.Success.Value) | ||||
|                 throw new Exception(wsResults.ToString()); | ||||
|             result = wsResults.HeaderId.Value; | ||||
|         } | ||||
|         WS.Results metrologyWSRequest = JsonSerializer.Deserialize<WS.Results>(json, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); | ||||
|         result = metrologyWSRequest.HeaderID; | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
| #pragma warning disable IDE0060 | ||||
|     internal static void PostOpenInsightMetrologyViewerAttachments(IFileRead fileRead, Logistics logistics, string openInsightMetrologyViewerAPI, string lincPDFCFileName, List<pcl.Description> descriptions, string matchDirectory, string subGroupId, long headerId, string headerIdDirectory) | ||||
|     internal static void PostOpenInsightMetrologyViewerAttachments(IFileRead fileRead, Logistics logistics, string openInsightMetrologyViewerAPI, string lincPDFCFileName, List<pcl.Description> descriptions, string matchDirectory, WS.Results results, string headerIdDirectory) | ||||
| #pragma warning restore IDE0060 | ||||
|     { | ||||
|         string[] pclFiles = Directory.GetFiles(matchDirectory, "*.pcl", SearchOption.TopDirectoryOnly); | ||||
|         if (pclFiles.Length != 1) | ||||
|             throw new Exception($"Invalid source file count for <{headerId}>!"); | ||||
|             throw new Exception($"Invalid source file count for <{results.HeaderId}>!"); | ||||
|         List<string> pdfFiles = new(); | ||||
|         pdfFiles.AddRange(Directory.GetFiles(matchDirectory, "*.pdf_old", SearchOption.TopDirectoryOnly)); | ||||
|         foreach (string pdfFile in pdfFiles) | ||||
| @ -217,7 +226,7 @@ public class WSRequest | ||||
|             throw new Exception("Invalid *.pdf file count!"); | ||||
|         List<WS.Attachment> headerAttachments = new() | ||||
|         { | ||||
|             new WS.Attachment(subGroupId, headerId, headerIdDirectory, descriptions[0].HeaderUniqueId, "Data.pdf", pdfFiles[0]) | ||||
|             new WS.Attachment(results, headerIdDirectory, $"{logistics.JobID}_{logistics.MID}_{logistics.DateTimeFromSequence:yyyyMMddHHmmssffff}", "Data.pdf", pdfFiles[0]) | ||||
|         }; | ||||
|         WS.AttachFiles(openInsightMetrologyViewerAPI, headerAttachments, dataAttachments: null); | ||||
|     } | ||||
|  | ||||
| @ -19,7 +19,7 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|     private readonly string _OpenInsightMetrologyViewerAPI; | ||||
|     private readonly string _OpenInsightMetrologyViewerFileShare; | ||||
|  | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<Shared.Metrology.WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|         base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null) | ||||
|     { | ||||
|         _MinFileLength = 10; | ||||
| @ -139,32 +139,27 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
|     private void PostOpenInsightMetrologyViewerAttachments(List<pcl.Description> descriptions) | ||||
|     private void PostOpenInsightMetrologyViewerAttachments(JsonElement[] jsonElements, List<pcl.Description> descriptions) | ||||
|     { | ||||
|         string? json; | ||||
|         string? subGroupId; | ||||
|         Shared.Metrology.WS.Results? results; | ||||
|         string jobIdDirectory = Path.Combine(Path.GetDirectoryName(_FileConnectorConfiguration.AlternateTargetFolder) ?? throw new Exception(), _Logistics.JobID); | ||||
|         if (!Directory.Exists(jobIdDirectory)) | ||||
|             _ = Directory.CreateDirectory(jobIdDirectory); | ||||
|         string[] matchDirectories = GetInProcessDirectory(jobIdDirectory); | ||||
|         if (!_StaticRuns.TryGetValue(_Logistics.Sequence, out List<string>? values)) | ||||
|             (json, subGroupId) = (null, null); | ||||
|         if (!_StaticRuns.TryGetValue(_Logistics.Sequence, out List<Shared.Metrology.WS.Results>? wsResults)) | ||||
|             results = null; | ||||
|         else | ||||
|         { | ||||
|             if (values.Count != 1) | ||||
|                 throw new Exception($"{nameof(_StaticRuns)} {values.Count} != 1 {_Logistics.Sequence}!"); | ||||
|             string[] segments = values[0].Split(new string[] { "|" }, StringSplitOptions.None); | ||||
|             json = segments[0]; | ||||
|             subGroupId = segments.Length > 1 ? segments[1] : null; | ||||
|             lock (_StaticRuns) | ||||
|                 _ = _StaticRuns.Remove(_Logistics.Sequence); | ||||
|             if (wsResults is null || wsResults.Count != 1) | ||||
|                 throw new NullReferenceException($"{nameof(wsResults)} {wsResults?.Count} != 1 {_Logistics.Sequence}!"); | ||||
|             results = wsResults[0]; | ||||
|         } | ||||
|         int weekOfYear = _Calendar.GetWeekOfYear(_Logistics.DateTimeFromSequence, CalendarWeekRule.FirstDay, DayOfWeek.Sunday); | ||||
|         long headerId = !_IsEAFHosted ? -1 : OpenInsightMetrologyViewer.WSRequest.GetHeaderId(this, _Logistics, _OpenInsightMetrologyViewerAPI, _OpenInsightMetrologyViewerFileShare, weekOfYear, json, descriptions); | ||||
|         long headerId = !_IsEAFHosted ? -1 : OpenInsightMetrologyViewer.WSRequest.GetHeaderId(this, _Logistics, _OpenInsightMetrologyViewerAPI, _OpenInsightMetrologyViewerFileShare, weekOfYear, results, jsonElements, descriptions); | ||||
|         string? headerIdDirectory = GetHeaderIdDirectory(headerId); | ||||
|         if (string.IsNullOrEmpty(headerIdDirectory)) | ||||
|             throw new Exception($"Didn't find header id directory <{headerId}>"); | ||||
|         OpenInsightMetrologyViewer.WSRequest.PostOpenInsightMetrologyViewerAttachments(this, _Logistics, _OpenInsightMetrologyViewerAPI, _LincPDFCFileName, descriptions, matchDirectories[0], subGroupId, headerId, headerIdDirectory); | ||||
|         OpenInsightMetrologyViewer.WSRequest.PostOpenInsightMetrologyViewerAttachments(this, _Logistics, _OpenInsightMetrologyViewerAPI, _LincPDFCFileName, descriptions, matchDirectories[0], results, headerIdDirectory); | ||||
|     } | ||||
|  | ||||
|     private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime) | ||||
| @ -172,15 +167,16 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|         if (dateTime == DateTime.MinValue) | ||||
|             throw new ArgumentNullException(nameof(dateTime)); | ||||
|         Tuple<string, Test[], JsonElement[], List<FileInfo>> results; | ||||
|         Tuple<string, string[], string[]> pdsf = ProcessDataStandardFormat.GetLogisticsColumnsAndBody(reportFullPath); | ||||
|         _Logistics = new Logistics(reportFullPath, pdsf.Item1); | ||||
|         string[] lines = File.ReadAllLines(reportFullPath); | ||||
|         ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath, lines); | ||||
|         _Logistics = new Logistics(reportFullPath, processDataStandardFormat); | ||||
|         SetFileParameterLotIDToLogisticsMID(); | ||||
|         JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(pdsf); | ||||
|         JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(reportFullPath, lines, processDataStandardFormat); | ||||
|         List<pcl.Description> descriptions = pcl.ProcessData.GetDescriptions(jsonElements); | ||||
|         Test[] tests = (from l in descriptions select (Test)l.Test).ToArray(); | ||||
|         if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0) | ||||
|             PostOpenInsightMetrologyViewerAttachments(descriptions); | ||||
|         results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(pdsf.Item1, tests, jsonElements, new List<FileInfo>()); | ||||
|             PostOpenInsightMetrologyViewerAttachments(jsonElements, descriptions); | ||||
|         results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(string.Join(Environment.NewLine, processDataStandardFormat.Logistics), tests, jsonElements, new List<FileInfo>()); | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|  | ||||
| @ -17,7 +17,7 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|     private readonly string _JobIdParentDirectory; | ||||
|     private readonly string _JobIdProcessParentDirectory; | ||||
|  | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<Shared.Metrology.WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|         base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null) | ||||
|     { | ||||
|         _MinFileLength = 10; | ||||
| @ -108,7 +108,7 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|     private void DirectoryMove(string reportFullPath, DateTime dateTime, List<pcl.Description> descriptions) | ||||
|     private void DirectoryMove(string reportFullPath, DateTime dateTime, JsonElement[] jsonElements, List<pcl.Description> descriptions) | ||||
|     { | ||||
|         if (dateTime == DateTime.MinValue) | ||||
|             throw new ArgumentNullException(nameof(dateTime)); | ||||
| @ -122,40 +122,68 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|             throw new Exception("Didn't find directory by logistics sequence"); | ||||
|         if (fileInfo.Exists && fileInfo.LastWriteTime < fileInfo.CreationTime) | ||||
|             File.SetLastWriteTime(reportFullPath, fileInfo.CreationTime); | ||||
|         OpenInsightMetrologyViewer.WSRequest wsRequest = new(this, _Logistics, descriptions); | ||||
|         OpenInsightMetrologyViewer.WSRequest wsRequest = new(this, _Logistics, jsonElements, descriptions); | ||||
|         JsonSerializerOptions jsonSerializerOptions = new() { WriteIndented = true }; | ||||
|         string json = JsonSerializer.Serialize(wsRequest, wsRequest.GetType(), jsonSerializerOptions); | ||||
|         string directoryName = $"{Path.GetFileName(matchDirectories[0]).Split(new string[] { logisticsSequence }, StringSplitOptions.None)[0]}{_Logistics.DateTimeFromSequence:yyyy-MM-dd_hh;mm_tt_}{DateTime.Now.Ticks - _Logistics.Sequence}"; | ||||
|         string destinationJobIdDirectory = Path.Combine(_JobIdProcessParentDirectory, _Logistics.JobID, directoryName); | ||||
|         string sequenceDirectory = Path.Combine(destinationJobIdDirectory, logisticsSequence); | ||||
|         string jsonFileName = Path.Combine(sequenceDirectory, $"{Path.GetFileNameWithoutExtension(reportFullPath)}.json"); | ||||
|         MoveMatchingFile(jobIdDirectory, matchDirectories[0]); | ||||
|         Directory.Move(matchDirectories[0], destinationJobIdDirectory); | ||||
|         if (!Directory.Exists(sequenceDirectory)) | ||||
|             _ = Directory.CreateDirectory(sequenceDirectory); | ||||
|         File.Copy(reportFullPath, Path.Combine(sequenceDirectory, Path.GetFileName(reportFullPath)), overwrite: true); | ||||
|         File.WriteAllText(jsonFileName, json); | ||||
|         lock (_StaticRuns) | ||||
|             _ = _StaticRuns.Remove(_Logistics.Sequence); | ||||
|     } | ||||
|  | ||||
|     private static void MoveMatchingFile(string jobIdDirectory, string matchDirectory) | ||||
|     { | ||||
|         string checkFile; | ||||
|         string jobIdDirectoryFileName; | ||||
|         string matchDirectoryFileName; | ||||
|         string[] jobIdDirectoryFiles = Directory.GetFiles(jobIdDirectory, "*", SearchOption.TopDirectoryOnly); | ||||
|         string[] matchDirectoryFiles = Directory.GetFiles(matchDirectory, "*", SearchOption.TopDirectoryOnly); | ||||
|         foreach (string jobIdDirectoryFile in jobIdDirectoryFiles) | ||||
|         { | ||||
|             jobIdDirectoryFileName = Path.GetFileName(jobIdDirectoryFile); | ||||
|             foreach (string matchDirectoryFile in matchDirectoryFiles) | ||||
|             { | ||||
|                 matchDirectoryFileName = Path.GetFileName(matchDirectoryFile); | ||||
|                 if (jobIdDirectoryFileName.StartsWith(matchDirectoryFileName)) | ||||
|                 { | ||||
|                     checkFile = Path.Combine(matchDirectory, jobIdDirectoryFileName); | ||||
|                     if (File.Exists(checkFile)) | ||||
|                         continue; | ||||
|                     File.Move(jobIdDirectoryFile, checkFile); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime) | ||||
|     { | ||||
|         Tuple<string, Test[], JsonElement[], List<FileInfo>> results; | ||||
|         Tuple<string, string[], string[]> pdsf = ProcessDataStandardFormat.GetLogisticsColumnsAndBody(reportFullPath); | ||||
|         _Logistics = new Logistics(reportFullPath, pdsf.Item1); | ||||
|         string[] lines = File.ReadAllLines(reportFullPath); | ||||
|         ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath, lines); | ||||
|         _Logistics = new Logistics(reportFullPath, processDataStandardFormat); | ||||
|         SetFileParameterLotIDToLogisticsMID(); | ||||
|         JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(pdsf); | ||||
|         JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(reportFullPath, lines, processDataStandardFormat); | ||||
|         List<pcl.Description> descriptions = pcl.ProcessData.GetDescriptions(jsonElements); | ||||
|         Test[] tests = (from l in descriptions select (Test)l.Test).ToArray(); | ||||
|         results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(pdsf.Item1, tests, jsonElements, new List<FileInfo>()); | ||||
|         results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(string.Join(Environment.NewLine, processDataStandardFormat.Logistics), tests, jsonElements, new List<FileInfo>()); | ||||
|         if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0) | ||||
|             DirectoryMove(reportFullPath, dateTime, descriptions); | ||||
|             DirectoryMove(reportFullPath, dateTime, jsonElements, descriptions); | ||||
|         else if (!_IsEAFHosted) | ||||
|         { | ||||
|             OpenInsightMetrologyViewer.WSRequest wsRequest = new(this, _Logistics, descriptions); | ||||
|             OpenInsightMetrologyViewer.WSRequest wsRequest = new(this, _Logistics, jsonElements, descriptions); | ||||
|             JsonSerializerOptions jsonSerializerOptions = new() { WriteIndented = true }; | ||||
|             string json = JsonSerializer.Serialize(wsRequest, wsRequest.GetType(), jsonSerializerOptions); | ||||
|             string check = JsonSerializer.Serialize(wsRequest, wsRequest.GetType(), jsonSerializerOptions); | ||||
|             string jsonFileName = Path.ChangeExtension(reportFullPath, ".json"); | ||||
|             string historicalText = File.ReadAllText(jsonFileName); | ||||
|             if (json != historicalText) | ||||
|             if (check != historicalText) | ||||
|                 throw new Exception("File doesn't match historical!"); | ||||
|         } | ||||
|         return results; | ||||
|  | ||||
| @ -14,7 +14,7 @@ namespace Adaptation.FileHandlers.SPaCe; | ||||
| public class FileRead : Shared.FileRead, IFileRead | ||||
| { | ||||
|  | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<Shared.Metrology.WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|         base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null) | ||||
|     { | ||||
|         _MinFileLength = 10; | ||||
| @ -117,15 +117,15 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|     private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime) | ||||
|     { | ||||
|         Tuple<string, Test[], JsonElement[], List<FileInfo>> results; | ||||
|         Tuple<string, string[], string[]> pdsf = ProcessDataStandardFormat.GetLogisticsColumnsAndBody(reportFullPath); | ||||
|         _Logistics = new Logistics(reportFullPath, pdsf.Item1); | ||||
|         ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath); | ||||
|         _Logistics = new Logistics(reportFullPath, processDataStandardFormat); | ||||
|         SetFileParameterLotIDToLogisticsMID(); | ||||
|         JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(pdsf); | ||||
|         JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(processDataStandardFormat); | ||||
|         List<Shared.Properties.IDescription> descriptions = GetDuplicatorDescriptions(jsonElements); | ||||
|         Test[] tests = (from l in descriptions select (Test)l.Test).ToArray(); | ||||
|         if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0) | ||||
|             FileCopy(reportFullPath, dateTime, descriptions); | ||||
|         results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(pdsf.Item1, tests, jsonElements, new List<FileInfo>()); | ||||
|         results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(string.Join(Environment.NewLine, processDataStandardFormat.Logistics), tests, jsonElements, new List<FileInfo>()); | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|  | ||||
							
								
								
									
										250
									
								
								Adaptation/FileHandlers/TransmissionControlProtocol/FileRead.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										250
									
								
								Adaptation/FileHandlers/TransmissionControlProtocol/FileRead.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,250 @@ | ||||
| using Adaptation.Eaf.Management.ConfigurationData.CellAutomation; | ||||
| using Adaptation.Ifx.Eaf.EquipmentConnector.File.Configuration; | ||||
| using Adaptation.Shared; | ||||
| using Adaptation.Shared.Duplicator; | ||||
| using Adaptation.Shared.Methods; | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.Diagnostics; | ||||
| using System.IO; | ||||
| using System.Linq; | ||||
| using System.Net.Sockets; | ||||
| using System.Reflection; | ||||
| using System.Text; | ||||
| using System.Text.Json; | ||||
| using System.Threading; | ||||
|  | ||||
| namespace Adaptation.FileHandlers.TransmissionControlProtocol; | ||||
|  | ||||
| #nullable enable | ||||
|  | ||||
| public class FileRead : Shared.FileRead, IFileRead | ||||
| { | ||||
|  | ||||
|     private readonly int _Port; | ||||
|     private readonly Timer _Timer; | ||||
|     private static Record? _Record; | ||||
|     private static long _LastWrite; | ||||
|     private readonly string _IPAddress; | ||||
|     private readonly string _RawDirectory; | ||||
|     private readonly int _DelimiterSeconds; | ||||
|     private readonly string[] _DelimiterPatterns; | ||||
|     private static readonly object _Lock = new(); | ||||
|  | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<Shared.Metrology.WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|         base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null) | ||||
|     { | ||||
|         _MinFileLength = 10; | ||||
|         _NullData = string.Empty; | ||||
|         _Logistics = new(this); | ||||
|         if (_FileParameter is null) | ||||
|             throw new Exception(cellInstanceConnectionName); | ||||
|         if (_ModelObjectParameterDefinitions is null) | ||||
|             throw new Exception(cellInstanceConnectionName); | ||||
|         if (_IsDuplicator) | ||||
|             throw new Exception(cellInstanceConnectionName); | ||||
|         string sourceFileLocation = fileConnectorConfiguration.SourceFileLocation.TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); | ||||
|         string? ipAddress = Path.GetDirectoryName(sourceFileLocation); | ||||
|         string port = Path.GetFileName(sourceFileLocation); | ||||
|         _Timer = new Timer(Callback, null, Timeout.Infinite, Timeout.Infinite); | ||||
|         _Port = int.Parse(port, System.Globalization.CultureInfo.InvariantCulture); | ||||
|         _DelimiterPatterns = fileConnectorConfiguration.SourceFileFilter.Split('*'); | ||||
|         _IPAddress = Path.GetFileName(ipAddress) ?? throw new Exception(sourceFileLocation); | ||||
|         _RawDirectory = Path.GetDirectoryName(ipAddress) ?? throw new Exception(sourceFileLocation); | ||||
|         DateTime fileAgeThresholdTimeOnly = GetFileAgeThresholdTimeOnly(_FileConnectorConfiguration.FileAgeThreshold); | ||||
|         _DelimiterSeconds = fileAgeThresholdTimeOnly.Second; | ||||
|         if (Debugger.IsAttached || fileConnectorConfiguration.PreProcessingMode == FileConnectorConfiguration.PreProcessingModeEnum.Process || _FileConnectorConfiguration.FileScanningIntervalInSeconds is null) | ||||
|             Callback(null); | ||||
|         else | ||||
|         { | ||||
|             TimeSpan timeSpan = new(DateTime.Now.AddSeconds(_FileConnectorConfiguration.FileScanningIntervalInSeconds.Value).Ticks - DateTime.Now.Ticks); | ||||
|             _ = _Timer.Change((long)timeSpan.TotalMilliseconds, Timeout.Infinite); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     void IFileRead.Move(Tuple<string, Test[], JsonElement[], List<FileInfo>> extractResults, Exception exception) => Move(extractResults); | ||||
|  | ||||
|     void IFileRead.WaitForThread() => WaitForThread(thread: null, threadExceptions: null); | ||||
|  | ||||
|     string IFileRead.GetEventDescription() | ||||
|     { | ||||
|         string result = _Description.GetEventDescription(); | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
|     List<string> IFileRead.GetHeaderNames() | ||||
|     { | ||||
|         List<string> results = _Description.GetHeaderNames(); | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|     string[] IFileRead.Move(Tuple<string, Test[], JsonElement[], List<FileInfo>> extractResults, string to, string from, string resolvedFileLocation, Exception exception) | ||||
|     { | ||||
|         string[] results = Move(extractResults, to, from, resolvedFileLocation, exception); | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|     JsonProperty[] IFileRead.GetDefault() | ||||
|     { | ||||
|         JsonProperty[] results = _Description.GetDefault(this, _Logistics); | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|     Dictionary<string, string> IFileRead.GetDisplayNamesJsonElement() | ||||
|     { | ||||
|         Dictionary<string, string> results = _Description.GetDisplayNamesJsonElement(this); | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|     List<IDescription> IFileRead.GetDescriptions(IFileRead fileRead, List<Test> tests, IProcessData processData) | ||||
|     { | ||||
|         List<IDescription> results = _Description.GetDescriptions(fileRead, _Logistics, tests, processData); | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|     Tuple<string, Test[], JsonElement[], List<FileInfo>> IFileRead.GetExtractResult(string reportFullPath, string eventName) => throw new Exception(string.Concat("See ", nameof(Callback))); | ||||
|  | ||||
|     Tuple<string, Test[], JsonElement[], List<FileInfo>> IFileRead.ReExtract() => throw new Exception(string.Concat("See ", nameof(Callback))); | ||||
|  | ||||
|     private static DateTime GetFileAgeThresholdTimeOnly(string fileAgeThreshold) | ||||
|     { | ||||
|         DateTime result = DateTime.MinValue; | ||||
|         string[] segments = fileAgeThreshold.Split(':'); | ||||
|         for (int i = 0; i < segments.Length; i++) | ||||
|         { | ||||
|             result = i switch | ||||
|             { | ||||
|                 0 => result.AddDays(double.Parse(segments[i])), | ||||
|                 1 => result.AddHours(double.Parse(segments[i])), | ||||
|                 2 => result.AddMinutes(double.Parse(segments[i])), | ||||
|                 3 => result.AddSeconds(double.Parse(segments[i])), | ||||
|                 _ => throw new Exception(), | ||||
|             }; | ||||
|         } | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
|     private static void ReadFiles(log4net.ILog log, FileConnectorConfiguration fileConnectorConfiguration, string ipAddress, string rawDirectory) | ||||
|     { | ||||
|         List<byte> bytes = new(); | ||||
|         string[] files = Directory.GetFiles(rawDirectory, $"{ipAddress}-*.raw", SearchOption.TopDirectoryOnly); | ||||
|         log.Info($"Read {files.Length} files"); | ||||
|         foreach (string file in files) | ||||
|         { | ||||
|             foreach (byte @byte in File.ReadAllBytes(file)) | ||||
|                 bytes.Add(@byte); | ||||
|         } | ||||
|         if (bytes.Count > 0) | ||||
|         { | ||||
|             string bytesFile = Path.Combine(fileConnectorConfiguration.TargetFileLocation, $"{ipAddress}-{DateTime.Now.Ticks}{fileConnectorConfiguration.TargetFileName}"); | ||||
|             File.WriteAllBytes(bytesFile, bytes.ToArray()); | ||||
|             foreach (string file in files) | ||||
|                 File.Delete(file); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static void CreateClient(log4net.ILog log, string ipAddress, int port) | ||||
|     { | ||||
|         log.Debug(ipAddress); | ||||
|         TcpClient tcpClient = new(ipAddress, port); | ||||
|         NetworkStream networkStream = tcpClient.GetStream(); | ||||
|         Type baseType = typeof(NetworkStream); | ||||
|         PropertyInfo? propertyInfo = baseType.GetProperty("Socket", BindingFlags.Instance | BindingFlags.NonPublic); | ||||
|         _Record = new(binaryReader: new(networkStream), binaryWriter: new(networkStream), networkStream: networkStream, propertyInfo: propertyInfo, readTimes: new()); | ||||
|     } | ||||
|  | ||||
|     private static byte[] GetBytes(NetworkStream networkStream) | ||||
|     { | ||||
|         List<byte> results = new(); | ||||
|         byte[] bytes = new byte[1024]; | ||||
|         do | ||||
|         { | ||||
|             int count = networkStream.Read(bytes, 0, bytes.Length); | ||||
|             if (count > 0) | ||||
|                 results.AddRange(bytes.Take(count)); | ||||
|         } | ||||
|         while (networkStream.DataAvailable); | ||||
|         return results.ToArray(); | ||||
|     } | ||||
|  | ||||
|     private void Callback() | ||||
|     { | ||||
|         if (_Record?.NetworkStream is null || _Record.PropertyInfo is null || _Record.PropertyInfo.GetValue(_Record.NetworkStream) is not Socket socket || !socket.Connected) | ||||
|             CreateClient(_Log, _IPAddress, _Port); | ||||
|         if (_Record is not null) | ||||
|         { | ||||
|             TimeSpan timeSpan = new(DateTime.Now.Ticks - _LastWrite); | ||||
|             if (_LastWrite == 0 || timeSpan.TotalMinutes > 1) | ||||
|             { | ||||
|                 try | ||||
|                 { | ||||
|                     _Record.NetworkStream.WriteByte(Convert.ToByte('\0')); | ||||
|                     _LastWrite = DateTime.Now.Ticks; | ||||
|                 } | ||||
|                 catch (Exception) | ||||
|                 { } | ||||
|             } | ||||
|         } | ||||
|         if (_Record?.NetworkStream is not null && _Record.NetworkStream.CanRead && _Record.NetworkStream.DataAvailable) | ||||
|         { | ||||
|             byte[] bytes = GetBytes(_Record.NetworkStream); | ||||
|             _Log.Info($"Read {bytes.Length} bytes"); | ||||
|             if (bytes.Length > 0) | ||||
|             { | ||||
|                 string path = Path.Combine(_RawDirectory, $"{_IPAddress}-{DateTime.Now.Ticks}.raw"); | ||||
|                 File.WriteAllBytes(path, bytes); | ||||
|                 string content = Encoding.ASCII.GetString(bytes); | ||||
|                 _Log.Debug($"Content {content}"); | ||||
|                 foreach (string delimiterPattern in _DelimiterPatterns) | ||||
|                 { | ||||
|                     if (content.Contains(delimiterPattern)) | ||||
|                         _Record.ReadTimes.Add(DateTime.Now.Ticks); | ||||
|                 } | ||||
|                 if (_Record.ReadTimes.Count > 0) | ||||
|                     _Record.ReadTimes.Add(DateTime.Now.Ticks); | ||||
|             } | ||||
|         } | ||||
|         if (_Record is not null && _Record.ReadTimes.Count > 0 && _DelimiterSeconds > 0) | ||||
|         { | ||||
|             TimeSpan? timeSpan = new(DateTime.Now.Ticks - _Record.ReadTimes.Last()); | ||||
|             if (timeSpan.Value.TotalSeconds > _DelimiterSeconds) | ||||
|             { | ||||
|                 ReadFiles(_Log, _FileConnectorConfiguration, _IPAddress, _RawDirectory); | ||||
|                 _Record.ReadTimes.Clear(); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private void Callback(object? state) | ||||
|     { | ||||
|         try | ||||
|         { | ||||
|             lock (_Lock) | ||||
|                 Callback(); | ||||
|         } | ||||
|         catch (Exception exception) | ||||
|         { | ||||
|             string subject = string.Concat("Exception:", _CellInstanceConnectionName); | ||||
|             string body = string.Concat(exception.Message, Environment.NewLine, Environment.NewLine, exception.StackTrace); | ||||
|             try | ||||
|             { _SMTP.SendHighPriorityEmailMessage(subject, body); } | ||||
|             catch (Exception) { } | ||||
|         } | ||||
|         try | ||||
|         { | ||||
|             if (_FileConnectorConfiguration.FileScanningIntervalInSeconds is null) | ||||
|                 throw new Exception(_CellInstanceConnectionName); | ||||
|             TimeSpan timeSpan = new(DateTime.Now.AddSeconds(_FileConnectorConfiguration.FileScanningIntervalInSeconds.Value).Ticks - DateTime.Now.Ticks); | ||||
|             _ = _Timer.Change((long)timeSpan.TotalMilliseconds, Timeout.Infinite); | ||||
|         } | ||||
|         catch (Exception exception) | ||||
|         { | ||||
|             string subject = string.Concat("Exception:", _CellInstanceConnectionName); | ||||
|             string body = string.Concat(exception.Message, Environment.NewLine, Environment.NewLine, exception.StackTrace); | ||||
|             try | ||||
|             { _SMTP.SendHighPriorityEmailMessage(subject, body); } | ||||
|             catch (Exception) { } | ||||
|         } | ||||
|     } | ||||
|  | ||||
| } | ||||
| @ -0,0 +1,28 @@ | ||||
| using System.Collections.Generic; | ||||
| using System.IO; | ||||
| using System.Net.Sockets; | ||||
| using System.Reflection; | ||||
|  | ||||
| namespace Adaptation.FileHandlers.TransmissionControlProtocol; | ||||
|  | ||||
| #nullable enable | ||||
|  | ||||
| internal class Record | ||||
| { | ||||
|  | ||||
|     public BinaryReader BinaryReader { get; } | ||||
|     public BinaryWriter BinaryWriter { get; } | ||||
|     public NetworkStream NetworkStream { get; } | ||||
|     public PropertyInfo? PropertyInfo { get; } | ||||
|     public List<long> ReadTimes { get; } | ||||
|  | ||||
|     public Record(BinaryReader binaryReader, BinaryWriter binaryWriter, NetworkStream networkStream, PropertyInfo? propertyInfo, List<long> readTimes) | ||||
|     { | ||||
|         BinaryReader = binaryReader; | ||||
|         BinaryWriter = binaryWriter; | ||||
|         NetworkStream = networkStream; | ||||
|         PropertyInfo = propertyInfo; | ||||
|         ReadTimes = readTimes; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @ -73,7 +73,7 @@ internal class Convert | ||||
|                 fileInfoCollection.Add(new FileInfo(altHeaderFileName)); | ||||
|                 result = new(text.Split(new string[] { Environment.NewLine }, StringSplitOptions.None)); | ||||
|             } | ||||
|             catch (Exception) | ||||
|             catch (MissingMethodException) | ||||
|             { | ||||
|                 if (!File.Exists(pdfTextStripperFileName)) | ||||
|                     throw; | ||||
|  | ||||
| @ -4,111 +4,114 @@ using System; | ||||
| using System.Collections.Generic; | ||||
| using System.Linq; | ||||
| using System.Text.Json; | ||||
| using System.Text.Json.Serialization; | ||||
|  | ||||
| namespace Adaptation.FileHandlers.pcl; | ||||
|  | ||||
| public class Description : IDescription, Shared.Properties.IDescription | ||||
| { | ||||
|  | ||||
|     public int Test { get; set; } | ||||
|     public int Count { get; set; } | ||||
|     public int Index { get; set; } | ||||
|     [JsonPropertyName("EventId")] public int Test { get; set; } | ||||
|     [JsonPropertyName("Count")] public int Count { get; set; } | ||||
|     [JsonPropertyName("Index")] public int Index { get; set; } | ||||
|     // | ||||
|     public string EventName { get; set; } | ||||
|     public string NullData { get; set; } | ||||
|     public string JobID { get; set; } | ||||
|     public string Sequence { get; set; } | ||||
|     public string MesEntity { get; set; } | ||||
|     [JsonPropertyName("MesEntity")] public string MesEntity { get; set; } | ||||
|     public string ReportFullPath { get; set; } | ||||
|     public string ProcessJobID { get; set; } | ||||
|     public string MID { get; set; } | ||||
|     // | ||||
|     public string Date { get; set; } | ||||
|     public string Employee { get; set; } | ||||
|     public string Lot { get; set; } | ||||
|     public string PSN { get; set; } | ||||
|     public string Reactor { get; set; } | ||||
|     public string Recipe { get; set; } | ||||
|     [JsonPropertyName("Date")] public string Date { get; set; } | ||||
|     [JsonPropertyName("Employee")] public string Employee { get; set; } | ||||
|     [JsonPropertyName("Lot")] public string Lot { get; set; } | ||||
|     [JsonPropertyName("PSN")] public string PSN { get; set; } | ||||
|     [JsonPropertyName("Reactor")] public string Reactor { get; set; } | ||||
|     [JsonPropertyName("Recipe")] public string Recipe { get; set; } | ||||
|     [JsonPropertyName("IndexOf")] public string IndexOf { get; set; } | ||||
|     [JsonPropertyName("AttemptCounter")] public string AttemptCounter { get; set; } | ||||
|     // | ||||
|     public string Area { get; set; } | ||||
|     public string Folder { get; set; } | ||||
|     [JsonPropertyName("Area")] public string Area { get; set; } | ||||
|     [JsonPropertyName("Folder")] public string Folder { get; set; } | ||||
|     public string HeaderUniqueId { get; set; } | ||||
|     public string Id { get; set; } | ||||
|     public string Layer { get; set; } | ||||
|     public string Model { get; set; } | ||||
|     public string Pattern { get; set; } | ||||
|     public string Phase { get; set; } | ||||
|     public string Plan { get; set; } | ||||
|     public string RampRate { get; set; } | ||||
|     public string RDS { get; set; } | ||||
|     public string SetupFile { get; set; } | ||||
|     public string StartVoltage { get; set; } | ||||
|     public string StopVoltage { get; set; } | ||||
|     [JsonPropertyName("Layer")] public string Layer { get; set; } | ||||
|     [JsonPropertyName("Model")] public string Model { get; set; } | ||||
|     [JsonPropertyName("Pattern")] public string Pattern { get; set; } | ||||
|     [JsonPropertyName("Phase")] public string Phase { get; set; } | ||||
|     [JsonPropertyName("Plan")] public string Plan { get; set; } | ||||
|     [JsonPropertyName("RampRate")] public string RampRate { get; set; } | ||||
|     [JsonPropertyName("RDS")] public string RDS { get; set; } | ||||
|     [JsonPropertyName("SetupFile")] public string SetupFile { get; set; } | ||||
|     [JsonPropertyName("StartVoltage")] public string StartVoltage { get; set; } | ||||
|     [JsonPropertyName("StopVoltage")] public string StopVoltage { get; set; } | ||||
|     public string UniqueId { get; set; } | ||||
|     public string Wafer { get; set; } | ||||
|     public string WaferSize { get; set; } | ||||
|     public string Zone { get; set; } | ||||
|     [JsonPropertyName("Wafer")] public string Wafer { get; set; } | ||||
|     [JsonPropertyName("WaferSize")] public string WaferSize { get; set; } | ||||
|     [JsonPropertyName("Zone")] public string Zone { get; set; } | ||||
|     // | ||||
|     public string Ccomp { get; set; } | ||||
|     public string CondType { get; set; } | ||||
|     public string FlatZ { get; set; } | ||||
|     public string FlatZMean { get; set; } | ||||
|     public string FlatZRadialGradient { get; set; } | ||||
|     public string FlatZStdDev { get; set; } | ||||
|     public string GLimit { get; set; } | ||||
|     public string Grade { get; set; } | ||||
|     public string GradeMean { get; set; } | ||||
|     public string GradeRadialGradient { get; set; } | ||||
|     public string GradeStdDev { get; set; } | ||||
|     public string NAvg { get; set; } | ||||
|     public string NAvgMean { get; set; } | ||||
|     public string NAvgRadialGradient { get; set; } | ||||
|     public string NAvgStdDev { get; set; } | ||||
|     public string Nsl { get; set; } | ||||
|     public string NslMean { get; set; } | ||||
|     public string NslRadialGradient { get; set; } | ||||
|     public string NslStdDev { get; set; } | ||||
|     public string PhaseMean { get; set; } | ||||
|     public string PhaseRadialGradient { get; set; } | ||||
|     public string PhaseStdDev { get; set; } | ||||
|     public string RhoAvg { get; set; } | ||||
|     public string RhoAvgMean { get; set; } | ||||
|     public string RhoAvgRadialGradient { get; set; } | ||||
|     public string RhoAvgStdDev { get; set; } | ||||
|     public string RhoMethod { get; set; } | ||||
|     public string Rhosl { get; set; } | ||||
|     public string RhoslMean { get; set; } | ||||
|     public string RhoslRadialGradient { get; set; } | ||||
|     public string RhoslStdDev { get; set; } | ||||
|     public string RsMean { get; set; } | ||||
|     public string RsRadialGradient { get; set; } | ||||
|     public string RsStdDev { get; set; } | ||||
|     public string Vd { get; set; } | ||||
|     public string VdMean { get; set; } | ||||
|     public string VdRadialGradient { get; set; } | ||||
|     public string VdStdDev { get; set; } | ||||
|     [JsonPropertyName("Ccomp")] public string Ccomp { get; set; } | ||||
|     [JsonPropertyName("CondType")] public string CondType { get; set; } | ||||
|     [JsonPropertyName("FlatZ")] public string FlatZ { get; set; } | ||||
|     [JsonPropertyName("MeanFlatZ")] public string FlatZMean { get; set; } | ||||
|     [JsonPropertyName("RadialGradientFlatZ")] public string FlatZRadialGradient { get; set; } | ||||
|     [JsonPropertyName("StandardDeviationPercentageFlatZ")] public string FlatZStdDev { get; set; } | ||||
|     [JsonPropertyName("GLimit")] public string GLimit { get; set; } | ||||
|     [JsonPropertyName("Grade")] public string Grade { get; set; } | ||||
|     [JsonPropertyName("MeanGrade")] public string GradeMean { get; set; } | ||||
|     [JsonPropertyName("RadialGradientGrade")] public string GradeRadialGradient { get; set; } | ||||
|     [JsonPropertyName("StandardDeviationPercentageGrade")] public string GradeStdDev { get; set; } | ||||
|     [JsonPropertyName("NAvg")] public string NAvg { get; set; } | ||||
|     [JsonPropertyName("MeanNAvg")] public string NAvgMean { get; set; } | ||||
|     [JsonPropertyName("RadialGradientNAvg")] public string NAvgRadialGradient { get; set; } | ||||
|     [JsonPropertyName("StandardDeviationPercentageNAvg")] public string NAvgStdDev { get; set; } | ||||
|     [JsonPropertyName("Nsl")] public string Nsl { get; set; } | ||||
|     [JsonPropertyName("MeanNsl")] public string NslMean { get; set; } | ||||
|     [JsonPropertyName("RadialGradientNsl")] public string NslRadialGradient { get; set; } | ||||
|     [JsonPropertyName("StandardDeviationPercentageNsl")] public string NslStdDev { get; set; } | ||||
|     [JsonPropertyName("MeanPhase")] public string PhaseMean { get; set; } | ||||
|     [JsonPropertyName("RadialGradientPhase")] public string PhaseRadialGradient { get; set; } | ||||
|     [JsonPropertyName("StandardDeviationPercentagePhase")] public string PhaseStdDev { get; set; } | ||||
|     [JsonPropertyName("RhoAvg")] public string RhoAvg { get; set; } | ||||
|     [JsonPropertyName("MeanRhoAvg")] public string RhoAvgMean { get; set; } | ||||
|     [JsonPropertyName("RadialGradientRhoAvg")] public string RhoAvgRadialGradient { get; set; } | ||||
|     [JsonPropertyName("StandardDeviationPercentageRhoAvg")] public string RhoAvgStdDev { get; set; } | ||||
|     [JsonPropertyName("RhoMethod")] public string RhoMethod { get; set; } | ||||
|     [JsonPropertyName("Rhosl")] public string Rhosl { get; set; } | ||||
|     [JsonPropertyName("MeanRhosl")] public string RhoslMean { get; set; } | ||||
|     [JsonPropertyName("RadialGradientRhosl")] public string RhoslRadialGradient { get; set; } | ||||
|     [JsonPropertyName("StandardDeviationPercentageRhosl")] public string RhoslStdDev { get; set; } | ||||
|     [JsonPropertyName("MeanRs")] public string RsMean { get; set; } | ||||
|     [JsonPropertyName("RadialGradientRs")] public string RsRadialGradient { get; set; } | ||||
|     [JsonPropertyName("StandardDeviationPercentageRs")] public string RsStdDev { get; set; } | ||||
|     [JsonPropertyName("Vd")] public string Vd { get; set; } | ||||
|     [JsonPropertyName("MeanVd")] public string VdMean { get; set; } | ||||
|     [JsonPropertyName("RadialGradientVd")] public string VdRadialGradient { get; set; } | ||||
|     [JsonPropertyName("StandardDeviationPercentageVd")] public string VdStdDev { get; set; } | ||||
|     // | ||||
|     public string Variation { get; set; } | ||||
|     public string AreaDeltaFromLastRun { get; set; } | ||||
|     [JsonPropertyName("Variation")] public string Variation { get; set; } | ||||
|     [JsonPropertyName("AreaDeltaFromLastRun")] public string AreaDeltaFromLastRun { get; set; } | ||||
|     // | ||||
|     public string Nine10mmEdgeMean { get; set; } | ||||
|     public string Nine4mmEdgeMean { get; set; } | ||||
|     public string NineCriticalPointsAverage { get; set; } | ||||
|     public string NineCriticalPointsPhaseAngleAverage { get; set; } | ||||
|     public string NineCriticalPointsStdDev { get; set; } | ||||
|     public string NineEdgeMeanDelta { get; set; } | ||||
|     public string NineMean { get; set; } | ||||
|     public string NineResRangePercent { get; set; } | ||||
|     [JsonPropertyName("Nine10mmEdgeMean")] public string Nine10mmEdgeMean { get; set; } | ||||
|     [JsonPropertyName("Nine4mmEdgeMean")] public string Nine4mmEdgeMean { get; set; } | ||||
|     [JsonPropertyName("NineCriticalPointsAverage")] public string NineCriticalPointsAverage { get; set; } | ||||
|     [JsonPropertyName("NineCriticalPointsPhaseAngleAverage")] public string NineCriticalPointsPhaseAngleAverage { get; set; } | ||||
|     [JsonPropertyName("NineCriticalPointsStdDev")] public string NineCriticalPointsStdDev { get; set; } | ||||
|     [JsonPropertyName("NineEdgeMeanDelta")] public string NineEdgeMeanDelta { get; set; } | ||||
|     [JsonPropertyName("NineMean")] public string NineMean { get; set; } | ||||
|     [JsonPropertyName("NineResRangePercent")] public string NineResRangePercent { get; set; } | ||||
|     // | ||||
|     public string RhoAvg01 { get; set; } | ||||
|     public string RhoAvg02 { get; set; } | ||||
|     public string RhoAvg03 { get; set; } | ||||
|     public string RhoAvg04 { get; set; } | ||||
|     public string RhoAvg05 { get; set; } | ||||
|     public string RhoAvg06 { get; set; } | ||||
|     public string RhoAvg07 { get; set; } | ||||
|     public string RhoAvg08 { get; set; } | ||||
|     public string RhoAvg09 { get; set; } | ||||
|     [JsonPropertyName("RhoAvg01")] public string RhoAvg01 { get; set; } | ||||
|     [JsonPropertyName("RhoAvg02")] public string RhoAvg02 { get; set; } | ||||
|     [JsonPropertyName("RhoAvg03")] public string RhoAvg03 { get; set; } | ||||
|     [JsonPropertyName("RhoAvg04")] public string RhoAvg04 { get; set; } | ||||
|     [JsonPropertyName("RhoAvg05")] public string RhoAvg05 { get; set; } | ||||
|     [JsonPropertyName("RhoAvg06")] public string RhoAvg06 { get; set; } | ||||
|     [JsonPropertyName("RhoAvg07")] public string RhoAvg07 { get; set; } | ||||
|     [JsonPropertyName("RhoAvg08")] public string RhoAvg08 { get; set; } | ||||
|     [JsonPropertyName("RhoAvg09")] public string RhoAvg09 { get; set; } | ||||
|  | ||||
|     string IDescription.GetEventDescription() => "File Has been read and parsed"; | ||||
|  | ||||
| @ -311,6 +314,8 @@ public class Description : IDescription, Shared.Properties.IDescription | ||||
|                     PSN = processData.PSN, | ||||
|                     Reactor = processData.Reactor, | ||||
|                     Recipe = string.Empty, | ||||
|                     IndexOf = nameof(IndexOf), | ||||
|                     AttemptCounter = nameof(AttemptCounter), | ||||
|                     // | ||||
|                     Area = processData.Area, | ||||
|                     Folder = processData.Folder, | ||||
| @ -426,6 +431,8 @@ public class Description : IDescription, Shared.Properties.IDescription | ||||
|             PSN = nameof(PSN), | ||||
|             Reactor = nameof(Reactor), | ||||
|             Recipe = nameof(Recipe), | ||||
|             IndexOf = nameof(IndexOf), | ||||
|             AttemptCounter = nameof(AttemptCounter), | ||||
|             // | ||||
|             Area = nameof(Area), | ||||
|             Folder = nameof(Folder), | ||||
| @ -511,4 +518,16 @@ public class Description : IDescription, Shared.Properties.IDescription | ||||
|  | ||||
|     internal static string GetDateFormat() => "MM/dd/yyyy hh:mm:ss tt"; | ||||
|  | ||||
| } | ||||
|  | ||||
| [JsonSourceGenerationOptions(WriteIndented = true, NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] | ||||
| [JsonSerializable(typeof(Description))] | ||||
| internal partial class DescriptionSourceGenerationContext : JsonSerializerContext | ||||
| { | ||||
| } | ||||
|  | ||||
| [JsonSourceGenerationOptions(WriteIndented = true, NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] | ||||
| [JsonSerializable(typeof(Description[]))] | ||||
| internal partial class DescriptionArraySourceGenerationContext : JsonSerializerContext | ||||
| { | ||||
| } | ||||
| @ -1,19 +1,33 @@ | ||||
| namespace Adaptation.FileHandlers.pcl; | ||||
| using System.Text.Json.Serialization; | ||||
|  | ||||
| namespace Adaptation.FileHandlers.pcl; | ||||
|  | ||||
| public class Detail | ||||
| { | ||||
|  | ||||
|     public string FlatZ { get; set; } | ||||
|     public string Grade { get; set; } | ||||
|     [JsonPropertyName("FlatZ")] public string FlatZ { get; set; } | ||||
|     [JsonPropertyName("Grade")] public string Grade { get; set; } | ||||
|     public string HeaderUniqueId { get; set; } | ||||
|     public string NAvg { get; set; } | ||||
|     public string Nsl { get; set; } | ||||
|     public string Phase { get; set; } | ||||
|     public string RhoAvg { get; set; } | ||||
|     public string Rhosl { get; set; } | ||||
|     [JsonPropertyName("NAvg")] public string NAvg { get; set; } | ||||
|     [JsonPropertyName("Nsl")] public string Nsl { get; set; } | ||||
|     [JsonPropertyName("Phase")] public string Phase { get; set; } | ||||
|     [JsonPropertyName("RhoAvg")] public string RhoAvg { get; set; } | ||||
|     [JsonPropertyName("Rhosl")] public string Rhosl { get; set; } | ||||
|     public string UniqueId { get; set; } | ||||
|     public string Vd { get; set; } | ||||
|     [JsonPropertyName("Vd")] public string Vd { get; set; } | ||||
|  | ||||
|     public override string ToString() => string.Concat(FlatZ, ";", Grade); | ||||
|  | ||||
| } | ||||
|  | ||||
| [JsonSourceGenerationOptions(WriteIndented = true, NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] | ||||
| [JsonSerializable(typeof(Detail))] | ||||
| internal partial class DetailSourceGenerationContext : JsonSerializerContext | ||||
| { | ||||
| } | ||||
|  | ||||
| [JsonSourceGenerationOptions(WriteIndented = true, NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] | ||||
| [JsonSerializable(typeof(Detail[]))] | ||||
| internal partial class DetailArraySourceGenerationContext : JsonSerializerContext | ||||
| { | ||||
| } | ||||
| @ -18,7 +18,7 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|     private readonly string _GhostPCLFileName; | ||||
|     private readonly string _PDFTextStripperFileName; | ||||
|  | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<Shared.Metrology.WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|         base(new Description(), true, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null) | ||||
|     { | ||||
|         _MinFileLength = 150; | ||||
| @ -123,22 +123,26 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|                 throw new Exception(string.Concat("A) No Data - ", dateTime.Ticks)); | ||||
|             IProcessData iProcessData = new ProcessData(this, _Logistics, results.Item4, lines); | ||||
|             if (iProcessData is not ProcessData processData) | ||||
|                 throw new Exception(string.Concat("B) No Data - ", dateTime.Ticks)); | ||||
|             string mid; | ||||
|             if (!string.IsNullOrEmpty(processData.Lot) && string.IsNullOrEmpty(processData.Reactor) && string.IsNullOrEmpty(processData.RDS) && string.IsNullOrEmpty(processData.PSN)) | ||||
|                 mid = processData.Lot; | ||||
|             else if (!string.IsNullOrEmpty(processData.Employee) && string.IsNullOrEmpty(processData.Reactor) && string.IsNullOrEmpty(processData.RDS) && string.IsNullOrEmpty(processData.PSN)) | ||||
|                 mid = processData.Employee; | ||||
|                 results = new(string.Concat("B) No Data - ", dateTime.Ticks), Array.Empty<Test>(), Array.Empty<JsonElement>(), results.Item4); | ||||
|             else | ||||
|             { | ||||
|                 mid = string.Concat(processData.Reactor, "-", processData.RDS, "-", processData.PSN); | ||||
|                 mid = Regex.Replace(mid, @"[\\,\/,\:,\*,\?,\"",\<,\>,\|]", "_").Split('\r')[0].Split('\n')[0]; | ||||
|                 string mid; | ||||
|                 if (!string.IsNullOrEmpty(processData.Lot) && string.IsNullOrEmpty(processData.Reactor) && string.IsNullOrEmpty(processData.RDS) && string.IsNullOrEmpty(processData.PSN)) | ||||
|                     mid = processData.Lot; | ||||
|                 else if (!string.IsNullOrEmpty(processData.Employee) && string.IsNullOrEmpty(processData.Reactor) && string.IsNullOrEmpty(processData.RDS) && string.IsNullOrEmpty(processData.PSN)) | ||||
|                     mid = processData.Employee; | ||||
|                 else | ||||
|                 { | ||||
|                     mid = string.Concat(processData.Reactor, "-", processData.RDS, "-", processData.PSN); | ||||
|                     mid = Regex.Replace(mid, @"[\\,\/,\:,\*,\?,\"",\<,\>,\|]", "_").Split('\r')[0].Split('\n')[0]; | ||||
|                 } | ||||
|                 SetFileParameterLotID(mid); | ||||
|                 _Logistics.Update(mid, processData.Reactor); | ||||
|                 if (iProcessData.Details.Count > 0) | ||||
|                     results = iProcessData.GetResults(this, _Logistics, results.Item4); | ||||
|                 else | ||||
|                     results = new(string.Concat("C) No Data - ", dateTime.Ticks), Array.Empty<Test>(), Array.Empty<JsonElement>(), results.Item4); | ||||
|             } | ||||
|             SetFileParameterLotID(mid); | ||||
|             _Logistics.Update(mid, processData.Reactor); | ||||
|             if (iProcessData.Details.Count == 0) | ||||
|                 throw new Exception(string.Concat("C) No Data - ", dateTime.Ticks)); | ||||
|             results = iProcessData.GetResults(this, _Logistics, results.Item4); | ||||
|         } | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
| @ -155,7 +155,7 @@ internal class Header | ||||
|         else | ||||
|         { | ||||
|             json = JsonSerializer.Serialize(keyValuePairs); | ||||
|             result = JsonSerializer.Deserialize(json, HeaderSourceGenerationContext.Default.Header) ?? throw new NullReferenceException(nameof(result)); | ||||
|             result = JsonSerializer.Deserialize(json, PCLHeaderSourceGenerationContext.Default.Header) ?? throw new NullReferenceException(nameof(result)); | ||||
|         } | ||||
|         return result; | ||||
|     } | ||||
| @ -164,6 +164,6 @@ internal class Header | ||||
|  | ||||
| [JsonSourceGenerationOptions(WriteIndented = true)] | ||||
| [JsonSerializable(typeof(Header))] | ||||
| internal partial class HeaderSourceGenerationContext : JsonSerializerContext | ||||
| internal partial class PCLHeaderSourceGenerationContext : JsonSerializerContext | ||||
| { | ||||
| } | ||||
| @ -138,6 +138,6 @@ internal class Point | ||||
|  | ||||
| [JsonSourceGenerationOptions(WriteIndented = true)] | ||||
| [JsonSerializable(typeof(Point))] | ||||
| internal partial class PointSourceGenerationContext : JsonSerializerContext | ||||
| internal partial class PCLPointSourceGenerationContext : JsonSerializerContext | ||||
| { | ||||
| } | ||||
| @ -120,9 +120,13 @@ internal class ProcessData : IProcessData | ||||
|             if (description.Test != (int)tests[i]) | ||||
|                 throw new Exception(); | ||||
|         } | ||||
|         FileInfo fileInfo = new($"{logistics.ReportFullPath}.descriptions.json"); | ||||
|         List<Description> fileReadDescriptions = (from l in descriptions select (Description)l).ToList(); | ||||
|         string json = JsonSerializer.Serialize(fileReadDescriptions, fileReadDescriptions.GetType()); | ||||
|         JsonElement[] jsonElements = JsonSerializer.Deserialize<JsonElement[]>(json); | ||||
|         File.WriteAllText(fileInfo.FullName, json); | ||||
|         File.SetLastWriteTime(fileInfo.FullName, logistics.DateTimeFromSequence); | ||||
|         fileInfoCollection.Add(fileInfo); | ||||
|         JsonElement[] jsonElements = JsonSerializer.Deserialize<JsonElement[]>(json) ?? throw new Exception(); | ||||
|         results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(logistics.Logistics1[0], tests.ToArray(), jsonElements, fileInfoCollection); | ||||
|         return results; | ||||
|     } | ||||
| @ -611,12 +615,11 @@ internal class ProcessData : IProcessData | ||||
|     { | ||||
|         List<Description> results = new(); | ||||
|         Description? description; | ||||
|         JsonSerializerOptions jsonSerializerOptions = new() { NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString }; | ||||
|         foreach (JsonElement jsonElement in jsonElements) | ||||
|         { | ||||
|             if (jsonElement.ValueKind != JsonValueKind.Object) | ||||
|                 throw new Exception(); | ||||
|             description = JsonSerializer.Deserialize<Description>(jsonElement.ToString(), jsonSerializerOptions); | ||||
|             description = JsonSerializer.Deserialize(jsonElement.ToString(), DescriptionSourceGenerationContext.Default.Description); | ||||
|             if (description is null) | ||||
|                 continue; | ||||
|             results.Add(description); | ||||
|  | ||||
| @ -9,6 +9,8 @@ internal class Row | ||||
|  | ||||
|     public Row(Run run, int i) | ||||
|     { | ||||
|         Index = i; | ||||
|         // | ||||
|         Operator = run.Header.Operator; | ||||
|         StartVoltage = run.Header.StartVoltage; | ||||
|         Wafer = run.Header.Wafer; | ||||
| @ -117,6 +119,8 @@ internal class Row | ||||
|         TopY = run.Points[i].TopY; | ||||
|     } | ||||
|  | ||||
|     public int Index { get; } | ||||
|     // | ||||
|     public string Operator { get; } | ||||
|     public string StartVoltage { get; } | ||||
|     public string Wafer { get; } | ||||
| @ -187,6 +191,6 @@ internal class Row | ||||
|  | ||||
| [JsonSourceGenerationOptions(WriteIndented = true)] | ||||
| [JsonSerializable(typeof(Row))] | ||||
| internal partial class RowSourceGenerationContext : JsonSerializerContext | ||||
| internal partial class PCLRowSourceGenerationContext : JsonSerializerContext | ||||
| { | ||||
| } | ||||
| @ -40,26 +40,31 @@ internal class Run | ||||
|         return new(results); | ||||
|     } | ||||
|  | ||||
|     private static void WriteJson(Logistics logistics, List<FileInfo> fileInfoCollection, Run? result) | ||||
|     private static void WriteJson(Logistics logistics, List<FileInfo> fileInfoCollection, Run result) | ||||
|     { | ||||
|         FileInfo fileInfo = new($"{logistics.ReportFullPath}.json"); | ||||
|         string json = JsonSerializer.Serialize(result, RunSourceGenerationContext.Default.Run); | ||||
|         FileInfo fileInfo = new($"{logistics.ReportFullPath}.run.json"); | ||||
|         string json = JsonSerializer.Serialize(result, PCLRunSourceGenerationContext.Default.Run); | ||||
|         File.WriteAllText(fileInfo.FullName, json); | ||||
|         File.SetLastWriteTime(fileInfo.FullName, logistics.DateTimeFromSequence); | ||||
|         fileInfoCollection.Add(fileInfo); | ||||
|     } | ||||
|  | ||||
|     private static ReadOnlyCollection<string> GetLines(JsonElement[]? jsonElements) | ||||
|     private static ReadOnlyCollection<string> GetLines(Logistics logistics, JsonElement[]? jsonElements) | ||||
|     { | ||||
|         List<string> results = new(); | ||||
|         int columns = 0; | ||||
|         StringBuilder stringBuilder = new(); | ||||
|         results.Add($"\"Count\",{jsonElements?.Length}"); | ||||
|         results.Add($"\"{nameof(logistics.Sequence)}\",\"{logistics.Sequence}\""); | ||||
|         results.Add($"\"{nameof(logistics.MesEntity)}\",\"{logistics.MesEntity}\""); | ||||
|         string dateTimeFromSequence = logistics.DateTimeFromSequence.ToString("MM/dd/yyyy hh:mm:ss tt"); | ||||
|         for (int i = 0; i < jsonElements?.Length;) | ||||
|         { | ||||
|             _ = stringBuilder.Append('"').Append(nameof(logistics.DateTimeFromSequence)).Append('"').Append(','); | ||||
|             foreach (JsonProperty jsonProperty in jsonElements[0].EnumerateObject()) | ||||
|             { | ||||
|                 columns += 1; | ||||
|                 _ = stringBuilder.Append('"').Append(jsonProperty.Name).Append('"').Append('\t'); | ||||
|                 _ = stringBuilder.Append('"').Append(jsonProperty.Name).Append('"').Append(','); | ||||
|             } | ||||
|             break; | ||||
|         } | ||||
| @ -69,14 +74,15 @@ internal class Run | ||||
|         for (int i = 0; i < jsonElements?.Length; i++) | ||||
|         { | ||||
|             _ = stringBuilder.Clear(); | ||||
|             _ = stringBuilder.Append('"').Append(dateTimeFromSequence).Append('"').Append(','); | ||||
|             foreach (JsonProperty jsonProperty in jsonElements[i].EnumerateObject()) | ||||
|             { | ||||
|                 if (jsonProperty.Value.ValueKind == JsonValueKind.Object) | ||||
|                     _ = stringBuilder.Append('\t'); | ||||
|                     _ = stringBuilder.Append(','); | ||||
|                 else if (jsonProperty.Value.ValueKind != JsonValueKind.String) | ||||
|                     _ = stringBuilder.Append(jsonProperty.Value).Append('\t'); | ||||
|                     _ = stringBuilder.Append(jsonProperty.Value).Append(','); | ||||
|                 else | ||||
|                     _ = stringBuilder.Append('"').Append(jsonProperty.Value).Append('"').Append('\t'); | ||||
|                     _ = stringBuilder.Append('"').Append(jsonProperty.Value).Append('"').Append(','); | ||||
|             } | ||||
|             _ = stringBuilder.Remove(stringBuilder.Length - 1, 1); | ||||
|             results.Add(stringBuilder.ToString()); | ||||
| @ -84,14 +90,10 @@ internal class Run | ||||
|         return results.AsReadOnly(); | ||||
|     } | ||||
|  | ||||
|     private static ReadOnlyCollection<string> GetLines(JsonElement jsonElement) => | ||||
|         GetLines(new JsonElement[] { jsonElement }); | ||||
|  | ||||
|     private static void WriteTabSeparatedValues(Logistics logistics, List<FileInfo> fileInfoCollection, Run run) | ||||
|     private static void WriteCommaSeparatedValues(Logistics logistics, Run run) | ||||
|     { | ||||
|         List<Row> results = new(); | ||||
|         Row row; | ||||
|         FileInfo fileInfo = new($"{logistics.ReportFullPath}.tsv"); | ||||
|         for (int i = 0; i < run.Points.Count; i++) | ||||
|         { | ||||
|             row = new(run, i); | ||||
| @ -99,16 +101,8 @@ internal class Run | ||||
|         } | ||||
|         string json = JsonSerializer.Serialize(results); | ||||
|         JsonElement[]? jsonElements = JsonSerializer.Deserialize<JsonElement[]>(json); | ||||
|         ReadOnlyCollection<string> lines = GetLines(jsonElements); | ||||
|         File.WriteAllText(fileInfo.FullName, string.Join(Environment.NewLine, lines)); | ||||
|         File.SetLastWriteTime(fileInfo.FullName, logistics.DateTimeFromSequence); | ||||
|         fileInfoCollection.Add(fileInfo); | ||||
|     } | ||||
|  | ||||
|     private static void WriteException(Logistics logistics, Exception ex) | ||||
|     { | ||||
|         FileInfo fileInfo = new($"{logistics.ReportFullPath}.{nameof(Exception)}.txt"); | ||||
|         File.WriteAllText(fileInfo.FullName, $"{ex.Message}{Environment.NewLine}{ex.StackTrace}"); | ||||
|         ReadOnlyCollection<string> lines = GetLines(logistics, jsonElements); | ||||
|         File.WriteAllText($"{logistics.ReportFullPath}.csv", string.Join(Environment.NewLine, lines)); | ||||
|     } | ||||
|  | ||||
|     public static Run? Get(Logistics logistics, List<FileInfo> fileInfoCollection, ReadOnlyCollection<string> collection) | ||||
| @ -137,14 +131,7 @@ internal class Run | ||||
|                     { | ||||
|                         result = new(header, summary, points); | ||||
|                         WriteJson(logistics, fileInfoCollection, result); | ||||
|                         try | ||||
|                         { | ||||
|                             WriteTabSeparatedValues(logistics, fileInfoCollection, result); | ||||
|                         } | ||||
|                         catch (Exception ex) | ||||
|                         { | ||||
|                             WriteException(logistics, ex); | ||||
|                         } | ||||
|                         WriteCommaSeparatedValues(logistics, result); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
| @ -156,6 +143,6 @@ internal class Run | ||||
|  | ||||
| [JsonSourceGenerationOptions(WriteIndented = true)] | ||||
| [JsonSerializable(typeof(Run))] | ||||
| internal partial class RunSourceGenerationContext : JsonSerializerContext | ||||
| internal partial class PCLRunSourceGenerationContext : JsonSerializerContext | ||||
| { | ||||
| } | ||||
| @ -22,6 +22,6 @@ internal class Summary | ||||
|  | ||||
| [JsonSourceGenerationOptions(WriteIndented = true)] | ||||
| [JsonSerializable(typeof(Summary))] | ||||
| internal partial class SummarySourceGenerationContext : JsonSerializerContext | ||||
| internal partial class PCLSummarySourceGenerationContext : JsonSerializerContext | ||||
| { | ||||
| } | ||||
| @ -100,11 +100,11 @@ internal class SummarySegment | ||||
|         else | ||||
|         { | ||||
|             json = JsonSerializer.Serialize(keyValuePairs); | ||||
|             SummarySegment? mean = JsonSerializer.Deserialize(json, SummarySegmentSourceGenerationContext.Default.SummarySegment); | ||||
|             SummarySegment? mean = JsonSerializer.Deserialize(json, PCLSummarySegmentSourceGenerationContext.Default.SummarySegment); | ||||
|             json = JsonSerializer.Serialize(keyValuePairsB); | ||||
|             SummarySegment? standardDeviationPercentage = JsonSerializer.Deserialize(json, SummarySegmentSourceGenerationContext.Default.SummarySegment); | ||||
|             SummarySegment? standardDeviationPercentage = JsonSerializer.Deserialize(json, PCLSummarySegmentSourceGenerationContext.Default.SummarySegment); | ||||
|             json = JsonSerializer.Serialize(keyValuePairsC); | ||||
|             SummarySegment? radialGradient = JsonSerializer.Deserialize(json, SummarySegmentSourceGenerationContext.Default.SummarySegment); | ||||
|             SummarySegment? radialGradient = JsonSerializer.Deserialize(json, PCLSummarySegmentSourceGenerationContext.Default.SummarySegment); | ||||
|             result = new(mean, standardDeviationPercentage, radialGradient); | ||||
|         } | ||||
|         return result; | ||||
| @ -114,6 +114,6 @@ internal class SummarySegment | ||||
|  | ||||
| [JsonSourceGenerationOptions(WriteIndented = true)] | ||||
| [JsonSerializable(typeof(SummarySegment))] | ||||
| internal partial class SummarySegmentSourceGenerationContext : JsonSerializerContext | ||||
| internal partial class PCLSummarySegmentSourceGenerationContext : JsonSerializerContext | ||||
| { | ||||
| } | ||||
							
								
								
									
										13
									
								
								Adaptation/FileHandlers/pdsf/Constant.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								Adaptation/FileHandlers/pdsf/Constant.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,13 @@ | ||||
| namespace Adaptation.FileHandlers.pdsf; | ||||
|  | ||||
| internal class Constant | ||||
| { | ||||
|  | ||||
|     public int Take { get; } = 11; | ||||
|     public string Site { get; } = "Site: "; | ||||
|     public string Multiple { get; } = "MULTIPLE"; | ||||
|     public string SummaryLine { get; } = "SUMMARY A A"; | ||||
|     public string LastUnits { get; } = "Flat Z: Grade : % Flat Z: Grade : % Flat Z: Grade : %"; | ||||
|     public string LastUnitsB { get; } = "Flat Z: Grade : % Flat Z: Grade : % Flat Z: Grade : %"; | ||||
|  | ||||
| } | ||||
							
								
								
									
										89
									
								
								Adaptation/FileHandlers/pdsf/Convert.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								Adaptation/FileHandlers/pdsf/Convert.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,89 @@ | ||||
| using Adaptation.Shared; | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.Collections.ObjectModel; | ||||
| using System.Diagnostics; | ||||
| using System.IO; | ||||
|  | ||||
| namespace Adaptation.FileHandlers.pdsf; | ||||
|  | ||||
| internal class Convert | ||||
| { | ||||
|  | ||||
|     /// <summary> | ||||
|     /// Convert the raw data file to parsable file format - in this case from PCL to PDF | ||||
|     /// </summary> | ||||
|     /// <param name="sourceFile">source file to be converted to PDF</param> | ||||
|     /// <returns></returns> | ||||
|     private static string ConvertSourceFileToPdf(Logistics logistics, string ghostPCLFileName) | ||||
|     { | ||||
|         string result = Path.ChangeExtension(logistics.ReportFullPath, ".pdf"); | ||||
|         if (!File.Exists(result)) | ||||
|         { | ||||
|             //string arguments = string.Concat("-i \"", sourceFile, "\" -o \"", result, "\""); | ||||
|             string arguments = string.Concat("-dSAFER -dBATCH -dNOPAUSE -dFIXEDMEDIA -dFitPage -dAutoRotatePages=/All -dDEVICEWIDTHPOINTS=792 -dDEVICEHEIGHTPOINTS=612 -sOutputFile=\"", result, "\" -sDEVICE=pdfwrite \"", logistics.ReportFullPath, "\""); | ||||
|             //Process process = Process.Start(configData.LincPDFCFileName, arguments); | ||||
|             Process process = Process.Start(ghostPCLFileName, arguments); | ||||
|             _ = process.WaitForExit(30000); | ||||
|             if (!File.Exists(result)) | ||||
|                 throw new Exception("PDF file wasn't created"); | ||||
|         } | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
|     private static ReadOnlyCollection<string> GetTextFromPDF(string pdfTextStripperFileName, string sourceFileNamePdf, string altHeaderFileName) | ||||
|     { | ||||
|         string[] result; | ||||
|         ProcessStartInfo processStartInfo = new(pdfTextStripperFileName, $"s \"{sourceFileNamePdf}\"") | ||||
|         { | ||||
|             UseShellExecute = false, | ||||
|             RedirectStandardError = true, | ||||
|             RedirectStandardOutput = true, | ||||
|         }; | ||||
|         Process process = Process.Start(processStartInfo); | ||||
|         _ = process.WaitForExit(30000); | ||||
|         if (!File.Exists(altHeaderFileName)) | ||||
|             result = Array.Empty<string>(); | ||||
|         else | ||||
|             result = File.ReadAllLines(altHeaderFileName); | ||||
|         return new(result); | ||||
|     } | ||||
|  | ||||
|     internal static ReadOnlyCollection<string> PDF(Logistics logistics, string ghostPCLFileName, string pdfTextStripperFileName, List<FileInfo> fileInfoCollection) | ||||
|     { | ||||
|         ReadOnlyCollection<string> result; | ||||
|         string sourceFileNamePdf = ConvertSourceFileToPdf(logistics, ghostPCLFileName); | ||||
|         fileInfoCollection.Add(new FileInfo(sourceFileNamePdf)); | ||||
|         string altHeaderFileName = Path.ChangeExtension(logistics.ReportFullPath, ".txt"); | ||||
|         if (File.Exists(altHeaderFileName)) | ||||
|         { | ||||
|             result = new(File.ReadAllLines(altHeaderFileName)); | ||||
|             fileInfoCollection.Add(new FileInfo(altHeaderFileName)); | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             try | ||||
|             { | ||||
|                 //Pdfbox, IKVM.AWT.WinForms | ||||
|                 org.apache.pdfbox.pdmodel.PDDocument pdfDocument = org.apache.pdfbox.pdmodel.PDDocument.load(sourceFileNamePdf); | ||||
|                 org.apache.pdfbox.util.PDFTextStripper stripper = new(); | ||||
|                 string text = stripper.getText(pdfDocument); | ||||
|                 pdfDocument.close(); | ||||
|                 File.AppendAllText(altHeaderFileName, text); | ||||
|                 fileInfoCollection.Add(new FileInfo(altHeaderFileName)); | ||||
|                 result = new(text.Split(new string[] { Environment.NewLine }, StringSplitOptions.None)); | ||||
|             } | ||||
|             catch (MissingMethodException) | ||||
|             { | ||||
|                 if (!File.Exists(pdfTextStripperFileName)) | ||||
|                     throw; | ||||
|                 result = GetTextFromPDF(pdfTextStripperFileName, sourceFileNamePdf, altHeaderFileName); | ||||
|                 if (result.Count == 0) | ||||
|                     throw; | ||||
|                 fileInfoCollection.Add(new FileInfo(altHeaderFileName)); | ||||
|             } | ||||
|         } | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
| } | ||||
							
								
								
									
										136
									
								
								Adaptation/FileHandlers/pdsf/FileRead.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										136
									
								
								Adaptation/FileHandlers/pdsf/FileRead.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,136 @@ | ||||
| using Adaptation.Eaf.Management.ConfigurationData.CellAutomation; | ||||
| using Adaptation.Ifx.Eaf.EquipmentConnector.File.Configuration; | ||||
| using Adaptation.Shared; | ||||
| using Adaptation.Shared.Duplicator; | ||||
| using Adaptation.Shared.Methods; | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.Collections.ObjectModel; | ||||
| using System.IO; | ||||
| using System.Text.Json; | ||||
|  | ||||
| namespace Adaptation.FileHandlers.pdsf; | ||||
|  | ||||
| public class FileRead : Shared.FileRead, IFileRead | ||||
| { | ||||
|  | ||||
|     private readonly string _GhostPCLFileName; | ||||
|     private readonly string _PDFTextStripperFileName; | ||||
|  | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<Shared.Metrology.WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
|         base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null) | ||||
|     { | ||||
|         _MinFileLength = 150; | ||||
|         _NullData = string.Empty; | ||||
|         _Logistics = new(this); | ||||
|         if (_FileParameter is null) | ||||
|             throw new Exception(cellInstanceConnectionName); | ||||
|         if (_ModelObjectParameterDefinitions is null) | ||||
|             throw new Exception(cellInstanceConnectionName); | ||||
|         if (_IsDuplicator) | ||||
|             throw new Exception(cellInstanceConnectionName); | ||||
|         _GhostPCLFileName = Path.Combine(AppContext.BaseDirectory, "gpcl6win64.exe"); | ||||
|         if (!File.Exists(_GhostPCLFileName)) | ||||
|             throw new Exception("Ghost PCL FileName doesn't Exist!"); | ||||
|         _PDFTextStripperFileName = Path.Combine(AppContext.BaseDirectory, "PDF-Text-Stripper.exe"); | ||||
|         if (!File.Exists(_PDFTextStripperFileName)) | ||||
|             throw new Exception("PDF-Text-Stripper FileName doesn't Exist!"); | ||||
|         if (_IsEAFHosted) | ||||
|             NestExistingFiles(_FileConnectorConfiguration); | ||||
|     } | ||||
|  | ||||
|     void IFileRead.Move(Tuple<string, Test[], JsonElement[], List<FileInfo>> extractResults, Exception exception) => Move(extractResults); | ||||
|  | ||||
|     void IFileRead.WaitForThread() => WaitForThread(thread: null, threadExceptions: null); | ||||
|  | ||||
|     string IFileRead.GetEventDescription() | ||||
|     { | ||||
|         string result = _Description.GetEventDescription(); | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
|     List<string> IFileRead.GetHeaderNames() | ||||
|     { | ||||
|         List<string> results = _Description.GetHeaderNames(); | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|     string[] IFileRead.Move(Tuple<string, Test[], JsonElement[], List<FileInfo>> extractResults, string to, string from, string resolvedFileLocation, Exception exception) | ||||
|     { | ||||
|         string[] results = Move(extractResults, to, from, resolvedFileLocation, exception); | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|     JsonProperty[] IFileRead.GetDefault() | ||||
|     { | ||||
|         JsonProperty[] results = _Description.GetDefault(this, _Logistics); | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|     Dictionary<string, string> IFileRead.GetDisplayNamesJsonElement() | ||||
|     { | ||||
|         Dictionary<string, string> results = _Description.GetDisplayNamesJsonElement(this); | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|     List<IDescription> IFileRead.GetDescriptions(IFileRead fileRead, List<Test> tests, IProcessData processData) | ||||
|     { | ||||
|         List<IDescription> results = _Description.GetDescriptions(fileRead, _Logistics, tests, processData); | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|     Tuple<string, Test[], JsonElement[], List<FileInfo>> IFileRead.GetExtractResult(string reportFullPath, string eventName) | ||||
|     { | ||||
|         Tuple<string, Test[], JsonElement[], List<FileInfo>> results; | ||||
|         if (string.IsNullOrEmpty(eventName)) | ||||
|             throw new Exception(); | ||||
|         _ReportFullPath = reportFullPath; | ||||
|         DateTime dateTime = DateTime.Now; | ||||
|         results = GetExtractResult(reportFullPath, dateTime); | ||||
|         if (results.Item3 is null) | ||||
|             results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(results.Item1, Array.Empty<Test>(), JsonSerializer.Deserialize<JsonElement[]>("[]"), results.Item4); | ||||
|         if (results.Item3.Length > 0 && _IsEAFHosted) | ||||
|             WritePDSF(this, results.Item3); | ||||
|         UpdateLastTicksDuration(DateTime.Now.Ticks - dateTime.Ticks); | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|     Tuple<string, Test[], JsonElement[], List<FileInfo>> IFileRead.ReExtract() | ||||
|     { | ||||
|         Tuple<string, Test[], JsonElement[], List<FileInfo>> results; | ||||
|         List<string> headerNames = _Description.GetHeaderNames(); | ||||
|         Dictionary<string, string> keyValuePairs = _Description.GetDisplayNamesJsonElement(this); | ||||
|         results = ReExtract(this, headerNames, keyValuePairs); | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
| #nullable enable | ||||
|  | ||||
|     private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime) | ||||
|     { | ||||
|         Tuple<string, Test[], JsonElement[], List<FileInfo>> results; | ||||
|         string result; | ||||
|         JsonElement[] jsonElements; | ||||
|         Test[] tests = Array.Empty<Test>(); | ||||
|         List<FileInfo> fileInfoCollection = new(); | ||||
|         ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath); | ||||
|         _Logistics = new Logistics(reportFullPath, processDataStandardFormat); | ||||
|         SetFileParameterLotIDToLogisticsMID(); | ||||
|         ReadOnlyCollection<string> lines = Convert.PDF(_Logistics, _GhostPCLFileName, _PDFTextStripperFileName, fileInfoCollection); | ||||
|         Run? run = Run.Get(_Logistics, fileInfoCollection, lines); | ||||
|         if (run is null) | ||||
|         { | ||||
|             jsonElements = Array.Empty<JsonElement>(); | ||||
|             result = string.Concat("A) No Data - ", dateTime.Ticks); | ||||
|             results = new(result, tests, jsonElements, fileInfoCollection); | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             result = string.Join(Environment.NewLine, _Logistics.Logistics1); | ||||
|             jsonElements = _IsEAFHosted ? Array.Empty<JsonElement>() : ProcessDataStandardFormat.GetArray(processDataStandardFormat); | ||||
|             results = new(result, tests, jsonElements, fileInfoCollection); | ||||
|         } | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
| } | ||||
							
								
								
									
										169
									
								
								Adaptation/FileHandlers/pdsf/Header.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										169
									
								
								Adaptation/FileHandlers/pdsf/Header.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,169 @@ | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.Collections.ObjectModel; | ||||
| using System.Linq; | ||||
| using System.Text.Json; | ||||
| using System.Text.Json.Serialization; | ||||
|  | ||||
| namespace Adaptation.FileHandlers.pdsf; | ||||
|  | ||||
| #nullable enable | ||||
|  | ||||
| internal class Header | ||||
| { | ||||
|  | ||||
|     [JsonConstructor] | ||||
|     public Header(string @operator, string startVoltage, string wafer, string stopVoltage, string lot, string rampRate, string plan, string gLimit, string date, string time, string setupFile, string waferSize, string folder, string ccomp, string pattern, string area, string condType, string rhoMethod, string model) | ||||
|     { | ||||
|         Operator = @operator; | ||||
|         StartVoltage = startVoltage; | ||||
|         Wafer = wafer; | ||||
|         StopVoltage = stopVoltage; | ||||
|         Lot = lot; | ||||
|         RampRate = rampRate; | ||||
|         Plan = plan; | ||||
|         GLimit = gLimit; | ||||
|         Date = date; | ||||
|         Time = time; | ||||
|         SetupFile = setupFile; | ||||
|         WaferSize = waferSize; | ||||
|         Folder = folder; | ||||
|         Ccomp = ccomp; | ||||
|         Pattern = pattern; | ||||
|         Area = area; | ||||
|         CondType = condType; | ||||
|         RhoMethod = rhoMethod; | ||||
|         Model = model; | ||||
|     } | ||||
|  | ||||
|     [JsonPropertyName("Operator")] public string Operator { get; } | ||||
|     [JsonPropertyName("Start Voltage")] public string StartVoltage { get; } | ||||
|     [JsonPropertyName("Wafer")] public string Wafer { get; } | ||||
|     [JsonPropertyName("Stop Voltage")] public string StopVoltage { get; } | ||||
|     [JsonPropertyName("Lot")] public string Lot { get; } | ||||
|     [JsonPropertyName("Ramp Rate")] public string RampRate { get; } | ||||
|     [JsonPropertyName("Plan")] public string Plan { get; } | ||||
|     [JsonPropertyName("G limit")] public string GLimit { get; } | ||||
|     [JsonPropertyName("Date")] public string Date { get; } | ||||
|     [JsonPropertyName("Time")] public string Time { get; } | ||||
|     [JsonPropertyName("Setup File")] public string SetupFile { get; } | ||||
|     [JsonPropertyName("Wafer size")] public string WaferSize { get; } | ||||
|     [JsonPropertyName("Folder")] public string Folder { get; } | ||||
|     [JsonPropertyName("Ccomp")] public string Ccomp { get; } | ||||
|     [JsonPropertyName("Pattern")] public string Pattern { get; } | ||||
|     [JsonPropertyName("Area")] public string Area { get; } | ||||
|     [JsonPropertyName("Cond Type")] public string CondType { get; } | ||||
|     [JsonPropertyName("Rho Method")] public string RhoMethod { get; } | ||||
|     [JsonPropertyName("Model")] public string Model { get; } | ||||
|  | ||||
|     private static string[] GetRemove() => | ||||
|         new string[] | ||||
|         { | ||||
|             " L L", | ||||
|             " O O", | ||||
|             " G G", | ||||
|             " C C", | ||||
|             " O O", | ||||
|             " N N", | ||||
|             " C C", | ||||
|             " E E", | ||||
|             " N N", | ||||
|             " T T", | ||||
|             " R R", | ||||
|             " A A", | ||||
|             " T T", | ||||
|             " I I", | ||||
|             " O O", | ||||
|             " N N" | ||||
|         }; | ||||
|  | ||||
|     public static Header Get() => | ||||
|         new(string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty); | ||||
|  | ||||
|     private static ReadOnlyCollection<JsonProperty> GetJsonProperties() | ||||
|     { | ||||
|         JsonProperty[] results; | ||||
|         string json; | ||||
|         Header header = Get(); | ||||
|         json = JsonSerializer.Serialize(header); | ||||
|         JsonElement jsonElement = JsonSerializer.Deserialize<JsonElement>(json); | ||||
|         results = jsonElement.EnumerateObject().ToArray(); | ||||
|         return new(results); | ||||
|     } | ||||
|  | ||||
|     public static Header? Get(Constant constant, ReadOnlyCollection<string> lines) | ||||
|     { | ||||
|         Header? result; | ||||
|         string json; | ||||
|         string check; | ||||
|         string[] segments; | ||||
|         string[] segmentsB; | ||||
|         string[] segmentsC; | ||||
|         bool found = false; | ||||
|         string[] remove = GetRemove(); | ||||
|         Dictionary<string, string> keyValuePairs = new(); | ||||
|         ReadOnlyCollection<JsonProperty> jsonProperties = GetJsonProperties(); | ||||
|         foreach (string line in lines) | ||||
|         { | ||||
|             if (line.Contains(constant.Site)) | ||||
|                 found = true; | ||||
|             if (!found) | ||||
|                 continue; | ||||
|             if (line == constant.SummaryLine) | ||||
|                 break; | ||||
|             foreach (JsonProperty jsonProperty in jsonProperties) | ||||
|             { | ||||
|                 segments = line.Split(new string[] { $"{jsonProperty.Name}:", $"{jsonProperty.Name} :" }, StringSplitOptions.None); | ||||
|                 if (segments.Length < 2) | ||||
|                     continue; | ||||
|                 check = segments[1].Trim(); | ||||
|                 foreach (JsonProperty jsonPropertyB in jsonProperties) | ||||
|                 { | ||||
|                     segmentsB = check.Split(new string[] { $"{jsonPropertyB.Name}:", $"{jsonPropertyB.Name} :" }, StringSplitOptions.None); | ||||
|                     if (segmentsB.Length > 1) | ||||
|                         check = segmentsB[0].Trim(); | ||||
|                 } | ||||
|                 foreach (string r in remove) | ||||
|                 { | ||||
|                     segmentsC = check.Split(new string[] { r }, StringSplitOptions.None); | ||||
|                     if (segmentsC.Length > 1) | ||||
|                         check = segmentsC[0].Trim(); | ||||
|                 } | ||||
|                 keyValuePairs.Add(jsonProperty.Name, check); | ||||
|             } | ||||
|         } | ||||
|         if (keyValuePairs.Count != jsonProperties.Count) | ||||
|             result = null; | ||||
|         else | ||||
|         { | ||||
|             json = JsonSerializer.Serialize(keyValuePairs); | ||||
|             result = JsonSerializer.Deserialize(json, HeaderSourceGenerationContext.Default.Header) ?? throw new NullReferenceException(nameof(result)); | ||||
|         } | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
| } | ||||
|  | ||||
| [JsonSourceGenerationOptions(WriteIndented = true)] | ||||
| [JsonSerializable(typeof(Header))] | ||||
| internal partial class HeaderSourceGenerationContext : JsonSerializerContext | ||||
| { | ||||
| } | ||||
							
								
								
									
										143
									
								
								Adaptation/FileHandlers/pdsf/Point.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										143
									
								
								Adaptation/FileHandlers/pdsf/Point.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,143 @@ | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.Collections.ObjectModel; | ||||
| using System.Text.Json.Serialization; | ||||
|  | ||||
| namespace Adaptation.FileHandlers.pdsf; | ||||
|  | ||||
| #nullable enable | ||||
|  | ||||
| internal class Point | ||||
| { | ||||
|  | ||||
|     public Point(string site, string x, string y, string nAvg, string rhoAvg, string nsl, string rhosl, string vd, string phase, string flatZ, string grade, string xLeft, string xRight, string bottomY, string topY) | ||||
|     { | ||||
|         Site = site; | ||||
|         X = x; | ||||
|         Y = y; | ||||
|         NAvg = nAvg; | ||||
|         RhoAvg = rhoAvg; | ||||
|         Nsl = nsl; | ||||
|         Rhosl = rhosl; | ||||
|         Vd = vd; | ||||
|         Phase = phase; | ||||
|         FlatZ = flatZ; | ||||
|         Grade = grade; | ||||
|         XLeft = xLeft; | ||||
|         XRight = xRight; | ||||
|         BottomY = bottomY; | ||||
|         TopY = topY; | ||||
|     } | ||||
|  | ||||
|     [JsonPropertyName("Site")] public string Site { get; } | ||||
|     [JsonPropertyName("X")] public string X { get; } | ||||
|     [JsonPropertyName("Y")] public string Y { get; } | ||||
|     [JsonPropertyName("Navg")] public string NAvg { get; } | ||||
|     [JsonPropertyName("Rhoavg")] public string RhoAvg { get; } | ||||
|     [JsonPropertyName("Nsl")] public string Nsl { get; } | ||||
|     [JsonPropertyName("Rhosl")] public string Rhosl { get; } | ||||
|     [JsonPropertyName("Vd")] public string Vd { get; } | ||||
|     [JsonPropertyName("Phase")] public string Phase { get; } | ||||
|     [JsonPropertyName("Flat Z")] public string FlatZ { get; } | ||||
|     [JsonPropertyName("Grade")] public string Grade { get; } | ||||
|     [JsonPropertyName("X Left")] public string XLeft { get; } | ||||
|     [JsonPropertyName("X Right")] public string XRight { get; } | ||||
|     [JsonPropertyName("Bottom Y")] public string BottomY { get; } | ||||
|     [JsonPropertyName("Top Y")] public string TopY { get; } | ||||
|  | ||||
|     public static Point Get() => | ||||
|         new(string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty); | ||||
|  | ||||
|     public static ReadOnlyCollection<Point> GetCollection(Constant constant, ReadOnlyCollection<string> lines) | ||||
|     { | ||||
|         List<Point> results = new(); | ||||
|         string s; | ||||
|         string line; | ||||
|         Point point; | ||||
|         string[] segments; | ||||
|         string[] segmentsB; | ||||
|         bool found = false; | ||||
|         string[] segmentsC; | ||||
|         bool foundB = false; | ||||
|         int x = constant.Take - 2; | ||||
|         List<string> sites = new(); | ||||
|         for (int i = 0; i < lines.Count; i++) | ||||
|         { | ||||
|             line = lines[i]; | ||||
|             segmentsC = line.Split(new string[] { constant.Site }, StringSplitOptions.RemoveEmptyEntries); | ||||
|             if (segmentsC.Length > 1) | ||||
|             { | ||||
|                 foreach (string segment in segmentsC) | ||||
|                     sites.Add(segment.Trim()); | ||||
|             } | ||||
|             if (line == constant.SummaryLine) | ||||
|             { | ||||
|                 sites.RemoveAt(0); | ||||
|                 found = true; | ||||
|             } | ||||
|             if (!found) | ||||
|                 continue; | ||||
|             if (!foundB && line.Contains(constant.Multiple)) | ||||
|                 foundB = true; | ||||
|             if (line != constant.LastUnitsB) | ||||
|                 continue; | ||||
|             if (foundB) | ||||
|             { | ||||
|                 foundB = false; | ||||
|                 continue; | ||||
|             } | ||||
|             for (int j = 0; j < sites.Count; j++) | ||||
|             { | ||||
|                 s = sites[j]; | ||||
|                 if (i + constant.Take > lines.Count) | ||||
|                     break; | ||||
|                 segments = s.Split(new string[] { "(", ",", ")" }, StringSplitOptions.None); | ||||
|                 if (segments.Length < 2) | ||||
|                     break; | ||||
|                 segmentsB = lines[i + x].Split(' '); | ||||
|                 if (segmentsB.Length < 2) | ||||
|                     break; | ||||
|                 point = new(site: segments[0].Trim(), | ||||
|                             x: segments[1].Trim(), | ||||
|                             y: segments[2].Trim(), | ||||
|                             nAvg: lines[i + 1].Trim(), | ||||
|                             nsl: lines[i + 2].Trim(), | ||||
|                             vd: lines[i + 3].Trim(), | ||||
|                             flatZ: lines[i + 4].Trim(), | ||||
|                             rhoAvg: lines[i + 5].Trim(), | ||||
|                             rhosl: lines[i + 6].Trim(), | ||||
|                             phase: lines[i + 7].Trim(), | ||||
|                             grade: lines[i + 8].Trim(), | ||||
|                             xLeft: segmentsB[0], | ||||
|                             xRight: segmentsB[1], | ||||
|                             bottomY: lines[i + 10].Trim(), | ||||
|                             topY: lines[i + 11].Trim()); | ||||
|                 results.Add(point); | ||||
|                 i += constant.Take; | ||||
|             } | ||||
|             sites.Clear(); | ||||
|         } | ||||
|         return new(results); | ||||
|     } | ||||
|  | ||||
| } | ||||
|  | ||||
| [JsonSourceGenerationOptions(WriteIndented = true)] | ||||
| [JsonSerializable(typeof(Point))] | ||||
| internal partial class PointSourceGenerationContext : JsonSerializerContext | ||||
| { | ||||
| } | ||||
							
								
								
									
										196
									
								
								Adaptation/FileHandlers/pdsf/Row.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										196
									
								
								Adaptation/FileHandlers/pdsf/Row.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,196 @@ | ||||
| using System.Text.Json.Serialization; | ||||
|  | ||||
| namespace Adaptation.FileHandlers.pdsf; | ||||
|  | ||||
| #nullable enable | ||||
|  | ||||
| internal class Row | ||||
| { | ||||
|  | ||||
|     public Row(Run run, int i) | ||||
|     { | ||||
|         Index = i; | ||||
|         // | ||||
|         Operator = run.Header.Operator; | ||||
|         StartVoltage = run.Header.StartVoltage; | ||||
|         Wafer = run.Header.Wafer; | ||||
|         StopVoltage = run.Header.StopVoltage; | ||||
|         Lot = run.Header.Lot; | ||||
|         RampRate = run.Header.RampRate; | ||||
|         Plan = run.Header.Plan; | ||||
|         GLimit = run.Header.GLimit; | ||||
|         Date = run.Header.Date; | ||||
|         Time = run.Header.Time; | ||||
|         SetupFile = run.Header.SetupFile; | ||||
|         WaferSize = run.Header.WaferSize; | ||||
|         Folder = run.Header.Folder; | ||||
|         Ccomp = run.Header.Ccomp; | ||||
|         Pattern = run.Header.Pattern; | ||||
|         Area = run.Header.Area; | ||||
|         CondType = run.Header.CondType; | ||||
|         RhoMethod = run.Header.RhoMethod; | ||||
|         Model = run.Header.Model; | ||||
|         if (run.Summary.Mean is null) | ||||
|         { | ||||
|             MeanNAvg = string.Empty; | ||||
|             MeanNsl = string.Empty; | ||||
|             MeanVd = string.Empty; | ||||
|             MeanFlatZ = string.Empty; | ||||
|             MeanRhoAvg = string.Empty; | ||||
|             MeanRhosl = string.Empty; | ||||
|             MeanPhase = string.Empty; | ||||
|             MeanGrade = string.Empty; | ||||
|             MeanRs = string.Empty; | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             MeanNAvg = run.Summary.Mean.NAvg; | ||||
|             MeanNsl = run.Summary.Mean.Nsl; | ||||
|             MeanVd = run.Summary.Mean.Vd; | ||||
|             MeanFlatZ = run.Summary.Mean.FlatZ; | ||||
|             MeanRhoAvg = run.Summary.Mean.RhoAvg; | ||||
|             MeanRhosl = run.Summary.Mean.Rhosl; | ||||
|             MeanPhase = run.Summary.Mean.Phase; | ||||
|             MeanGrade = run.Summary.Mean.Grade; | ||||
|             MeanRs = run.Summary.Mean.Rs; | ||||
|         } | ||||
|         if (run.Summary.StandardDeviationPercentage is null) | ||||
|         { | ||||
|             StandardDeviationPercentageNAvg = string.Empty; | ||||
|             StandardDeviationPercentageNsl = string.Empty; | ||||
|             StandardDeviationPercentageVd = string.Empty; | ||||
|             StandardDeviationPercentageFlatZ = string.Empty; | ||||
|             StandardDeviationPercentageRhoAvg = string.Empty; | ||||
|             StandardDeviationPercentageRhosl = string.Empty; | ||||
|             StandardDeviationPercentagePhase = string.Empty; | ||||
|             StandardDeviationPercentageGrade = string.Empty; | ||||
|             StandardDeviationPercentageRs = string.Empty; | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             StandardDeviationPercentageNAvg = run.Summary.StandardDeviationPercentage.NAvg; | ||||
|             StandardDeviationPercentageNsl = run.Summary.StandardDeviationPercentage.Nsl; | ||||
|             StandardDeviationPercentageVd = run.Summary.StandardDeviationPercentage.Vd; | ||||
|             StandardDeviationPercentageFlatZ = run.Summary.StandardDeviationPercentage.FlatZ; | ||||
|             StandardDeviationPercentageRhoAvg = run.Summary.StandardDeviationPercentage.RhoAvg; | ||||
|             StandardDeviationPercentageRhosl = run.Summary.StandardDeviationPercentage.Rhosl; | ||||
|             StandardDeviationPercentagePhase = run.Summary.StandardDeviationPercentage.Phase; | ||||
|             StandardDeviationPercentageGrade = run.Summary.StandardDeviationPercentage.Grade; | ||||
|             StandardDeviationPercentageRs = run.Summary.StandardDeviationPercentage.Rs; | ||||
|         } | ||||
|         if (run.Summary.RadialGradient is null) | ||||
|         { | ||||
|             RadialGradientNAvg = string.Empty; | ||||
|             RadialGradientNsl = string.Empty; | ||||
|             RadialGradientVd = string.Empty; | ||||
|             RadialGradientFlatZ = string.Empty; | ||||
|             RadialGradientRhoAvg = string.Empty; | ||||
|             RadialGradientRhosl = string.Empty; | ||||
|             RadialGradientPhase = string.Empty; | ||||
|             RadialGradientGrade = string.Empty; | ||||
|             RadialGradientRs = string.Empty; | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             RadialGradientNAvg = run.Summary.RadialGradient.NAvg; | ||||
|             RadialGradientNsl = run.Summary.RadialGradient.Nsl; | ||||
|             RadialGradientVd = run.Summary.RadialGradient.Vd; | ||||
|             RadialGradientFlatZ = run.Summary.RadialGradient.FlatZ; | ||||
|             RadialGradientRhoAvg = run.Summary.RadialGradient.RhoAvg; | ||||
|             RadialGradientRhosl = run.Summary.RadialGradient.Rhosl; | ||||
|             RadialGradientPhase = run.Summary.RadialGradient.Phase; | ||||
|             RadialGradientGrade = run.Summary.RadialGradient.Grade; | ||||
|             RadialGradientRs = run.Summary.RadialGradient.Rs; | ||||
|         } | ||||
|         Site = run.Points[i].Site; | ||||
|         X = run.Points[i].X; | ||||
|         Y = run.Points[i].Y; | ||||
|         NAvg = run.Points[i].NAvg; | ||||
|         RhoAvg = run.Points[i].RhoAvg; | ||||
|         Nsl = run.Points[i].Nsl; | ||||
|         Rhosl = run.Points[i].Rhosl; | ||||
|         Vd = run.Points[i].Vd; | ||||
|         Phase = run.Points[i].Phase; | ||||
|         FlatZ = run.Points[i].FlatZ; | ||||
|         Grade = run.Points[i].Grade; | ||||
|         XLeft = run.Points[i].XLeft; | ||||
|         XRight = run.Points[i].XRight; | ||||
|         BottomY = run.Points[i].BottomY; | ||||
|         TopY = run.Points[i].TopY; | ||||
|     } | ||||
|  | ||||
|     public int Index { get; } | ||||
|     // | ||||
|     public string Operator { get; } | ||||
|     public string StartVoltage { get; } | ||||
|     public string Wafer { get; } | ||||
|     public string StopVoltage { get; } | ||||
|     public string Lot { get; } | ||||
|     public string RampRate { get; } | ||||
|     public string Plan { get; } | ||||
|     public string GLimit { get; } | ||||
|     public string Date { get; } | ||||
|     public string Time { get; } | ||||
|     public string SetupFile { get; } | ||||
|     public string WaferSize { get; } | ||||
|     public string Folder { get; } | ||||
|     public string Ccomp { get; } | ||||
|     public string Pattern { get; } | ||||
|     public string Area { get; } | ||||
|     public string CondType { get; } | ||||
|     public string RhoMethod { get; } | ||||
|     public string Model { get; } | ||||
|     // | ||||
|     public string MeanNAvg { get; } | ||||
|     public string MeanNsl { get; } | ||||
|     public string MeanVd { get; } | ||||
|     public string MeanFlatZ { get; } | ||||
|     public string MeanRhoAvg { get; } | ||||
|     public string MeanRhosl { get; } | ||||
|     public string MeanPhase { get; } | ||||
|     public string MeanGrade { get; } | ||||
|     public string MeanRs { get; } | ||||
|     // | ||||
|     public string StandardDeviationPercentageNAvg { get; } | ||||
|     public string StandardDeviationPercentageNsl { get; } | ||||
|     public string StandardDeviationPercentageVd { get; } | ||||
|     public string StandardDeviationPercentageFlatZ { get; } | ||||
|     public string StandardDeviationPercentageRhoAvg { get; } | ||||
|     public string StandardDeviationPercentageRhosl { get; } | ||||
|     public string StandardDeviationPercentagePhase { get; } | ||||
|     public string StandardDeviationPercentageGrade { get; } | ||||
|     public string StandardDeviationPercentageRs { get; } | ||||
|     // | ||||
|     public string RadialGradientNAvg { get; } | ||||
|     public string RadialGradientNsl { get; } | ||||
|     public string RadialGradientVd { get; } | ||||
|     public string RadialGradientFlatZ { get; } | ||||
|     public string RadialGradientRhoAvg { get; } | ||||
|     public string RadialGradientRhosl { get; } | ||||
|     public string RadialGradientPhase { get; } | ||||
|     public string RadialGradientGrade { get; } | ||||
|     public string RadialGradientRs { get; } | ||||
|     // | ||||
|     public string Site { get; } | ||||
|     public string X { get; } | ||||
|     public string Y { get; } | ||||
|     public string NAvg { get; } | ||||
|     public string RhoAvg { get; } | ||||
|     public string Nsl { get; } | ||||
|     public string Rhosl { get; } | ||||
|     public string Vd { get; } | ||||
|     public string Phase { get; } | ||||
|     public string FlatZ { get; } | ||||
|     public string Grade { get; } | ||||
|     public string XLeft { get; } | ||||
|     public string XRight { get; } | ||||
|     public string BottomY { get; } | ||||
|     public string TopY { get; } | ||||
|  | ||||
| } | ||||
|  | ||||
| [JsonSourceGenerationOptions(WriteIndented = true)] | ||||
| [JsonSerializable(typeof(Row))] | ||||
| internal partial class RowSourceGenerationContext : JsonSerializerContext | ||||
| { | ||||
| } | ||||
							
								
								
									
										148
									
								
								Adaptation/FileHandlers/pdsf/Run.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										148
									
								
								Adaptation/FileHandlers/pdsf/Run.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,148 @@ | ||||
| using Adaptation.Shared; | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.Collections.ObjectModel; | ||||
| using System.IO; | ||||
| using System.Text; | ||||
| using System.Text.Json; | ||||
| using System.Text.Json.Serialization; | ||||
|  | ||||
| namespace Adaptation.FileHandlers.pdsf; | ||||
|  | ||||
| #nullable enable | ||||
|  | ||||
| internal class Run | ||||
| { | ||||
|  | ||||
|     public Run(Header header, Summary summary, ReadOnlyCollection<Point> points) | ||||
|     { | ||||
|         Header = header; | ||||
|         Summary = summary; | ||||
|         Points = points; | ||||
|     } | ||||
|  | ||||
|     public Header Header { get; } | ||||
|     public Summary Summary { get; } | ||||
|     public ReadOnlyCollection<Point> Points { get; } | ||||
|  | ||||
|     private static ReadOnlyCollection<string> FilterLines(ReadOnlyCollection<string> collection) | ||||
|     { | ||||
|         List<string> results = new(); | ||||
|         foreach (string line in collection) | ||||
|         { | ||||
|             if (string.IsNullOrEmpty(line) || line is "*" or "@") | ||||
|                 continue; | ||||
|             if (line.Length < 3 || line[0] is not '*' and not '@' || line[1] != ' ') | ||||
|                 results.Add(line); | ||||
|             else | ||||
|                 results.Add(line.Substring(2)); | ||||
|         } | ||||
|         return new(results); | ||||
|     } | ||||
|  | ||||
|     private static void WriteJson(Logistics logistics, List<FileInfo> fileInfoCollection, Run result) | ||||
|     { | ||||
|         FileInfo fileInfo = new($"{logistics.ReportFullPath}.run.json"); | ||||
|         string json = JsonSerializer.Serialize(result, RunSourceGenerationContext.Default.Run); | ||||
|         File.WriteAllText(fileInfo.FullName, json); | ||||
|         File.SetLastWriteTime(fileInfo.FullName, logistics.DateTimeFromSequence); | ||||
|         fileInfoCollection.Add(fileInfo); | ||||
|     } | ||||
|  | ||||
|     private static ReadOnlyCollection<string> GetLines(Logistics logistics, JsonElement[]? jsonElements) | ||||
|     { | ||||
|         List<string> results = new(); | ||||
|         int columns = 0; | ||||
|         StringBuilder stringBuilder = new(); | ||||
|         results.Add($"\"Count\",{jsonElements?.Length}"); | ||||
|         results.Add($"\"{nameof(logistics.Sequence)}\",\"{logistics.Sequence}\""); | ||||
|         results.Add($"\"{nameof(logistics.MesEntity)}\",\"{logistics.MesEntity}\""); | ||||
|         string dateTimeFromSequence = logistics.DateTimeFromSequence.ToString("MM/dd/yyyy hh:mm:ss tt"); | ||||
|         for (int i = 0; i < jsonElements?.Length;) | ||||
|         { | ||||
|             _ = stringBuilder.Append('"').Append(nameof(logistics.DateTimeFromSequence)).Append('"').Append(','); | ||||
|             foreach (JsonProperty jsonProperty in jsonElements[0].EnumerateObject()) | ||||
|             { | ||||
|                 columns += 1; | ||||
|                 _ = stringBuilder.Append('"').Append(jsonProperty.Name).Append('"').Append(','); | ||||
|             } | ||||
|             break; | ||||
|         } | ||||
|         if (jsonElements?.Length != 0) | ||||
|             _ = stringBuilder.Remove(stringBuilder.Length - 1, 1); | ||||
|         results.Add(stringBuilder.ToString()); | ||||
|         for (int i = 0; i < jsonElements?.Length; i++) | ||||
|         { | ||||
|             _ = stringBuilder.Clear(); | ||||
|             _ = stringBuilder.Append('"').Append(dateTimeFromSequence).Append('"').Append(','); | ||||
|             foreach (JsonProperty jsonProperty in jsonElements[i].EnumerateObject()) | ||||
|             { | ||||
|                 if (jsonProperty.Value.ValueKind == JsonValueKind.Object) | ||||
|                     _ = stringBuilder.Append(','); | ||||
|                 else if (jsonProperty.Value.ValueKind != JsonValueKind.String) | ||||
|                     _ = stringBuilder.Append(jsonProperty.Value).Append(','); | ||||
|                 else | ||||
|                     _ = stringBuilder.Append('"').Append(jsonProperty.Value).Append('"').Append(','); | ||||
|             } | ||||
|             _ = stringBuilder.Remove(stringBuilder.Length - 1, 1); | ||||
|             results.Add(stringBuilder.ToString()); | ||||
|         } | ||||
|         return results.AsReadOnly(); | ||||
|     } | ||||
|  | ||||
|     private static void WriteCommaSeparatedValues(Logistics logistics, Run run) | ||||
|     { | ||||
|         List<Row> results = new(); | ||||
|         Row row; | ||||
|         for (int i = 0; i < run.Points.Count; i++) | ||||
|         { | ||||
|             row = new(run, i); | ||||
|             results.Add(row); | ||||
|         } | ||||
|         string json = JsonSerializer.Serialize(results); | ||||
|         JsonElement[]? jsonElements = JsonSerializer.Deserialize<JsonElement[]>(json); | ||||
|         ReadOnlyCollection<string> lines = GetLines(logistics, jsonElements); | ||||
|         File.WriteAllText($"{logistics.ReportFullPath}.csv", string.Join(Environment.NewLine, lines)); | ||||
|     } | ||||
|  | ||||
|     public static Run? Get(Logistics logistics, List<FileInfo> fileInfoCollection, ReadOnlyCollection<string> collection) | ||||
|     { | ||||
|         Run? result; | ||||
|         Constant constant = new(); | ||||
|         ReadOnlyCollection<string> lines = FilterLines(collection); | ||||
|         if (collection.Count <= constant.Take) | ||||
|             result = null; | ||||
|         else | ||||
|         { | ||||
|             Header? header = Header.Get(constant, lines); | ||||
|             if (header is null) | ||||
|                 result = null; | ||||
|             else | ||||
|             { | ||||
|                 Summary? summary = SummarySegment.Get(constant, lines); | ||||
|                 if (summary is null) | ||||
|                     result = null; | ||||
|                 else | ||||
|                 { | ||||
|                     ReadOnlyCollection<Point> points = Point.GetCollection(constant, lines) ?? throw new NullReferenceException(nameof(summary)); | ||||
|                     if (points.Count == 0) | ||||
|                         result = null; | ||||
|                     else | ||||
|                     { | ||||
|                         result = new(header, summary, points); | ||||
|                         WriteJson(logistics, fileInfoCollection, result); | ||||
|                         WriteCommaSeparatedValues(logistics, result); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
| } | ||||
|  | ||||
| [JsonSourceGenerationOptions(WriteIndented = true)] | ||||
| [JsonSerializable(typeof(Run))] | ||||
| internal partial class RunSourceGenerationContext : JsonSerializerContext | ||||
| { | ||||
| } | ||||
							
								
								
									
										27
									
								
								Adaptation/FileHandlers/pdsf/Summary.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								Adaptation/FileHandlers/pdsf/Summary.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,27 @@ | ||||
| using System.Text.Json.Serialization; | ||||
|  | ||||
| namespace Adaptation.FileHandlers.pdsf; | ||||
|  | ||||
| #nullable enable | ||||
|  | ||||
| internal class Summary | ||||
| { | ||||
|  | ||||
|     public Summary(SummarySegment? mean, SummarySegment? standardDeviationPercentage, SummarySegment? radialGradient) | ||||
|     { | ||||
|         Mean = mean; | ||||
|         StandardDeviationPercentage = standardDeviationPercentage; | ||||
|         RadialGradient = radialGradient; | ||||
|     } | ||||
|  | ||||
|     public SummarySegment? Mean { get; } | ||||
|     public SummarySegment? StandardDeviationPercentage { get; } | ||||
|     public SummarySegment? RadialGradient { get; } | ||||
|  | ||||
| } | ||||
|  | ||||
| [JsonSourceGenerationOptions(WriteIndented = true)] | ||||
| [JsonSerializable(typeof(Summary))] | ||||
| internal partial class SummarySourceGenerationContext : JsonSerializerContext | ||||
| { | ||||
| } | ||||
							
								
								
									
										119
									
								
								Adaptation/FileHandlers/pdsf/SummarySegment.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								Adaptation/FileHandlers/pdsf/SummarySegment.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,119 @@ | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.Collections.ObjectModel; | ||||
| using System.Linq; | ||||
| using System.Text.Json; | ||||
| using System.Text.Json.Serialization; | ||||
|  | ||||
| namespace Adaptation.FileHandlers.pdsf; | ||||
|  | ||||
| #nullable enable | ||||
|  | ||||
| internal class SummarySegment | ||||
| { | ||||
|  | ||||
|     public SummarySegment(string nAvg, string nsl, string vd, string flatZ, string rhoAvg, string rhosl, string phase, string grade, string rs) | ||||
|     { | ||||
|         NAvg = nAvg; | ||||
|         Nsl = nsl; | ||||
|         Vd = vd; | ||||
|         FlatZ = flatZ; | ||||
|         RhoAvg = rhoAvg; | ||||
|         Rhosl = rhosl; | ||||
|         Phase = phase; | ||||
|         Grade = grade; | ||||
|         Rs = rs; | ||||
|     } | ||||
|  | ||||
|     [JsonPropertyName("Navg")] public string NAvg { get; } | ||||
|     [JsonPropertyName("Nsl")] public string Nsl { get; } | ||||
|     [JsonPropertyName("Vd")] public string Vd { get; } | ||||
|     [JsonPropertyName("Flat Z")] public string FlatZ { get; } | ||||
|     [JsonPropertyName("Rhoavg")] public string RhoAvg { get; } | ||||
|     [JsonPropertyName("Rhosl")] public string Rhosl { get; } | ||||
|     [JsonPropertyName("Phase")] public string Phase { get; } | ||||
|     [JsonPropertyName("Grade")] public string Grade { get; } | ||||
|     [JsonPropertyName("Rs")] public string Rs { get; } | ||||
|  | ||||
|     public static SummarySegment Get() => | ||||
|         new(string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty, | ||||
|             string.Empty); | ||||
|  | ||||
|     private static ReadOnlyCollection<JsonProperty> GetJsonProperties() | ||||
|     { | ||||
|         JsonProperty[] results; | ||||
|         string json; | ||||
|         SummarySegment summarySegment = Get(); | ||||
|         json = JsonSerializer.Serialize(summarySegment); | ||||
|         JsonElement jsonElement = JsonSerializer.Deserialize<JsonElement>(json); | ||||
|         results = jsonElement.EnumerateObject().ToArray(); | ||||
|         return new(results); | ||||
|     } | ||||
|  | ||||
|     public static Summary? Get(Constant constant, ReadOnlyCollection<string> lines) | ||||
|     { | ||||
|         Summary? result; | ||||
|         string json; | ||||
|         string[] segments; | ||||
|         bool found = false; | ||||
|         string[] segmentsB; | ||||
|         List<string> names = new(); | ||||
|         Dictionary<string, string> keyValuePairs = new(); | ||||
|         Dictionary<string, string> keyValuePairsB = new(); | ||||
|         Dictionary<string, string> keyValuePairsC = new(); | ||||
|         ReadOnlyCollection<JsonProperty> jsonProperties = GetJsonProperties(); | ||||
|         foreach (string line in lines) | ||||
|         { | ||||
|             if (line == constant.SummaryLine) | ||||
|                 found = true; | ||||
|             if (!found) | ||||
|                 continue; | ||||
|             if (line.Contains(constant.Site)) | ||||
|                 break; | ||||
|             if (line.Contains(constant.LastUnits)) | ||||
|                 break; | ||||
|             foreach (JsonProperty jsonProperty in jsonProperties) | ||||
|             { | ||||
|                 segments = line.Split(new string[] { $"{jsonProperty.Name}:", $"{jsonProperty.Name} :" }, StringSplitOptions.None); | ||||
|                 if (segments.Length < 2 || !line.StartsWith(jsonProperty.Name)) | ||||
|                     continue; | ||||
|                 segmentsB = segments[1].Trim().Split(' '); | ||||
|                 if (segmentsB.Length < 3) | ||||
|                     continue; | ||||
|                 if (names.Contains(jsonProperty.Name)) | ||||
|                     continue; | ||||
|                 names.Add(jsonProperty.Name); | ||||
|                 keyValuePairs.Add(jsonProperty.Name, segmentsB[0]); | ||||
|                 keyValuePairsB.Add(jsonProperty.Name, segmentsB[1]); | ||||
|                 keyValuePairsC.Add(jsonProperty.Name, segmentsB[2]); | ||||
|             } | ||||
|         } | ||||
|         if (keyValuePairs.Count != jsonProperties.Count || keyValuePairsB.Count != jsonProperties.Count || keyValuePairsC.Count != jsonProperties.Count) | ||||
|             result = null; | ||||
|         else | ||||
|         { | ||||
|             json = JsonSerializer.Serialize(keyValuePairs); | ||||
|             SummarySegment? mean = JsonSerializer.Deserialize(json, SummarySegmentSourceGenerationContext.Default.SummarySegment); | ||||
|             json = JsonSerializer.Serialize(keyValuePairsB); | ||||
|             SummarySegment? standardDeviationPercentage = JsonSerializer.Deserialize(json, SummarySegmentSourceGenerationContext.Default.SummarySegment); | ||||
|             json = JsonSerializer.Serialize(keyValuePairsC); | ||||
|             SummarySegment? radialGradient = JsonSerializer.Deserialize(json, SummarySegmentSourceGenerationContext.Default.SummarySegment); | ||||
|             result = new(mean, standardDeviationPercentage, radialGradient); | ||||
|         } | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
| } | ||||
|  | ||||
| [JsonSourceGenerationOptions(WriteIndented = true)] | ||||
| [JsonSerializable(typeof(SummarySegment))] | ||||
| internal partial class SummarySegmentSourceGenerationContext : JsonSerializerContext | ||||
| { | ||||
| } | ||||
| @ -226,9 +226,9 @@ public class MonIn : IMonIn, IDisposable | ||||
|     { | ||||
|         StringBuilder stringBuilder = new(); | ||||
|         if (string.IsNullOrEmpty(subresource)) | ||||
|             _ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" {4} \n{5}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : (object)"now", resource.Trim(), stateName.Trim(), state.Trim(), description.Trim()); | ||||
|             _ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" {4} \n{5}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : "now", resource.Trim(), stateName.Trim(), state.Trim(), description.Trim()); | ||||
|         else | ||||
|             _ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" \"{4}\" {5} \n{6}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : (object)"now", resource.Trim(), subresource.Trim(), stateName.Trim(), state.Trim(), description.Trim()); | ||||
|             _ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" \"{4}\" {5} \n{6}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : "now", resource.Trim(), subresource.Trim(), stateName.Trim(), state.Trim(), description.Trim()); | ||||
|         return stringBuilder.ToString(); | ||||
|     } | ||||
|  | ||||
| @ -247,14 +247,14 @@ public class MonIn : IMonIn, IDisposable | ||||
|         if (string.IsNullOrEmpty(subresource)) | ||||
|         { | ||||
|             if (unit.Equals(string.Empty) && !interval.HasValue) | ||||
|                 _ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" {4} \n{5}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : (object)"now", resource.Trim(), performanceName.Trim(), value, description.Trim()); | ||||
|                 _ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" {4} \n{5}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : "now", resource.Trim(), performanceName.Trim(), value, description.Trim()); | ||||
|             else | ||||
|                 _ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" {4} {5} {{interval={6}, unit={7}}}\n", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : (object)"now", resource.Trim(), performanceName.Trim(), value, description.Trim(), interval.HasValue ? interval.Value.ToString() : (object)string.Empty, unit.Trim()); | ||||
|                 _ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" {4} {5} {{interval={6}, unit={7}}}\n", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : "now", resource.Trim(), performanceName.Trim(), value, description.Trim(), interval.HasValue ? interval.Value.ToString() : string.Empty, unit.Trim()); | ||||
|         } | ||||
|         else if (unit.Equals(string.Empty) && !interval.HasValue) | ||||
|             _ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" \"{4}\" {5} \n{6}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : (object)"now", resource.Trim(), subresource.Trim(), performanceName.Trim(), value, description.Trim()); | ||||
|             _ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" \"{4}\" {5} \n{6}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : "now", resource.Trim(), subresource.Trim(), performanceName.Trim(), value, description.Trim()); | ||||
|         else | ||||
|             _ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" \"{4}\" {5} {6} {{interval={7}, unit={8}}}\n", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : (object)"now", resource.Trim(), subresource.Trim(), performanceName.Trim(), value, description.Trim(), interval.HasValue ? interval.Value.ToString() : (object)string.Empty, unit.Trim()); | ||||
|             _ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" \"{4}\" {5} {6} {{interval={7}, unit={8}}}\n", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : "now", resource.Trim(), subresource.Trim(), performanceName.Trim(), value, description.Trim(), interval.HasValue ? interval.Value.ToString() : string.Empty, unit.Trim()); | ||||
|         return stringBuilder.ToString(); | ||||
|     } | ||||
|  | ||||
|  | ||||
| @ -1,190 +1 @@ | ||||
| trigger: | ||||
|   branches: | ||||
|     include: | ||||
|       - development | ||||
|   paths: | ||||
|     include: | ||||
|       - "Adaptation/*" | ||||
|  | ||||
| pool: | ||||
|   name: eaf | ||||
|   demands: MET08RESIHGCV-Development | ||||
|  | ||||
| steps: | ||||
|   - script: | | ||||
|       set coreVersion=net7.0 | ||||
|       echo %coreVersion% | ||||
|       echo ##vso[task.setvariable variable=CoreVersion;]%coreVersion% | ||||
|       echo $(CoreVersion) | ||||
|     displayName: CoreVersion | ||||
|  | ||||
|   - script: | | ||||
|       set configuration=Debug | ||||
|       echo %configuration% | ||||
|       echo ##vso[task.setvariable variable=Configuration;]%configuration% | ||||
|       echo $(Configuration) | ||||
|     displayName: Configuration | ||||
|  | ||||
|   - script: | | ||||
|       set nugetSource=https://artifactory.intra.infineon.com/artifactory/api/nuget/ngt-fi-package-main-vir/index.json;D:/vsts-agent-win-x64-2.210.1-eaf/nuget | ||||
|       echo %nugetSource% | ||||
|       echo ##vso[task.setvariable variable=NugetSource;]%nugetSource% | ||||
|       echo $(NugetSource) | ||||
|     displayName: NugetSource | ||||
|  | ||||
|   - script: | | ||||
|       set gitCommit=$(Build.SourceVersion) | ||||
|       set gitCommitSeven=%gitCommit:~0,7% | ||||
|       echo %gitCommitSeven% | ||||
|       echo ##vso[task.setvariable variable=GitCommitSeven;]%gitCommitSeven% | ||||
|       echo $(GitCommitSeven) | ||||
|     displayName: GitCommitSeven | ||||
|  | ||||
|   - script: | | ||||
|       echo $(Build.BuildId) | ||||
|       echo $(Build.Reason) | ||||
|       echo $(Build.Repository.Id) | ||||
|       echo $(Build.Repository.Name) | ||||
|       echo $(Build.SourceVersion) | ||||
|       echo $(CoreVersion) | ||||
|       echo $(Configuration) | ||||
|       echo $(NugetSource) | ||||
|       echo $(GitCommitSeven) | ||||
|       REM echo $(pipelinePassword) | ||||
|     displayName: "Echo Check" | ||||
|  | ||||
|   - script: '"C:\program files\dotnet\dotnet.exe" nuget locals all --clear' | ||||
|     displayName: "Nuget Clear" | ||||
|     # enabled: false | ||||
|  | ||||
|   - script: | | ||||
|       "C:\program files\dotnet\dotnet.exe" user-secrets init | ||||
|       "C:\program files\dotnet\dotnet.exe" user-secrets set "BuildNumber" "$(Build.BuildId)" | ||||
|       "C:\program files\dotnet\dotnet.exe" user-secrets set "GitCommitSeven" "$(GitCommitSeven)" | ||||
|       "C:\program files\dotnet\dotnet.exe" user-secrets list | ||||
|     workingDirectory: Adaptation | ||||
|     displayName: "Safe storage of app secrets - Adaptation" | ||||
|  | ||||
|   - task: CopyFiles@2 | ||||
|     displayName: "Copy Files to: - GhostPCL" | ||||
|     inputs: | ||||
|       Contents: '*' | ||||
|       SourceFolder: '\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64' | ||||
|       TargetFolder: 'Adaptation\bin\$(Configuration)\net6.0\win-x64' | ||||
|       OverWrite: true | ||||
|     enabled: false | ||||
|  | ||||
|   - task: CopyFiles@2 | ||||
|     displayName: "Copy Files to: - LincPDFC" | ||||
|     inputs: | ||||
|       Contents: '*' | ||||
|       SourceFolder: '\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\LincPDFC\v2.6.6.21' | ||||
|       TargetFolder: 'Adaptation\bin\$(Configuration)\net6.0\win-x64' | ||||
|       OverWrite: true | ||||
|     enabled: false | ||||
|  | ||||
|   - task: CopyFiles@2 | ||||
|     displayName: "Copy Files to: - PDF-Text-Stripper" | ||||
|     inputs: | ||||
|       Contents: '*' | ||||
|       SourceFolder: '\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\PDF-Text-Stripper\v4.8.0.1' | ||||
|       TargetFolder: 'Adaptation\bin\$(Configuration)\net6.0\win-x64' | ||||
|       OverWrite: true | ||||
|     enabled: false | ||||
|  | ||||
|   - script: '"C:\program files\dotnet\dotnet.exe" build --configuration $(Configuration) --source $(NugetSource)' | ||||
|     workingDirectory: Adaptation | ||||
|     displayName: "Core Build - Adaptation" | ||||
|  | ||||
|   - powershell: Get-ChildItem .\ -include TestResults -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse } | ||||
|     workingDirectory: "$(System.DefaultWorkingDirectory)/../../../$(Build.Repository.Name)" | ||||
|     displayName: "PowerShell Script" | ||||
|     continueOnError: true | ||||
|  | ||||
|   - script: "dotnet test --configuration $(Configuration)" | ||||
|     workingDirectory: Adaptation | ||||
|     displayName: "Core Test" | ||||
|  | ||||
|   - script: 'move /y "$(System.DefaultWorkingDirectory)/../../../$(Build.Repository.Name)/05_TestResults/TestResults" $(System.DefaultWorkingDirectory)' | ||||
|     displayName: "Move Results" | ||||
|  | ||||
|   - script: '"C:\program files\dotnet\dotnet.exe" tool restore' | ||||
|     workingDirectory: Adaptation | ||||
|     displayName: "Tool Restore" | ||||
|     enabled: false | ||||
|  | ||||
|   - script: '"C:\program files\dotnet\dotnet.exe" ReportGenerator -reports:$(System.DefaultWorkingDirectory)/TestResults/**/coverage.cobertura.xml -targetDir:$(Build.ArtifactStagingDirectory)\Coverage -reportTypes:Html_Dark' | ||||
|     workingDirectory: Adaptation | ||||
|     displayName: "Report Generator" | ||||
|     enabled: false | ||||
|  | ||||
|   - task: PublishTestResults@2 | ||||
|     displayName: "Publish Test Results **/*.trx" | ||||
|     inputs: | ||||
|       testResultsFormat: VSTest | ||||
|       testResultsFiles: "**/*.trx" | ||||
|       testRunTitle: "$(GitCommitSeven)-$(Build.BuildId)-$(CoreVersion)-$(Configuration)-$(Build.Repository.Name)" | ||||
|       searchFolder: "$(System.DefaultWorkingDirectory)/TestResults" | ||||
|  | ||||
|   - task: PublishTestResults@2 | ||||
|     displayName: "Publish Test Results */coverage.cobertura.xml" | ||||
|     inputs: | ||||
|       testResultsFormat: VSTest | ||||
|       testResultsFiles: "*/coverage.cobertura.xml" | ||||
|       testRunTitle: "$(GitCommitSeven)-$(Build.BuildId)-$(CoreVersion)-$(Configuration)-$(Build.Repository.Name)" | ||||
|       searchFolder: "$(System.DefaultWorkingDirectory)/TestResults" | ||||
|  | ||||
|   - task: mspremier.CreateWorkItem.CreateWorkItem-task.CreateWorkItem@1 | ||||
|     displayName: "Create work item" | ||||
|     inputs: | ||||
|       teamProject: "Mesa_FI" | ||||
|       workItemType: Bug | ||||
|       title: $(GitCommitSeven)-$(Build.BuildId)-$(Build.Repository.Name)-$(Configuration) | ||||
|       assignedTo: "$(Build.RequestedForId)" | ||||
|     enabled: false | ||||
|  | ||||
|   - script: '"C:\program files\dotnet\dotnet.exe" publish --configuration $(Configuration) --runtime win-x64 --self-contained -o $(Build.ArtifactStagingDirectory)\Adaptation --source $(NugetSource)' | ||||
|     workingDirectory: Adaptation | ||||
|     displayName: "Core Publish" | ||||
|     enabled: false | ||||
|  | ||||
|   - script: '"C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe" /target:Restore /detailedsummary /consoleloggerparameters:PerformanceSummary;ErrorsOnly; /property:Configuration=$(Configuration);TargetFrameworkVersion=v4.8 /p:RestoreSources="$(NugetSource)"' | ||||
|     displayName: "MSBuild Restore" | ||||
|  | ||||
|   - script: '"C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe" /target:Build /detailedsummary /consoleloggerparameters:PerformanceSummary;ErrorsOnly; /property:Configuration=$(Configuration);TargetFrameworkVersion=v4.8' | ||||
|     displayName: MSBuild | ||||
|  | ||||
|   - script: 'echo $(Build.SourceVersion)-$(Build.BuildId)-$(Build.Repository.Name)>bin\$(Configuration)\$(Build.Repository.Name).txt' | ||||
|     displayName: "Commit Id" | ||||
|  | ||||
|   - task: CopyFiles@2 | ||||
|     displayName: 'Copy Files to: D:\Framework4.8' | ||||
|     inputs: | ||||
|       Contents: "*$(Build.Repository.Name)*" | ||||
|       SourceFolder: 'bin\$(Configuration)' | ||||
|       TargetFolder: 'D:\Framework4.8\$(GitCommitSeven)-$(Build.BuildId)-$(Build.Repository.Name)-$(Configuration)' | ||||
|       OverWrite: true | ||||
|     enabled: false | ||||
|  | ||||
|   - task: CopyFiles@2 | ||||
|     displayName: 'Copy Files to: Local D EAF Deployment Storage' | ||||
|     inputs: | ||||
|       Contents: "*$(Build.Repository.Name)*" | ||||
|       SourceFolder: 'bin\$(Configuration)' | ||||
|       TargetFolder: 'D:\EAF\EAF Deployment Storage\Adaptation_$(Build.Repository.Name)' | ||||
|       OverWrite: true | ||||
|     enabled: false | ||||
|  | ||||
|   - script: | | ||||
|       "C:\program files\dotnet\dotnet.exe" clean --configuration $(Configuration) | ||||
|     workingDirectory: Adaptation | ||||
|     displayName: "Core Clean - Tests" | ||||
|  | ||||
|   - script: | | ||||
|       "C:\program files\dotnet\dotnet.exe" clean --configuration $(Configuration) | ||||
|     workingDirectory: Adaptation | ||||
|     displayName: "Core Clean - Adaptation" | ||||
|  | ||||
|   - script: 'echo $(Build.SourceVersion)-$(Build.BuildId)>bin_x_x_\$(Configuration)\$(CoreVersion)\win-x64\$(Build.Repository.Name).txt' | ||||
|     displayName: "Force Fail" | ||||
|     enabled: false | ||||
| # dotnet nuget push --source https://tfs.intra.infineon.com/tfs/FactoryIntegration/fccf8303-9cf7-4788-a9e0-4042541503fa/_packaging/EAF-Mesa-Integration/nuget/v3/index.json --api-key az D:\vsts-agent-win-x64-2.210.1-eaf\nuget\infineon.mesa.pdf.text.stripper.4.8.0.1.nupkg | ||||
| @ -69,7 +69,7 @@ | ||||
|         <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> | ||||
|         <PackageReference Include="Infineon.Mesa.PDF.Text.Stripper" Version="4.8.0.2"><NoWarn>NU1701</NoWarn></PackageReference> | ||||
|     </ItemGroup> | ||||
|     <ItemGroup> | ||||
|         <PackageReference Include="Infineon.Yoda.DotNetCore" Version="5.4.3" /> | ||||
| @ -87,22 +87,22 @@ | ||||
|         </None> | ||||
|     </ItemGroup> | ||||
|     <ItemGroup> | ||||
|         <None Condition="'$(Configuration)' == 'Debug'" Include="\\mestsa003.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6dll64.dll"> | ||||
|         <None Condition="'$(Configuration)' == 'Debug'" Include="D:\EAF-Mesa-Integration\copy\GhostPCL\gpcl6win64\gpcl6dll64.dll"> | ||||
|             <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | ||||
|         </None> | ||||
|         <None Condition="'$(Configuration)' == 'Debug'" Include="\\mestsa003.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6win64.exe"> | ||||
|         <None Condition="'$(Configuration)' == 'Debug'" Include="D:\EAF-Mesa-Integration\copy\GhostPCL\gpcl6win64\gpcl6win64.exe"> | ||||
|             <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | ||||
|         </None> | ||||
|         <None Condition="'$(Configuration)' == 'Debug'" Include="\\mestsa003.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\LincPDFC\v2.6.6.21\LincPDFC.exe"> | ||||
|         <None Condition="'$(Configuration)' == 'Debug'" Include="D:\EAF-Mesa-Integration\copy\LincPDFC\v2.6.6.21\LincPDFC.exe"> | ||||
|             <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | ||||
|         </None> | ||||
|         <None Condition="'$(Configuration)' == 'Release'" Include="\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6dll64.dll"> | ||||
|         <None Condition="'$(Configuration)' == 'Release'" Include="D:\EAF-Mesa-Integration\copy\GhostPCL\gpcl6win64\gpcl6dll64.dll"> | ||||
|             <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | ||||
|         </None> | ||||
|         <None Condition="'$(Configuration)' == 'Release'" Include="\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6win64.exe"> | ||||
|         <None Condition="'$(Configuration)' == 'Release'" Include="D:\EAF-Mesa-Integration\copy\GhostPCL\gpcl6win64\gpcl6win64.exe"> | ||||
|             <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | ||||
|         </None> | ||||
|         <None Condition="'$(Configuration)' == 'Release'" Include="\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\LincPDFC\v2.6.6.21\LincPDFC.exe"> | ||||
|         <None Condition="'$(Configuration)' == 'Release'" Include="D:\EAF-Mesa-Integration\copy\LincPDFC\v2.6.6.21\LincPDFC.exe"> | ||||
|             <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | ||||
|         </None> | ||||
|     </ItemGroup> | ||||
|  | ||||
| @ -1,3 +1,9 @@ | ||||
| # D: | ||||
| # cd D:\EAF-Mesa-Integration | ||||
| # config --url https://tfs.intra.infineon.com/tfs/FactoryIntegration --pool "EAF Mesa Integration" --agent mestsa003-meseafsvc --work _work --runAsService --auth negotiate --userName infineon\phares | ||||
| # D: | ||||
| # cd D:\EAF-Mesa-Integration | ||||
| # config --url https://tfs.intra.infineon.com/tfs/FactoryIntegration --pool "EAF Mesa Integration" --agent mestsa07ec-ecmeseaf --work _work --runAsService --auth negotiate --userName infineon\phares | ||||
| trigger: | ||||
|   branches: | ||||
|     include: | ||||
| @ -6,180 +12,273 @@ trigger: | ||||
|     include: | ||||
|       - "Adaptation/*" | ||||
|  | ||||
| pool: | ||||
|   name: eaf | ||||
|   demands: MET08RESIHGCV | ||||
| stages: | ||||
|   - stage: DevServer | ||||
|     displayName: DevServer | ||||
|  | ||||
| steps: | ||||
|   - script: | | ||||
|       set coreVersion=net7.0 | ||||
|       echo %coreVersion% | ||||
|       echo ##vso[task.setvariable variable=CoreVersion;]%coreVersion% | ||||
|       echo $(CoreVersion) | ||||
|     displayName: CoreVersion | ||||
|     pool: | ||||
|       name: EAF Mesa Integration | ||||
|       demands: MET08RESIHGCV-Development | ||||
|  | ||||
|   - script: | | ||||
|       set configuration=Release | ||||
|       echo %configuration% | ||||
|       echo ##vso[task.setvariable variable=Configuration;]%configuration% | ||||
|       echo $(Configuration) | ||||
|     displayName: Configuration | ||||
|     variables: | ||||
|       coreVersion: "net8.0" | ||||
|       nugetSource: "https://artifactory.intra.infineon.com/artifactory/api/nuget/ngt-fi-package-main-vir/" | ||||
|  | ||||
|   - script: | | ||||
|       set nugetSource=https://artifactory.intra.infineon.com/artifactory/api/nuget/ngt-fi-package-main-vir/index.json;D:/vsts-agent-win-x64-2.210.1-eaf/nuget | ||||
|       echo %nugetSource% | ||||
|       echo ##vso[task.setvariable variable=NugetSource;]%nugetSource% | ||||
|       echo $(NugetSource) | ||||
|     displayName: NugetSource | ||||
|     jobs: | ||||
|       - job: SetupEnvironment | ||||
|         steps: | ||||
|           - script: | | ||||
|               echo $(Build.BuildId) | ||||
|               echo $(Build.Reason) | ||||
|               echo $(Build.Repository.Id) | ||||
|               echo $(Build.Repository.Name) | ||||
|               echo $(Build.SourceVersion) | ||||
|               echo $(CoreVersion) | ||||
|               echo $(NugetSource) | ||||
|             displayName: "Echo Check" | ||||
|  | ||||
|   - script: | | ||||
|       set gitCommit=$(Build.SourceVersion) | ||||
|       set gitCommitSeven=%gitCommit:~0,7% | ||||
|       echo %gitCommitSeven% | ||||
|       echo ##vso[task.setvariable variable=GitCommitSeven;]%gitCommitSeven% | ||||
|       echo $(GitCommitSeven) | ||||
|     displayName: GitCommitSeven | ||||
|           - script: '"C:\program files\dotnet\dotnet.exe" nuget locals all --clear' | ||||
|             displayName: "Nuget Clear" | ||||
|             enabled: false | ||||
|  | ||||
|   - script: | | ||||
|       echo $(Build.BuildId) | ||||
|       echo $(Build.Reason) | ||||
|       echo $(Build.Repository.Id) | ||||
|       echo $(Build.Repository.Name) | ||||
|       echo $(Build.SourceVersion) | ||||
|       echo $(CoreVersion) | ||||
|       echo $(Configuration) | ||||
|       echo $(NugetSource) | ||||
|       echo $(GitCommitSeven) | ||||
|       REM echo $(pipelinePassword) | ||||
|     displayName: "Echo Check" | ||||
|           - script: | | ||||
|               "C:\program files\dotnet\dotnet.exe" user-secrets init | ||||
|               "C:\program files\dotnet\dotnet.exe" user-secrets set "BuildNumber" "$(Build.BuildId)" | ||||
|               "C:\program files\dotnet\dotnet.exe" user-secrets set "GitCommit" "$(Build.SourceVersion)" | ||||
|               "C:\program files\dotnet\dotnet.exe" user-secrets list | ||||
|             workingDirectory: Adaptation | ||||
|             displayName: "Safe storage of app secrets - Adaptation" | ||||
|  | ||||
|   - script: '"C:\program files\dotnet\dotnet.exe" nuget locals all --clear' | ||||
|     displayName: "Nuget Clear" | ||||
|     enabled: false | ||||
|       - job: BuildDebug | ||||
|         dependsOn: | ||||
|           - SetupEnvironment | ||||
|         steps: | ||||
|           - script: | | ||||
|               set configuration=Debug | ||||
|               echo %configuration% | ||||
|               echo ##vso[task.setvariable variable=Configuration;]%configuration% | ||||
|               echo $(Configuration) | ||||
|             displayName: Configuration | ||||
|  | ||||
|   - script: | | ||||
|       "C:\program files\dotnet\dotnet.exe" user-secrets init | ||||
|       "C:\program files\dotnet\dotnet.exe" user-secrets set "BuildNumber" "$(Build.BuildId)" | ||||
|       "C:\program files\dotnet\dotnet.exe" user-secrets set "GitCommitSeven" "$(GitCommitSeven)" | ||||
|       "C:\program files\dotnet\dotnet.exe" user-secrets list | ||||
|     workingDirectory: Adaptation | ||||
|     displayName: "Safe storage of app secrets - Adaptation" | ||||
|           - script: '"C:\program files\dotnet\dotnet.exe" build --configuration $(Configuration) --source $(NugetSource)' | ||||
|             workingDirectory: Adaptation | ||||
|             displayName: "Core Build - Adaptation" | ||||
|  | ||||
|   - task: CopyFiles@2 | ||||
|     displayName: "Copy Files to: - GhostPCL" | ||||
|     inputs: | ||||
|       Contents: '*' | ||||
|       SourceFolder: '\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64' | ||||
|       TargetFolder: 'Adaptation\bin\$(Configuration)\net6.0\win-x64' | ||||
|       OverWrite: true | ||||
|       - job: BuildRelease | ||||
|         dependsOn: | ||||
|           - SetupEnvironment | ||||
|         steps: | ||||
|           - script: | | ||||
|               set configuration=Release | ||||
|               echo %configuration% | ||||
|               echo ##vso[task.setvariable variable=Configuration;]%configuration% | ||||
|               echo $(Configuration) | ||||
|             displayName: Configuration | ||||
|  | ||||
|   - task: CopyFiles@2 | ||||
|     displayName: "Copy Files to: - LincPDFC" | ||||
|     inputs: | ||||
|       Contents: '*' | ||||
|       SourceFolder: '\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\LincPDFC\v2.6.6.21' | ||||
|       TargetFolder: 'Adaptation\bin\$(Configuration)\net6.0\win-x64' | ||||
|       OverWrite: true | ||||
|           - 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" | ||||
|  | ||||
|   - task: CopyFiles@2 | ||||
|     displayName: "Copy Files to: - PDF-Text-Stripper" | ||||
|     inputs: | ||||
|       Contents: '*' | ||||
|       SourceFolder: '\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\PDF-Text-Stripper\v4.8.0.1' | ||||
|       TargetFolder: 'Adaptation\bin\$(Configuration)\net6.0\win-x64' | ||||
|       OverWrite: true | ||||
|           - script: '"C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe" /target:Build /detailedsummary /consoleloggerparameters:PerformanceSummary;ErrorsOnly; /property:Configuration=$(Configuration);TargetFrameworkVersion=v4.8' | ||||
|             displayName: MSBuild | ||||
|  | ||||
|   - script: '"C:\program files\dotnet\dotnet.exe" build --configuration $(Configuration) --source $(NugetSource)' | ||||
|     workingDirectory: Adaptation | ||||
|     displayName: "Core Build - Adaptation" | ||||
|           - script: '"C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe" /target:Build /detailedsummary /consoleloggerparameters:PerformanceSummary;ErrorsOnly; /property:Configuration=$(Configuration);TargetFrameworkVersion=v4.8' | ||||
|             displayName: MSBuild | ||||
|  | ||||
|   - powershell: Get-ChildItem .\ -include TestResults -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse } | ||||
|     workingDirectory: "$(System.DefaultWorkingDirectory)/../../../$(Build.Repository.Name)" | ||||
|     displayName: "PowerShell Script" | ||||
|     continueOnError: true | ||||
|           - script: 'echo $(Build.Repository.Name)-$(Build.BuildId)-$(Build.SourceVersion)>bin\$(Configuration)\$(Build.Repository.Name).txt' | ||||
|             displayName: "Commit Id" | ||||
|  | ||||
|   - script: "dotnet test --configuration $(Configuration)" | ||||
|     workingDirectory: Adaptation | ||||
|     displayName: "Core Test" | ||||
|           - task: CopyFiles@2 | ||||
|             displayName: 'Copy Files to: D:\EAF' | ||||
|             inputs: | ||||
|               Contents: "*$(Build.Repository.Name)*" | ||||
|               SourceFolder: 'bin\$(Configuration)' | ||||
|               TargetFolder: 'D:\EAF\EAF Deployment Storage\Adaptation_$(Build.Repository.Name)' | ||||
|               OverWrite: true | ||||
|             enabled: true | ||||
|  | ||||
|   - script: 'move /y "$(System.DefaultWorkingDirectory)/../../../$(Build.Repository.Name)/05_TestResults/TestResults" $(System.DefaultWorkingDirectory)' | ||||
|     displayName: "Move Results" | ||||
|       - job: TestDebug | ||||
|         dependsOn: | ||||
|           - SetupEnvironment | ||||
|           - BuildDebug | ||||
|           - BuildRelease | ||||
|         steps: | ||||
|           - script: | | ||||
|               set configuration=Debug | ||||
|               echo %configuration% | ||||
|               echo ##vso[task.setvariable variable=Configuration;]%configuration% | ||||
|               echo $(Configuration) | ||||
|             displayName: Configuration | ||||
|  | ||||
|   - script: '"C:\program files\dotnet\dotnet.exe" tool restore' | ||||
|     workingDirectory: Adaptation | ||||
|     displayName: "Tool Restore" | ||||
|     enabled: false | ||||
|           - powershell: Get-ChildItem .\ -include TestResults -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse } | ||||
|             workingDirectory: "$(System.DefaultWorkingDirectory)/../../../$(Build.Repository.Name)" | ||||
|             displayName: "PowerShell Script" | ||||
|             continueOnError: true | ||||
|  | ||||
|   - script: '"C:\program files\dotnet\dotnet.exe" ReportGenerator -reports:$(System.DefaultWorkingDirectory)/TestResults/**/coverage.cobertura.xml -targetDir:$(Build.ArtifactStagingDirectory)\Coverage -reportTypes:Html_Dark' | ||||
|     workingDirectory: Adaptation | ||||
|     displayName: "Report Generator" | ||||
|     enabled: false | ||||
|           - script: "dotnet test --configuration $(Configuration)" | ||||
|             workingDirectory: Adaptation | ||||
|             displayName: "Core Test" | ||||
|  | ||||
|   - task: PublishTestResults@2 | ||||
|     displayName: "Publish Test Results **/*.trx" | ||||
|     inputs: | ||||
|       testResultsFormat: VSTest | ||||
|       testResultsFiles: "**/*.trx" | ||||
|       testRunTitle: "$(GitCommitSeven)-$(Build.BuildId)-$(CoreVersion)-$(Configuration)-$(Build.Repository.Name)" | ||||
|       searchFolder: "$(System.DefaultWorkingDirectory)/TestResults" | ||||
|           - script: 'move /y "$(System.DefaultWorkingDirectory)/../../../$(Build.Repository.Name)/05_TestResults/TestResults" $(System.DefaultWorkingDirectory)' | ||||
|             displayName: "Move Results" | ||||
|  | ||||
|   - 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" | ||||
|           - script: '"C:\program files\dotnet\dotnet.exe" tool restore' | ||||
|             workingDirectory: Adaptation | ||||
|             displayName: "Tool Restore" | ||||
|             enabled: false | ||||
|  | ||||
|   - task: mspremier.CreateWorkItem.CreateWorkItem-task.CreateWorkItem@1 | ||||
|     displayName: "Create work item" | ||||
|     inputs: | ||||
|       teamProject: "Mesa_FI" | ||||
|       workItemType: Bug | ||||
|       title: $(GitCommitSeven)-$(Build.BuildId)-$(Build.Repository.Name)-$(Configuration) | ||||
|       assignedTo: "$(Build.RequestedForId)" | ||||
|     enabled: false | ||||
|           - script: '"C:\program files\dotnet\dotnet.exe" ReportGenerator -reports:$(System.DefaultWorkingDirectory)/TestResults/**/coverage.cobertura.xml -targetDir:$(Build.ArtifactStagingDirectory)\Coverage -reportTypes:Html_Dark' | ||||
|             workingDirectory: Adaptation | ||||
|             displayName: "Report Generator" | ||||
|             enabled: false | ||||
|  | ||||
|   - script: '"C:\program files\dotnet\dotnet.exe" publish --configuration $(Configuration) --runtime win-x64 --self-contained -o $(Build.ArtifactStagingDirectory)\Adaptation --source $(NugetSource)' | ||||
|     workingDirectory: Adaptation | ||||
|     displayName: "Core Publish" | ||||
|     enabled: false | ||||
|           - task: PublishTestResults@2 | ||||
|             displayName: "Publish Test Results **/*.trx" | ||||
|             inputs: | ||||
|               testResultsFormat: VSTest | ||||
|               testResultsFiles: "**/*.trx" | ||||
|               testRunTitle: "$(Build.BuildId)-$(Build.SourceVersion)-$(CoreVersion)-$(Configuration)-$(Build.Repository.Name)" | ||||
|               searchFolder: "$(System.DefaultWorkingDirectory)/TestResults" | ||||
|  | ||||
|   - 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" | ||||
|           - task: PublishTestResults@2 | ||||
|             displayName: "Publish Test Results */coverage.cobertura.xml" | ||||
|             inputs: | ||||
|               testResultsFormat: VSTest | ||||
|               testResultsFiles: "*/coverage.cobertura.xml" | ||||
|               testRunTitle: "$(Build.BuildId)-$(Build.SourceVersion)-$(CoreVersion)-$(Configuration)-$(Build.Repository.Name)" | ||||
|               searchFolder: "$(System.DefaultWorkingDirectory)/TestResults" | ||||
|  | ||||
|   - script: '"C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe" /target:Build /detailedsummary /consoleloggerparameters:PerformanceSummary;ErrorsOnly; /property:Configuration=$(Configuration);TargetFrameworkVersion=v4.8' | ||||
|     displayName: MSBuild | ||||
|           - script: | | ||||
|               "C:\program files\dotnet\dotnet.exe" clean --configuration $(Configuration) | ||||
|             workingDirectory: Adaptation | ||||
|             displayName: "Core Clean - Adaptation" | ||||
|  | ||||
|   - script: 'echo $(Build.SourceVersion)-$(Build.BuildId)-$(Build.Repository.Name)>bin\$(Configuration)\$(Build.Repository.Name).txt' | ||||
|     displayName: "Commit Id" | ||||
|           - script: 'echo $(Build.BuildId)-$(Build.SourceVersion)-bin_x_x_\$(Configuration)\$(CoreVersion)\win-x64\$(Build.Repository.Name).txt' | ||||
|             displayName: "Force Fail" | ||||
|             enabled: false | ||||
|  | ||||
|   - task: CopyFiles@2 | ||||
|     displayName: 'Copy Files to: D:\Framework4.8' | ||||
|     inputs: | ||||
|       Contents: "*$(Build.Repository.Name)*" | ||||
|       SourceFolder: 'bin\$(Configuration)' | ||||
|       TargetFolder: 'D:\Framework4.8\$(GitCommitSeven)-$(Build.BuildId)-$(Build.Repository.Name)-$(Configuration)' | ||||
|       OverWrite: true | ||||
|   - stage: ProductionServer | ||||
|     displayName: ProductionServer | ||||
|  | ||||
|   - task: CopyFiles@2 | ||||
|     displayName: 'Copy Files to: Local D EAF Deployment Storage' | ||||
|     inputs: | ||||
|       Contents: "*$(Build.Repository.Name)*" | ||||
|       SourceFolder: 'bin\$(Configuration)' | ||||
|       TargetFolder: 'D:\EAF\EAF Deployment Storage\Adaptation_$(Build.Repository.Name)' | ||||
|       OverWrite: true | ||||
|     pool: | ||||
|       name: EAF Mesa Integration | ||||
|       demands: MET08RESIHGCV | ||||
|  | ||||
|   - script: | | ||||
|       "C:\program files\dotnet\dotnet.exe" clean --configuration $(Configuration) | ||||
|     workingDirectory: Adaptation | ||||
|     displayName: "Core Clean - Tests" | ||||
|     variables: | ||||
|       coreVersion: "net8.0" | ||||
|       nugetSource: "https://artifactory.intra.infineon.com/artifactory/api/nuget/ngt-fi-package-main-vir/" | ||||
|  | ||||
|   - script: | | ||||
|       "C:\program files\dotnet\dotnet.exe" clean --configuration $(Configuration) | ||||
|     workingDirectory: Adaptation | ||||
|     displayName: "Core Clean - Adaptation" | ||||
|     jobs: | ||||
|       - job: SetupEnvironment | ||||
|         steps: | ||||
|           - script: | | ||||
|               echo $(Build.BuildId) | ||||
|               echo $(Build.Reason) | ||||
|               echo $(Build.Repository.Id) | ||||
|               echo $(Build.Repository.Name) | ||||
|               echo $(Build.SourceVersion) | ||||
|               echo $(CoreVersion) | ||||
|               echo $(NugetSource) | ||||
|             displayName: "Echo Check" | ||||
|  | ||||
|   - script: 'echo $(Build.SourceVersion)-$(Build.BuildId)>bin_x_x_\$(Configuration)\$(CoreVersion)\win-x64\$(Build.Repository.Name).txt' | ||||
|     displayName: "Force Fail" | ||||
|     enabled: false | ||||
|           - script: '"C:\program files\dotnet\dotnet.exe" nuget locals all --clear' | ||||
|             displayName: "Nuget Clear" | ||||
|             enabled: false | ||||
|  | ||||
|           - script: | | ||||
|               "C:\program files\dotnet\dotnet.exe" user-secrets init | ||||
|               "C:\program files\dotnet\dotnet.exe" user-secrets set "BuildNumber" "$(Build.BuildId)" | ||||
|               "C:\program files\dotnet\dotnet.exe" user-secrets set "GitCommit" "$(Build.SourceVersion)" | ||||
|               "C:\program files\dotnet\dotnet.exe" user-secrets list | ||||
|             workingDirectory: Adaptation | ||||
|             displayName: "Safe storage of app secrets - Adaptation" | ||||
|  | ||||
|       - job: BuildRelease | ||||
|         dependsOn: | ||||
|           - SetupEnvironment | ||||
|         steps: | ||||
|           - script: | | ||||
|               set configuration=Release | ||||
|               echo %configuration% | ||||
|               echo ##vso[task.setvariable variable=Configuration;]%configuration% | ||||
|               echo $(Configuration) | ||||
|             displayName: Configuration | ||||
|  | ||||
|           - script: '"C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe" /target:Restore /detailedsummary /consoleloggerparameters:PerformanceSummary;ErrorsOnly; /property:Configuration=$(Configuration);TargetFrameworkVersion=v4.8 /p:RestoreSources=$(NugetSource)' | ||||
|             displayName: "MSBuild Restore" | ||||
|  | ||||
|           - script: '"C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe" /target:Build /detailedsummary /consoleloggerparameters:PerformanceSummary;ErrorsOnly; /property:Configuration=$(Configuration);TargetFrameworkVersion=v4.8' | ||||
|             displayName: MSBuild | ||||
|  | ||||
|           - script: 'echo $(Build.Repository.Name)-$(Build.BuildId)-$(Build.SourceVersion)>bin\$(Configuration)\$(Build.Repository.Name).txt' | ||||
|             displayName: "Commit Id" | ||||
|  | ||||
|           - task: CopyFiles@2 | ||||
|             displayName: 'Copy Files to: D:\EAF' | ||||
|             inputs: | ||||
|               Contents: "*$(Build.Repository.Name)*" | ||||
|               SourceFolder: 'bin\$(Configuration)' | ||||
|               TargetFolder: 'D:\EAF\EAF Deployment Storage\Adaptation_$(Build.Repository.Name)' | ||||
|               OverWrite: true | ||||
|  | ||||
|           - script: '"C:\program files\dotnet\dotnet.exe" build --configuration $(Configuration) --source $(NugetSource)' | ||||
|             workingDirectory: Adaptation | ||||
|             displayName: "Core Build - Adaptation" | ||||
|  | ||||
|       - job: TestRelease | ||||
|         dependsOn: | ||||
|           - SetupEnvironment | ||||
|           - BuildRelease | ||||
|         steps: | ||||
|           - script: | | ||||
|               set configuration=Release | ||||
|               echo %configuration% | ||||
|               echo ##vso[task.setvariable variable=Configuration;]%configuration% | ||||
|               echo $(Configuration) | ||||
|             displayName: Configuration | ||||
|  | ||||
|           - powershell: Get-ChildItem .\ -include TestResults -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse } | ||||
|             workingDirectory: "$(System.DefaultWorkingDirectory)/../../../$(Build.Repository.Name)" | ||||
|             displayName: "PowerShell Script" | ||||
|             continueOnError: true | ||||
|  | ||||
|           - script: "dotnet test --configuration $(Configuration)" | ||||
|             workingDirectory: Adaptation | ||||
|             displayName: "Core Test" | ||||
|  | ||||
|           - script: 'move /y "$(System.DefaultWorkingDirectory)/../../../$(Build.Repository.Name)/05_TestResults/TestResults" $(System.DefaultWorkingDirectory)' | ||||
|             displayName: "Move Results" | ||||
|  | ||||
|           - script: '"C:\program files\dotnet\dotnet.exe" tool restore' | ||||
|             workingDirectory: Adaptation | ||||
|             displayName: "Tool Restore" | ||||
|             enabled: false | ||||
|  | ||||
|           - script: '"C:\program files\dotnet\dotnet.exe" ReportGenerator -reports:$(System.DefaultWorkingDirectory)/TestResults/**/coverage.cobertura.xml -targetDir:$(Build.ArtifactStagingDirectory)\Coverage -reportTypes:Html_Dark' | ||||
|             workingDirectory: Adaptation | ||||
|             displayName: "Report Generator" | ||||
|             enabled: false | ||||
|  | ||||
|           - task: PublishTestResults@2 | ||||
|             displayName: "Publish Test Results **/*.trx" | ||||
|             inputs: | ||||
|               testResultsFormat: VSTest | ||||
|               testResultsFiles: "**/*.trx" | ||||
|               testRunTitle: "$(Build.BuildId)-$(Build.SourceVersion)-$(CoreVersion)-$(Configuration)-$(Build.Repository.Name)" | ||||
|               searchFolder: "$(System.DefaultWorkingDirectory)/TestResults" | ||||
|  | ||||
|           - task: PublishTestResults@2 | ||||
|             displayName: "Publish Test Results */coverage.cobertura.xml" | ||||
|             inputs: | ||||
|               testResultsFormat: VSTest | ||||
|               testResultsFiles: "*/coverage.cobertura.xml" | ||||
|               testRunTitle: "$(Build.BuildId)-$(Build.SourceVersion)-$(CoreVersion)-$(Configuration)-$(Build.Repository.Name)" | ||||
|               searchFolder: "$(System.DefaultWorkingDirectory)/TestResults" | ||||
|  | ||||
|           - script: | | ||||
|               "C:\program files\dotnet\dotnet.exe" clean --configuration $(Configuration) | ||||
|             workingDirectory: Adaptation | ||||
|             displayName: "Core Clean - Adaptation" | ||||
|  | ||||
|           - script: 'echo $(Build.BuildId)-$(Build.SourceVersion)-bin_x_x_\$(Configuration)\$(CoreVersion)\win-x64\$(Build.Repository.Name).txt' | ||||
|             displayName: "Force Fail" | ||||
|             enabled: true | ||||
|  | ||||
| @ -3,6 +3,7 @@ using System; | ||||
| using System.Collections.Generic; | ||||
| using System.Linq; | ||||
| using System.Text.Json; | ||||
| using System.Text.Json.Serialization; | ||||
|  | ||||
| namespace Adaptation.Shared.Duplicator; | ||||
|  | ||||
| @ -178,4 +179,16 @@ public class Description : IDescription, Properties.IDescription | ||||
|  | ||||
|     internal static string GetDateFormat() => "MM/dd/yyyy hh:mm:ss tt"; | ||||
|  | ||||
| } | ||||
|  | ||||
| [JsonSourceGenerationOptions(WriteIndented = true, NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] | ||||
| [JsonSerializable(typeof(Description))] | ||||
| internal partial class SharedDescriptionSourceGenerationContext : JsonSerializerContext | ||||
| { | ||||
| } | ||||
|  | ||||
| [JsonSourceGenerationOptions(WriteIndented = true, NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] | ||||
| [JsonSerializable(typeof(Description[]))] | ||||
| internal partial class SharedDescriptionArraySourceGenerationContext : JsonSerializerContext | ||||
| { | ||||
| } | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -1,4 +1,4 @@ | ||||
| using Adaptation.Shared.Methods; | ||||
| using Adaptation.Shared.Methods; | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.IO; | ||||
| @ -35,6 +35,9 @@ public class Logistics : ILogistics | ||||
|     public long Sequence => _Sequence; | ||||
|     public double TotalSecondsSinceLastWriteTimeFromSequence => _TotalSecondsSinceLastWriteTimeFromSequence; | ||||
|  | ||||
|     private static string DefaultMesEntity(DateTime dateTime) => | ||||
|         string.Concat(dateTime.Ticks, "_MES_ENTITY"); | ||||
|  | ||||
|     public Logistics(IFileRead fileRead) | ||||
|     { | ||||
|         DateTime dateTime = DateTime.Now; | ||||
| @ -84,13 +87,13 @@ public class Logistics : ILogistics | ||||
|         _Logistics2 = new List<Logistics2>(); | ||||
|     } | ||||
|  | ||||
|     public Logistics(string reportFullPath, string logistics) | ||||
|     internal Logistics(string reportFullPath, ProcessDataStandardFormat processDataStandardFormat) | ||||
|     { | ||||
|         string key; | ||||
|         DateTime dateTime; | ||||
|         string[] segments; | ||||
|         _FileInfo = new(reportFullPath); | ||||
|         _Logistics1 = logistics.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList(); | ||||
|         _Logistics1 = processDataStandardFormat.Logistics.ToList(); | ||||
|         if (Logistics1.Count == 0 || !Logistics1[0].StartsWith("LOGISTICS_1")) | ||||
|         { | ||||
|             _NullData = null; | ||||
| @ -190,8 +193,6 @@ public class Logistics : ILogistics | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static string DefaultMesEntity(DateTime dateTime) => string.Concat(dateTime.Ticks, "_MES_ENTITY"); | ||||
|  | ||||
|     internal void Update(string mid, string processJobID) | ||||
|     { | ||||
|         _MID = mid; | ||||
|  | ||||
| @ -6,23 +6,25 @@ 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; } | ||||
| #nullable enable | ||||
|  | ||||
|         public Attachment(string subGroupId, long headerId, string headerIdDirectory, string uniqueId, string destinationFileName, string sourceFileName) | ||||
|         public long HeaderId { get; set; } | ||||
|         public string UniqueId { get; set; } | ||||
|         public string SubGroupId { get; set; } | ||||
|         public string AttachmentId { get; set; } | ||||
|         public string SourceFileName { get; set; } | ||||
|         public string HeaderIdDirectory { get; set; } | ||||
|         public string DestinationFileName { get; set; } | ||||
|  | ||||
|         public Attachment(Results? results, string headerIdDirectory, string uniqueId, string destinationFileName, string sourceFileName) | ||||
|         { | ||||
|             SubGroupId = subGroupId; | ||||
|             HeaderId = headerId; | ||||
|             HeaderIdDirectory = headerIdDirectory; | ||||
|             UniqueId = uniqueId; | ||||
|             DestinationFileName = destinationFileName; | ||||
|             SourceFileName = sourceFileName; | ||||
|             HeaderIdDirectory = headerIdDirectory; | ||||
|             DestinationFileName = destinationFileName; | ||||
|             AttachmentId = System.Guid.NewGuid().ToString(); | ||||
|             HeaderId = results?.HeaderId is null ? -1 : results.HeaderId.Value; | ||||
|             SubGroupId = results?.SubgroupId is null ? string.Empty : results.SubgroupId.Value.ToString(); | ||||
|         } | ||||
|  | ||||
|     } | ||||
|  | ||||
| @ -1,27 +1,75 @@ | ||||
| using System.Collections.Generic; | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.Text; | ||||
| using System.Text.Json; | ||||
| using System.Text.Json.Serialization; | ||||
|  | ||||
| namespace Adaptation.Shared.Metrology; | ||||
|  | ||||
| public partial class WS | ||||
| { | ||||
|     // this class represents the response from the Inbound API endpoint | ||||
|  | ||||
|     public class Results | ||||
|     { | ||||
|         // true or false if data was written to the database | ||||
|         public bool Success { get; set; } | ||||
|  | ||||
|         // if true, contains ID of the Header record in the database | ||||
|         public long HeaderID { get; set; } | ||||
| #nullable enable | ||||
|  | ||||
|         // if false, this collection will contain a list of errors | ||||
|         public List<string> Errors { get; set; } | ||||
|         [JsonConstructor] | ||||
|         public Results(List<string>? errors, | ||||
|                        long? headerId, | ||||
|                        long? subgroupId, | ||||
|                        bool? success, | ||||
|                        List<string>? warnings) | ||||
|         { | ||||
|             Errors = errors; | ||||
|             Success = success; | ||||
|             HeaderId = headerId; | ||||
|             Warnings = warnings; | ||||
|             SubgroupId = subgroupId; | ||||
|         } | ||||
|  | ||||
|         // this collection will contain a list of warnings, they will not prevent data from being saved | ||||
|         public List<string> Warnings { get; set; } | ||||
|         [JsonPropertyName("errors")] public List<string>? Errors { get; set; } | ||||
|         [JsonPropertyName("headerID")] public long? HeaderId { get; set; } | ||||
|         [JsonPropertyName("subgroupId")] public long? SubgroupId { get; set; } | ||||
|         [JsonPropertyName("success")] public bool? Success { get; set; } | ||||
|         [JsonPropertyName("warnings")] public List<string>? Warnings { get; set; } | ||||
|  | ||||
|         public override string ToString() | ||||
|         { | ||||
|             string result = JsonSerializer.Serialize(this, ResultsSourceGenerationContext.Default.Results); | ||||
|             return result; | ||||
|         } | ||||
|  | ||||
|         internal static Results Get(Results results, long? subgroupId) => | ||||
|             new(results.Errors, results.HeaderId, subgroupId, results.Success, results.Warnings); | ||||
|  | ||||
|         internal static Results Get(string resultsJson, Exception e) | ||||
|         { | ||||
|             Results results; | ||||
|             Exception? exception = e; | ||||
|             List<string> errors = new(); | ||||
|             StringBuilder stringBuilder = new(); | ||||
|             while (exception is not null) | ||||
|             { | ||||
|                 _ = stringBuilder.AppendLine(exception.Message); | ||||
|                 exception = exception.InnerException; | ||||
|             } | ||||
|             errors.Add(resultsJson); | ||||
|             errors.Add(stringBuilder.ToString()); | ||||
|             results = new(errors: errors, | ||||
|                           headerId: null, | ||||
|                           subgroupId: null, | ||||
|                           success: false, | ||||
|                           warnings: new()); | ||||
|             return results; | ||||
|         } | ||||
|  | ||||
|         // this is just a helper function to make displaying the results easier | ||||
|         public override string ToString() => JsonSerializer.Serialize(this, GetType()); | ||||
|     } | ||||
|  | ||||
| } | ||||
|  | ||||
| [JsonSourceGenerationOptions(WriteIndented = true)] | ||||
| [JsonSerializable(typeof(WS.Results))] | ||||
| internal partial class ResultsSourceGenerationContext : JsonSerializerContext | ||||
| { | ||||
| } | ||||
| @ -10,9 +10,11 @@ namespace Adaptation.Shared.Metrology; | ||||
| public partial class WS | ||||
| { | ||||
|  | ||||
| #nullable enable | ||||
|  | ||||
|     public static (string, Results) SendData(string url, long sequence, string directory, object payload, int timeoutSeconds = 120) | ||||
|     { | ||||
|         Results results = new(); | ||||
|         Results? wsResults = null; | ||||
|         string resultsJson = string.Empty; | ||||
|         try | ||||
|         { | ||||
| @ -30,29 +32,20 @@ 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}"); | ||||
|                 wsResults = JsonSerializer.Deserialize(resultsJson, ResultsSourceGenerationContext.Default.Results); | ||||
|                 if (wsResults is null) | ||||
|                     throw new NullReferenceException(nameof(wsResults)); | ||||
|                 string checkDirectory = Path.Combine(directory, $"-{wsResults.HeaderId}"); | ||||
|                 if (!Directory.Exists(checkDirectory)) | ||||
|                     _ = Directory.CreateDirectory(checkDirectory); | ||||
|                 File.WriteAllText(Path.Combine(checkDirectory, $"{sequence}.json"), json); | ||||
|             } | ||||
|             if (!results.Success) | ||||
|                 results.Errors.Add(results.ToString()); | ||||
|             if (wsResults.Success is null || !wsResults.Success.Value) | ||||
|                 wsResults.Errors?.Add(wsResults.ToString()); | ||||
|         } | ||||
|         catch (Exception e) | ||||
|         { | ||||
|             Exception exception = e; | ||||
|             StringBuilder stringBuilder = new(); | ||||
|             while (exception is not null) | ||||
|             { | ||||
|                 _ = stringBuilder.AppendLine(exception.Message); | ||||
|                 exception = exception.InnerException; | ||||
|             } | ||||
|             results.Errors ??= new List<string>(); | ||||
|             results.Errors.Add(resultsJson); | ||||
|             results.Errors.Add(stringBuilder.ToString()); | ||||
|         } | ||||
|         return new(resultsJson, results); | ||||
|         { wsResults ??= Results.Get(resultsJson, e); } | ||||
|         return new(resultsJson, wsResults); | ||||
|     } | ||||
|  | ||||
|     public static void AttachFile(string url, Attachment attachment, int timeoutSeconds = 60) | ||||
| @ -69,16 +62,20 @@ public partial class WS | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static void AttachFiles(string url, List<Attachment> headerAttachments = null, List<Attachment> dataAttachments = null) | ||||
|     public static void AttachFiles(string url, List<Attachment>? headerAttachments = null, List<Attachment>? dataAttachments = null) | ||||
|     { | ||||
|         string directory; | ||||
|         try | ||||
|         { | ||||
|             string? directoryName; | ||||
|             if (headerAttachments is not null) | ||||
|             { | ||||
|                 foreach (Attachment attachment in headerAttachments) | ||||
|                 { | ||||
|                     directory = Path.Combine(Path.GetDirectoryName(attachment.HeaderIdDirectory), attachment.AttachmentId) ?? throw new Exception(); | ||||
|                     directoryName = Path.GetDirectoryName(attachment.HeaderIdDirectory); | ||||
|                     if (string.IsNullOrEmpty(directoryName)) | ||||
|                         continue; | ||||
|                     directory = Path.Combine(directoryName, attachment.AttachmentId) ?? throw new Exception(); | ||||
|                     if (!Directory.Exists(directory)) | ||||
|                         _ = Directory.CreateDirectory(directory); | ||||
|                     File.Copy(attachment.SourceFileName, Path.Combine(directory, attachment.DestinationFileName), overwrite: true); | ||||
| @ -88,7 +85,10 @@ public partial class WS | ||||
|             { | ||||
|                 foreach (Attachment attachment in dataAttachments) | ||||
|                 { | ||||
|                     directory = Path.Combine(Path.GetDirectoryName(attachment.HeaderIdDirectory.Replace("Header", "Data")), attachment.AttachmentId) ?? throw new Exception(); | ||||
|                     directoryName = Path.GetDirectoryName(attachment.HeaderIdDirectory.Replace("Header", "Data")); | ||||
|                     if (string.IsNullOrEmpty(directoryName)) | ||||
|                         continue; | ||||
|                     directory = Path.Combine(directoryName, attachment.AttachmentId) ?? throw new Exception(); | ||||
|                     if (!Directory.Exists(directory)) | ||||
|                         _ = Directory.CreateDirectory(directory); | ||||
|                     File.Copy(attachment.SourceFileName, Path.Combine(directory, attachment.DestinationFileName), overwrite: true); | ||||
| @ -108,7 +108,7 @@ public partial class WS | ||||
|         } | ||||
|         catch (Exception e) | ||||
|         { | ||||
|             Exception exception = e; | ||||
|             Exception? exception = e; | ||||
|             StringBuilder stringBuilder = new(); | ||||
|             while (exception is not null) | ||||
|             { | ||||
|  | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										34
									
								
								Adaptation/Shared/ProcessDataStandardFormatMapping.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								Adaptation/Shared/ProcessDataStandardFormatMapping.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,34 @@ | ||||
| using System.Collections.ObjectModel; | ||||
| using System.Linq; | ||||
|  | ||||
| namespace Adaptation.Shared; | ||||
|  | ||||
| public class ProcessDataStandardFormatMapping | ||||
| { | ||||
|  | ||||
|     public ReadOnlyCollection<int> ColumnIndices { get; private set; } | ||||
|     public ReadOnlyCollection<string> NewColumnNames { get; private set; } | ||||
|     public ReadOnlyCollection<string> OldColumnNames { get; private set; } | ||||
|  | ||||
|     public ProcessDataStandardFormatMapping(ReadOnlyCollection<int> columnIndices, | ||||
|                                             ReadOnlyCollection<string> newColumnNames, | ||||
|                                             ReadOnlyCollection<string> oldColumnNames) | ||||
|     { | ||||
|         ColumnIndices = columnIndices; | ||||
|         NewColumnNames = newColumnNames; | ||||
|         OldColumnNames = oldColumnNames; | ||||
|     } | ||||
|  | ||||
|     internal static ProcessDataStandardFormatMapping Get(string processDataStandardFormatMappingOldColumnNames, string processDataStandardFormatMappingNewColumnNames, string processDataStandardFormatMappingColumnIndices) | ||||
|     { | ||||
|         ProcessDataStandardFormatMapping result; | ||||
|         ReadOnlyCollection<string> newColumnNames = new(processDataStandardFormatMappingNewColumnNames.Split(',')); | ||||
|         ReadOnlyCollection<string> oldColumnNames = new(processDataStandardFormatMappingOldColumnNames.Split(',')); | ||||
|         ReadOnlyCollection<int> columnIndices = new(processDataStandardFormatMappingColumnIndices.Split(',').Select(int.Parse).ToArray()); | ||||
|         result = new(columnIndices: columnIndices, | ||||
|                      newColumnNames: newColumnNames, | ||||
|                      oldColumnNames: oldColumnNames); | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @ -1,4 +1,4 @@ | ||||
| #if true | ||||
| #if v2_57_0 | ||||
| using Adaptation._Tests.Shared; | ||||
| using Microsoft.Extensions.Logging; | ||||
| using Microsoft.VisualStudio.TestTools.UnitTesting; | ||||
|  | ||||
| @ -1,4 +1,4 @@ | ||||
| #if true | ||||
| #if v2_57_0 | ||||
| using Adaptation._Tests.Shared; | ||||
| using Microsoft.Extensions.Logging; | ||||
| using Microsoft.VisualStudio.TestTools.UnitTesting; | ||||
|  | ||||
| @ -1,4 +1,4 @@ | ||||
| #if true | ||||
| #if v2_57_0 | ||||
| using Adaptation._Tests.Shared; | ||||
| using Microsoft.Extensions.Logging; | ||||
| using Microsoft.VisualStudio.TestTools.UnitTesting; | ||||
|  | ||||
| @ -1,4 +1,4 @@ | ||||
| #if true | ||||
| #if v2_57_0 | ||||
| using Adaptation._Tests.Shared; | ||||
| using Microsoft.Extensions.Logging; | ||||
| using Microsoft.VisualStudio.TestTools.UnitTesting; | ||||
|  | ||||
| @ -0,0 +1,65 @@ | ||||
| #if v2_58_0 | ||||
| using Adaptation._Tests.Shared; | ||||
| using Microsoft.Extensions.Logging; | ||||
| using Microsoft.VisualStudio.TestTools.UnitTesting; | ||||
| using System; | ||||
| using System.Diagnostics; | ||||
| using System.IO; | ||||
| using System.Reflection; | ||||
|  | ||||
| namespace Adaptation._Tests.CreateSelfDescription.Production.v2_58_0; | ||||
|  | ||||
| [TestClass] | ||||
| public class HGCV1 : EAFLoggingUnitTesting | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     internal static string DummyRoot { get; private set; } | ||||
|     internal static HGCV1 EAFLoggingUnitTesting { get; private set; } | ||||
|  | ||||
|     static HGCV1() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy"; | ||||
|  | ||||
|     public HGCV1() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false) | ||||
|     { | ||||
|         if (EAFLoggingUnitTesting is null) | ||||
|             throw new Exception(); | ||||
|     } | ||||
|  | ||||
|     public HGCV1(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false) | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         EAFLoggingUnitTesting ??= new HGCV1(testContext); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize")); | ||||
|         string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName); | ||||
|         File.WriteAllText(fileNameAndText[0], fileNameAndText[1]); | ||||
|         File.WriteAllText(fileNameAndText[2], fileNameAndText[3]); | ||||
|     } | ||||
|  | ||||
|     [ClassCleanup()] | ||||
|     public static void ClassCleanup() | ||||
|     { | ||||
|         EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup"); | ||||
|         EAFLoggingUnitTesting?.Dispose(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__HGCV1__pcl() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         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,65 @@ | ||||
| #if v2_58_0 | ||||
| using Adaptation._Tests.Shared; | ||||
| using Microsoft.Extensions.Logging; | ||||
| using Microsoft.VisualStudio.TestTools.UnitTesting; | ||||
| using System; | ||||
| using System.Diagnostics; | ||||
| using System.IO; | ||||
| using System.Reflection; | ||||
|  | ||||
| namespace Adaptation._Tests.CreateSelfDescription.Production.v2_58_0; | ||||
|  | ||||
| [TestClass] | ||||
| public class HGCV2 : EAFLoggingUnitTesting | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     internal static string DummyRoot { get; private set; } | ||||
|     internal static HGCV2 EAFLoggingUnitTesting { get; private set; } | ||||
|  | ||||
|     static HGCV2() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy"; | ||||
|  | ||||
|     public HGCV2() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false) | ||||
|     { | ||||
|         if (EAFLoggingUnitTesting is null) | ||||
|             throw new Exception(); | ||||
|     } | ||||
|  | ||||
|     public HGCV2(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false) | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         EAFLoggingUnitTesting ??= new HGCV2(testContext); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize")); | ||||
|         string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName); | ||||
|         File.WriteAllText(fileNameAndText[0], fileNameAndText[1]); | ||||
|         File.WriteAllText(fileNameAndText[2], fileNameAndText[3]); | ||||
|     } | ||||
|  | ||||
|     [ClassCleanup()] | ||||
|     public static void ClassCleanup() | ||||
|     { | ||||
|         EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup"); | ||||
|         EAFLoggingUnitTesting?.Dispose(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__HGCV2__pcl() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         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,65 @@ | ||||
| #if v2_58_0 | ||||
| using Adaptation._Tests.Shared; | ||||
| using Microsoft.Extensions.Logging; | ||||
| using Microsoft.VisualStudio.TestTools.UnitTesting; | ||||
| using System; | ||||
| using System.Diagnostics; | ||||
| using System.IO; | ||||
| using System.Reflection; | ||||
|  | ||||
| namespace Adaptation._Tests.CreateSelfDescription.Production.v2_58_0; | ||||
|  | ||||
| [TestClass] | ||||
| public class HGCV3 : EAFLoggingUnitTesting | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     internal static string DummyRoot { get; private set; } | ||||
|     internal static HGCV3 EAFLoggingUnitTesting { get; private set; } | ||||
|  | ||||
|     static HGCV3() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy"; | ||||
|  | ||||
|     public HGCV3() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false) | ||||
|     { | ||||
|         if (EAFLoggingUnitTesting is null) | ||||
|             throw new Exception(); | ||||
|     } | ||||
|  | ||||
|     public HGCV3(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false) | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         EAFLoggingUnitTesting ??= new HGCV3(testContext); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize")); | ||||
|         string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName); | ||||
|         File.WriteAllText(fileNameAndText[0], fileNameAndText[1]); | ||||
|         File.WriteAllText(fileNameAndText[2], fileNameAndText[3]); | ||||
|     } | ||||
|  | ||||
|     [ClassCleanup()] | ||||
|     public static void ClassCleanup() | ||||
|     { | ||||
|         EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup"); | ||||
|         EAFLoggingUnitTesting?.Dispose(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__HGCV3__pcl() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
| @ -0,0 +1,195 @@ | ||||
| #if v2_58_0 | ||||
| using Adaptation._Tests.Shared; | ||||
| using Microsoft.Extensions.Logging; | ||||
| using Microsoft.VisualStudio.TestTools.UnitTesting; | ||||
| using System; | ||||
| using System.Diagnostics; | ||||
| using System.IO; | ||||
| using System.Reflection; | ||||
|  | ||||
| namespace Adaptation._Tests.CreateSelfDescription.Production.v2_58_0; | ||||
|  | ||||
| [TestClass] | ||||
| public class MET08RESIHGCV : EAFLoggingUnitTesting | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     internal static string DummyRoot { get; private set; } | ||||
|     internal static MET08RESIHGCV EAFLoggingUnitTesting { get; private set; } | ||||
|  | ||||
|     static MET08RESIHGCV() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy"; | ||||
|  | ||||
|     public MET08RESIHGCV() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false) | ||||
|     { | ||||
|         if (EAFLoggingUnitTesting is null) | ||||
|             throw new Exception(); | ||||
|     } | ||||
|  | ||||
|     public MET08RESIHGCV(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false) | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         EAFLoggingUnitTesting ??= new MET08RESIHGCV(testContext); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize")); | ||||
|         string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName); | ||||
|         File.WriteAllText(fileNameAndText[0], fileNameAndText[1]); | ||||
|         File.WriteAllText(fileNameAndText[2], fileNameAndText[3]); | ||||
|     } | ||||
|  | ||||
|     [ClassCleanup()] | ||||
|     public static void ClassCleanup() | ||||
|     { | ||||
|         EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup"); | ||||
|         EAFLoggingUnitTesting?.Dispose(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__MET08RESIHGCV__MoveMatchingFiles() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__MET08RESIHGCV__OpenInsightMetrologyViewer() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__MET08RESIHGCV__IQSSi() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__MET08RESIHGCV__OpenInsight() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__MET08RESIHGCV__OpenInsightMetrologyViewerAttachments() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__MET08RESIHGCV__APC() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__MET08RESIHGCV__SPaCe() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__MET08RESIHGCV__Processed() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__MET08RESIHGCV__Archive() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__MET08RESIHGCV__Dummy() | ||||
|     { | ||||
|         string check = "638417860100000000.zip"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__MET08RESIHGCV__InterceptIQS() | ||||
|     { | ||||
|         string check = "HgCV_Unload_Res_9Points*.txt"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
| @ -0,0 +1,65 @@ | ||||
| #if v2_59_0 | ||||
| using Adaptation._Tests.Shared; | ||||
| using Microsoft.Extensions.Logging; | ||||
| using Microsoft.VisualStudio.TestTools.UnitTesting; | ||||
| using System; | ||||
| using System.Diagnostics; | ||||
| using System.IO; | ||||
| using System.Reflection; | ||||
|  | ||||
| namespace Adaptation._Tests.CreateSelfDescription.Production.v2_59_0; | ||||
|  | ||||
| [TestClass] | ||||
| public class HGCV1 : EAFLoggingUnitTesting | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     internal static string DummyRoot { get; private set; } | ||||
|     internal static HGCV1 EAFLoggingUnitTesting { get; private set; } | ||||
|  | ||||
|     static HGCV1() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy"; | ||||
|  | ||||
|     public HGCV1() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false) | ||||
|     { | ||||
|         if (EAFLoggingUnitTesting is null) | ||||
|             throw new Exception(); | ||||
|     } | ||||
|  | ||||
|     public HGCV1(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false) | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         EAFLoggingUnitTesting ??= new HGCV1(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__HGCV1__pcl() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         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,65 @@ | ||||
| #if v2_59_0 | ||||
| using Adaptation._Tests.Shared; | ||||
| using Microsoft.Extensions.Logging; | ||||
| using Microsoft.VisualStudio.TestTools.UnitTesting; | ||||
| using System; | ||||
| using System.Diagnostics; | ||||
| using System.IO; | ||||
| using System.Reflection; | ||||
|  | ||||
| namespace Adaptation._Tests.CreateSelfDescription.Production.v2_59_0; | ||||
|  | ||||
| [TestClass] | ||||
| public class HGCV2 : EAFLoggingUnitTesting | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     internal static string DummyRoot { get; private set; } | ||||
|     internal static HGCV2 EAFLoggingUnitTesting { get; private set; } | ||||
|  | ||||
|     static HGCV2() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy"; | ||||
|  | ||||
|     public HGCV2() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false) | ||||
|     { | ||||
|         if (EAFLoggingUnitTesting is null) | ||||
|             throw new Exception(); | ||||
|     } | ||||
|  | ||||
|     public HGCV2(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false) | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         EAFLoggingUnitTesting ??= new HGCV2(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__HGCV2__pcl() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         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,65 @@ | ||||
| #if v2_59_0 | ||||
| using Adaptation._Tests.Shared; | ||||
| using Microsoft.Extensions.Logging; | ||||
| using Microsoft.VisualStudio.TestTools.UnitTesting; | ||||
| using System; | ||||
| using System.Diagnostics; | ||||
| using System.IO; | ||||
| using System.Reflection; | ||||
|  | ||||
| namespace Adaptation._Tests.CreateSelfDescription.Production.v2_59_0; | ||||
|  | ||||
| [TestClass] | ||||
| public class HGCV3 : EAFLoggingUnitTesting | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     internal static string DummyRoot { get; private set; } | ||||
|     internal static HGCV3 EAFLoggingUnitTesting { get; private set; } | ||||
|  | ||||
|     static HGCV3() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy"; | ||||
|  | ||||
|     public HGCV3() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false) | ||||
|     { | ||||
|         if (EAFLoggingUnitTesting is null) | ||||
|             throw new Exception(); | ||||
|     } | ||||
|  | ||||
|     public HGCV3(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false) | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         EAFLoggingUnitTesting ??= new HGCV3(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__HGCV3__pcl() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
| @ -0,0 +1,195 @@ | ||||
| #if v2_59_0 | ||||
| using Adaptation._Tests.Shared; | ||||
| using Microsoft.Extensions.Logging; | ||||
| using Microsoft.VisualStudio.TestTools.UnitTesting; | ||||
| using System; | ||||
| using System.Diagnostics; | ||||
| using System.IO; | ||||
| using System.Reflection; | ||||
|  | ||||
| namespace Adaptation._Tests.CreateSelfDescription.Production.v2_59_0; | ||||
|  | ||||
| [TestClass] | ||||
| public class MET08RESIHGCV : EAFLoggingUnitTesting | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     internal static string DummyRoot { get; private set; } | ||||
|     internal static MET08RESIHGCV EAFLoggingUnitTesting { get; private set; } | ||||
|  | ||||
|     static MET08RESIHGCV() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy"; | ||||
|  | ||||
|     public MET08RESIHGCV() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false) | ||||
|     { | ||||
|         if (EAFLoggingUnitTesting is null) | ||||
|             throw new Exception(); | ||||
|     } | ||||
|  | ||||
|     public MET08RESIHGCV(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false) | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         EAFLoggingUnitTesting ??= new MET08RESIHGCV(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__MET08RESIHGCV__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__MET08RESIHGCV__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__MET08RESIHGCV__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__MET08RESIHGCV__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__MET08RESIHGCV__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__MET08RESIHGCV__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__MET08RESIHGCV__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__MET08RESIHGCV__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__MET08RESIHGCV__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__MET08RESIHGCV__Dummy() | ||||
|     { | ||||
|         string check = "638417860100000000.zip"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_59_0__MET08RESIHGCV__InterceptIQS() | ||||
|     { | ||||
|         string check = "HgCV_Unload_Res_9Points*.txt"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
| @ -0,0 +1,65 @@ | ||||
| #if v2_60_0 | ||||
| using Adaptation._Tests.Shared; | ||||
| using Microsoft.Extensions.Logging; | ||||
| using Microsoft.VisualStudio.TestTools.UnitTesting; | ||||
| using System; | ||||
| using System.Diagnostics; | ||||
| using System.IO; | ||||
| using System.Reflection; | ||||
|  | ||||
| namespace Adaptation._Tests.CreateSelfDescription.Production.v2_60_0; | ||||
|  | ||||
| [TestClass] | ||||
| public class HGCV1 : EAFLoggingUnitTesting | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     internal static string DummyRoot { get; private set; } | ||||
|     internal static HGCV1 EAFLoggingUnitTesting { get; private set; } | ||||
|  | ||||
|     static HGCV1() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy"; | ||||
|  | ||||
|     public HGCV1() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false) | ||||
|     { | ||||
|         if (EAFLoggingUnitTesting is null) | ||||
|             throw new Exception(); | ||||
|     } | ||||
|  | ||||
|     public HGCV1(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false) | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         EAFLoggingUnitTesting ??= new HGCV1(testContext); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize")); | ||||
|         string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName); | ||||
|         File.WriteAllText(fileNameAndText[0], fileNameAndText[1]); | ||||
|         File.WriteAllText(fileNameAndText[2], fileNameAndText[3]); | ||||
|     } | ||||
|  | ||||
|     [ClassCleanup()] | ||||
|     public static void ClassCleanup() | ||||
|     { | ||||
|         EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup"); | ||||
|         EAFLoggingUnitTesting?.Dispose(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__HGCV1__pcl() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         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,76 @@ | ||||
| #if v2_60_0 | ||||
| using Adaptation._Tests.Shared; | ||||
| using Microsoft.Extensions.Logging; | ||||
| using Microsoft.VisualStudio.TestTools.UnitTesting; | ||||
| using System; | ||||
| using System.Diagnostics; | ||||
| using System.IO; | ||||
| using System.Reflection; | ||||
|  | ||||
| namespace Adaptation._Tests.CreateSelfDescription.Production.v2_60_0; | ||||
|  | ||||
| [TestClass] | ||||
| public class HGCV2 : EAFLoggingUnitTesting | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     internal static string DummyRoot { get; private set; } | ||||
|     internal static HGCV2 EAFLoggingUnitTesting { get; private set; } | ||||
|  | ||||
|     static HGCV2() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy"; | ||||
|  | ||||
|     public HGCV2() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false) | ||||
|     { | ||||
|         if (EAFLoggingUnitTesting is null) | ||||
|             throw new Exception(); | ||||
|     } | ||||
|  | ||||
|     public HGCV2(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false) | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         EAFLoggingUnitTesting ??= new HGCV2(testContext); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize")); | ||||
|         string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName); | ||||
|         File.WriteAllText(fileNameAndText[0], fileNameAndText[1]); | ||||
|         File.WriteAllText(fileNameAndText[2], fileNameAndText[3]); | ||||
|     } | ||||
|  | ||||
|     [ClassCleanup()] | ||||
|     public static void ClassCleanup() | ||||
|     { | ||||
|         EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup"); | ||||
|         EAFLoggingUnitTesting?.Dispose(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__HGCV2__pcl() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         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 Production__v2_60_0__HGCV2__pdsf() | ||||
|     { | ||||
|         string check = "*EQP_*.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")); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
| @ -0,0 +1,65 @@ | ||||
| #if v2_60_0 | ||||
| using Adaptation._Tests.Shared; | ||||
| using Microsoft.Extensions.Logging; | ||||
| using Microsoft.VisualStudio.TestTools.UnitTesting; | ||||
| using System; | ||||
| using System.Diagnostics; | ||||
| using System.IO; | ||||
| using System.Reflection; | ||||
|  | ||||
| namespace Adaptation._Tests.CreateSelfDescription.Production.v2_60_0; | ||||
|  | ||||
| [TestClass] | ||||
| public class HGCV3 : EAFLoggingUnitTesting | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     internal static string DummyRoot { get; private set; } | ||||
|     internal static HGCV3 EAFLoggingUnitTesting { get; private set; } | ||||
|  | ||||
|     static HGCV3() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy"; | ||||
|  | ||||
|     public HGCV3() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false) | ||||
|     { | ||||
|         if (EAFLoggingUnitTesting is null) | ||||
|             throw new Exception(); | ||||
|     } | ||||
|  | ||||
|     public HGCV3(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false) | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         EAFLoggingUnitTesting ??= new HGCV3(testContext); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize")); | ||||
|         string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName); | ||||
|         File.WriteAllText(fileNameAndText[0], fileNameAndText[1]); | ||||
|         File.WriteAllText(fileNameAndText[2], fileNameAndText[3]); | ||||
|     } | ||||
|  | ||||
|     [ClassCleanup()] | ||||
|     public static void ClassCleanup() | ||||
|     { | ||||
|         EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup"); | ||||
|         EAFLoggingUnitTesting?.Dispose(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__HGCV3__pcl() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
| @ -0,0 +1,195 @@ | ||||
| #if v2_60_0 | ||||
| using Adaptation._Tests.Shared; | ||||
| using Microsoft.Extensions.Logging; | ||||
| using Microsoft.VisualStudio.TestTools.UnitTesting; | ||||
| using System; | ||||
| using System.Diagnostics; | ||||
| using System.IO; | ||||
| using System.Reflection; | ||||
|  | ||||
| namespace Adaptation._Tests.CreateSelfDescription.Production.v2_60_0; | ||||
|  | ||||
| [TestClass] | ||||
| public class MET08RESIHGCV : EAFLoggingUnitTesting | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     internal static string DummyRoot { get; private set; } | ||||
|     internal static MET08RESIHGCV EAFLoggingUnitTesting { get; private set; } | ||||
|  | ||||
|     static MET08RESIHGCV() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy"; | ||||
|  | ||||
|     public MET08RESIHGCV() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false) | ||||
|     { | ||||
|         if (EAFLoggingUnitTesting is null) | ||||
|             throw new Exception(); | ||||
|     } | ||||
|  | ||||
|     public MET08RESIHGCV(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false) | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         EAFLoggingUnitTesting ??= new MET08RESIHGCV(testContext); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize")); | ||||
|         string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName); | ||||
|         File.WriteAllText(fileNameAndText[0], fileNameAndText[1]); | ||||
|         File.WriteAllText(fileNameAndText[2], fileNameAndText[3]); | ||||
|     } | ||||
|  | ||||
|     [ClassCleanup()] | ||||
|     public static void ClassCleanup() | ||||
|     { | ||||
|         EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup"); | ||||
|         EAFLoggingUnitTesting?.Dispose(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__MET08RESIHGCV__MoveMatchingFiles() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__MET08RESIHGCV__OpenInsightMetrologyViewer() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__MET08RESIHGCV__IQSSi() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__MET08RESIHGCV__OpenInsight() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__MET08RESIHGCV__OpenInsightMetrologyViewerAttachments() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__MET08RESIHGCV__APC() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__MET08RESIHGCV__SPaCe() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__MET08RESIHGCV__Processed() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__MET08RESIHGCV__Archive() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__MET08RESIHGCV__Dummy() | ||||
|     { | ||||
|         string check = "638417860100000000.zip"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__MET08RESIHGCV__InterceptIQS() | ||||
|     { | ||||
|         string check = "HgCV_Unload_Res_9Points*.txt"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
| @ -0,0 +1,65 @@ | ||||
| #if true | ||||
| using Adaptation._Tests.Shared; | ||||
| using Microsoft.Extensions.Logging; | ||||
| using Microsoft.VisualStudio.TestTools.UnitTesting; | ||||
| using System; | ||||
| using System.Diagnostics; | ||||
| using System.IO; | ||||
| using System.Reflection; | ||||
|  | ||||
| namespace Adaptation._Tests.CreateSelfDescription.Production.v2_61_1; | ||||
|  | ||||
| [TestClass] | ||||
| public class HGCV1 : EAFLoggingUnitTesting | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     internal static string DummyRoot { get; private set; } | ||||
|     internal static HGCV1 EAFLoggingUnitTesting { get; private set; } | ||||
|  | ||||
|     static HGCV1() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy"; | ||||
|  | ||||
|     public HGCV1() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false) | ||||
|     { | ||||
|         if (EAFLoggingUnitTesting is null) | ||||
|             throw new Exception(); | ||||
|     } | ||||
|  | ||||
|     public HGCV1(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false) | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         EAFLoggingUnitTesting ??= new HGCV1(testContext); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize")); | ||||
|         string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName); | ||||
|         File.WriteAllText(fileNameAndText[0], fileNameAndText[1]); | ||||
|         File.WriteAllText(fileNameAndText[2], fileNameAndText[3]); | ||||
|     } | ||||
|  | ||||
|     [ClassCleanup()] | ||||
|     public static void ClassCleanup() | ||||
|     { | ||||
|         EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup"); | ||||
|         EAFLoggingUnitTesting?.Dispose(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__HGCV1__pcl() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         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,76 @@ | ||||
| #if true | ||||
| using Adaptation._Tests.Shared; | ||||
| using Microsoft.Extensions.Logging; | ||||
| using Microsoft.VisualStudio.TestTools.UnitTesting; | ||||
| using System; | ||||
| using System.Diagnostics; | ||||
| using System.IO; | ||||
| using System.Reflection; | ||||
|  | ||||
| namespace Adaptation._Tests.CreateSelfDescription.Production.v2_61_1; | ||||
|  | ||||
| [TestClass] | ||||
| public class HGCV2 : EAFLoggingUnitTesting | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     internal static string DummyRoot { get; private set; } | ||||
|     internal static HGCV2 EAFLoggingUnitTesting { get; private set; } | ||||
|  | ||||
|     static HGCV2() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy"; | ||||
|  | ||||
|     public HGCV2() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false) | ||||
|     { | ||||
|         if (EAFLoggingUnitTesting is null) | ||||
|             throw new Exception(); | ||||
|     } | ||||
|  | ||||
|     public HGCV2(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false) | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         EAFLoggingUnitTesting ??= new HGCV2(testContext); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize")); | ||||
|         string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName); | ||||
|         File.WriteAllText(fileNameAndText[0], fileNameAndText[1]); | ||||
|         File.WriteAllText(fileNameAndText[2], fileNameAndText[3]); | ||||
|     } | ||||
|  | ||||
|     [ClassCleanup()] | ||||
|     public static void ClassCleanup() | ||||
|     { | ||||
|         EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup"); | ||||
|         EAFLoggingUnitTesting?.Dispose(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__HGCV2__pcl() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         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 Production__v2_61_1__HGCV2__pdsf() | ||||
|     { | ||||
|         string check = "*EQP_*.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")); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
| @ -0,0 +1,65 @@ | ||||
| #if true | ||||
| using Adaptation._Tests.Shared; | ||||
| using Microsoft.Extensions.Logging; | ||||
| using Microsoft.VisualStudio.TestTools.UnitTesting; | ||||
| using System; | ||||
| using System.Diagnostics; | ||||
| using System.IO; | ||||
| using System.Reflection; | ||||
|  | ||||
| namespace Adaptation._Tests.CreateSelfDescription.Production.v2_61_1; | ||||
|  | ||||
| [TestClass] | ||||
| public class HGCV3 : EAFLoggingUnitTesting | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     internal static string DummyRoot { get; private set; } | ||||
|     internal static HGCV3 EAFLoggingUnitTesting { get; private set; } | ||||
|  | ||||
|     static HGCV3() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy"; | ||||
|  | ||||
|     public HGCV3() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false) | ||||
|     { | ||||
|         if (EAFLoggingUnitTesting is null) | ||||
|             throw new Exception(); | ||||
|     } | ||||
|  | ||||
|     public HGCV3(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false) | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         EAFLoggingUnitTesting ??= new HGCV3(testContext); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize")); | ||||
|         string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName); | ||||
|         File.WriteAllText(fileNameAndText[0], fileNameAndText[1]); | ||||
|         File.WriteAllText(fileNameAndText[2], fileNameAndText[3]); | ||||
|     } | ||||
|  | ||||
|     [ClassCleanup()] | ||||
|     public static void ClassCleanup() | ||||
|     { | ||||
|         EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup"); | ||||
|         EAFLoggingUnitTesting?.Dispose(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__HGCV3__pcl() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
| @ -0,0 +1,195 @@ | ||||
| #if true | ||||
| using Adaptation._Tests.Shared; | ||||
| using Microsoft.Extensions.Logging; | ||||
| using Microsoft.VisualStudio.TestTools.UnitTesting; | ||||
| using System; | ||||
| using System.Diagnostics; | ||||
| using System.IO; | ||||
| using System.Reflection; | ||||
|  | ||||
| namespace Adaptation._Tests.CreateSelfDescription.Production.v2_61_1; | ||||
|  | ||||
| [TestClass] | ||||
| public class MET08RESIHGCV : EAFLoggingUnitTesting | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     internal static string DummyRoot { get; private set; } | ||||
|     internal static MET08RESIHGCV EAFLoggingUnitTesting { get; private set; } | ||||
|  | ||||
|     static MET08RESIHGCV() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy"; | ||||
|  | ||||
|     public MET08RESIHGCV() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false) | ||||
|     { | ||||
|         if (EAFLoggingUnitTesting is null) | ||||
|             throw new Exception(); | ||||
|     } | ||||
|  | ||||
|     public MET08RESIHGCV(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false) | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         EAFLoggingUnitTesting ??= new MET08RESIHGCV(testContext); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize")); | ||||
|         string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName); | ||||
|         File.WriteAllText(fileNameAndText[0], fileNameAndText[1]); | ||||
|         File.WriteAllText(fileNameAndText[2], fileNameAndText[3]); | ||||
|     } | ||||
|  | ||||
|     [ClassCleanup()] | ||||
|     public static void ClassCleanup() | ||||
|     { | ||||
|         EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup"); | ||||
|         EAFLoggingUnitTesting?.Dispose(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__MET08RESIHGCV__MoveMatchingFiles() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__MET08RESIHGCV__OpenInsightMetrologyViewer() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__MET08RESIHGCV__IQSSi() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__MET08RESIHGCV__OpenInsight() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__MET08RESIHGCV__OpenInsightMetrologyViewerAttachments() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__MET08RESIHGCV__APC() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__MET08RESIHGCV__SPaCe() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__MET08RESIHGCV__Processed() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__MET08RESIHGCV__Archive() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__MET08RESIHGCV__Dummy() | ||||
|     { | ||||
|         string check = "638417860100000000.zip"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__MET08RESIHGCV__InterceptIQS() | ||||
|     { | ||||
|         string check = "HgCV_Unload_Res_9Points*.txt"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); | ||||
|         EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
| @ -1,4 +1,4 @@ | ||||
| #if true | ||||
| #if v2_57_0 | ||||
| using Adaptation._Tests.Shared; | ||||
| using Adaptation.Shared; | ||||
| using Adaptation.Shared.Methods; | ||||
|  | ||||
| @ -1,4 +1,4 @@ | ||||
| #if true | ||||
| #if v2_57_0 | ||||
| using Adaptation._Tests.Shared; | ||||
| using Adaptation.Shared; | ||||
| using Adaptation.Shared.Methods; | ||||
|  | ||||
| @ -1,4 +1,4 @@ | ||||
| #if true | ||||
| #if v2_57_0 | ||||
| using Adaptation._Tests.Shared; | ||||
| using Adaptation.Shared; | ||||
| using Adaptation.Shared.Methods; | ||||
|  | ||||
| @ -1,4 +1,4 @@ | ||||
| #if true | ||||
| #if v2_57_0 | ||||
| using Adaptation._Tests.Shared; | ||||
| using Adaptation.Shared; | ||||
| using Adaptation.Shared.Methods; | ||||
|  | ||||
							
								
								
									
										59
									
								
								Adaptation/_Tests/Extract/Production/v2.58.0/HGCV1.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								Adaptation/_Tests/Extract/Production/v2.58.0/HGCV1.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,59 @@ | ||||
| #if v2_58_0 | ||||
| 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_58_0; | ||||
|  | ||||
| [TestClass] | ||||
| public class HGCV1 | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     private static CreateSelfDescription.Production.v2_58_0.HGCV1 _HGCV1; | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         CreateSelfDescription.Production.v2_58_0.HGCV1.ClassInitialize(testContext); | ||||
|         _HGCV1 = CreateSelfDescription.Production.v2_58_0.HGCV1.EAFLoggingUnitTesting; | ||||
|     } | ||||
|  | ||||
|     private static void NonThrowTryCatch() | ||||
|     { | ||||
|         try | ||||
|         { throw new Exception(); } | ||||
|         catch (Exception) { } | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__HGCV1__pcl() => _HGCV1.Production__v2_58_0__HGCV1__pcl(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__HGCV1__pcl637955429602879992__Normal() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         bool validatePDSF = false; | ||||
|         _HGCV1.Production__v2_58_0__HGCV1__pcl(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV1.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV1.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
							
								
								
									
										59
									
								
								Adaptation/_Tests/Extract/Production/v2.58.0/HGCV2.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								Adaptation/_Tests/Extract/Production/v2.58.0/HGCV2.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,59 @@ | ||||
| #if v2_58_0 | ||||
| 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_58_0; | ||||
|  | ||||
| [TestClass] | ||||
| public class HGCV2 | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     private static CreateSelfDescription.Production.v2_58_0.HGCV2 _HGCV2; | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         CreateSelfDescription.Production.v2_58_0.HGCV2.ClassInitialize(testContext); | ||||
|         _HGCV2 = CreateSelfDescription.Production.v2_58_0.HGCV2.EAFLoggingUnitTesting; | ||||
|     } | ||||
|  | ||||
|     private static void NonThrowTryCatch() | ||||
|     { | ||||
|         try | ||||
|         { throw new Exception(); } | ||||
|         catch (Exception) { } | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__HGCV2__pcl() => _HGCV2.Production__v2_58_0__HGCV2__pcl(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__HGCV2__pcl637955471606299897__Normal() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         bool validatePDSF = false; | ||||
|         _HGCV2.Production__v2_58_0__HGCV2__pcl(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV2.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV2.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
							
								
								
									
										111
									
								
								Adaptation/_Tests/Extract/Production/v2.58.0/HGCV3.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										111
									
								
								Adaptation/_Tests/Extract/Production/v2.58.0/HGCV3.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,111 @@ | ||||
| #if v2_58_0 | ||||
| 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_58_0; | ||||
|  | ||||
| [TestClass] | ||||
| public class HGCV3 | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     private static CreateSelfDescription.Production.v2_58_0.HGCV3 _HGCV3; | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         CreateSelfDescription.Production.v2_58_0.HGCV3.ClassInitialize(testContext); | ||||
|         _HGCV3 = CreateSelfDescription.Production.v2_58_0.HGCV3.EAFLoggingUnitTesting; | ||||
|     } | ||||
|  | ||||
|     private static void NonThrowTryCatch() | ||||
|     { | ||||
|         try | ||||
|         { throw new Exception(); } | ||||
|         catch (Exception) { } | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__HGCV3__pcl() => _HGCV3.Production__v2_58_0__HGCV3__pcl(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     [ExpectedException(typeof(AssertFailedException))] | ||||
|     public void Production__v2_58_0__HGCV3__pcl637812984345592512__MinFileLength() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         bool validatePDSF = false; | ||||
|         _HGCV3.Production__v2_58_0__HGCV3__pcl(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV3.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV3.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__HGCV3__pcl637816384579205568__Normal() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         bool validatePDSF = false; | ||||
|         _HGCV3.Production__v2_58_0__HGCV3__pcl(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV3.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV3.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__HGCV3__pcl637955459372840332__Normal() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         bool validatePDSF = false; | ||||
|         _HGCV3.Production__v2_58_0__HGCV3__pcl(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV3.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV3.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__HGCV3__pcl638416903464189143__PopulateCalculated() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         bool validatePDSF = false; | ||||
|         _HGCV3.Production__v2_58_0__HGCV3__pcl(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV3.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV3.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
							
								
								
									
										200
									
								
								Adaptation/_Tests/Extract/Production/v2.58.0/MET08RESIHGCV.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										200
									
								
								Adaptation/_Tests/Extract/Production/v2.58.0/MET08RESIHGCV.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,200 @@ | ||||
| #if v2_58_0 | ||||
| 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_58_0; | ||||
|  | ||||
| [TestClass] | ||||
| public class MET08RESIHGCV | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     private static CreateSelfDescription.Production.v2_58_0.MET08RESIHGCV _MET08RESIHGCV; | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         CreateSelfDescription.Production.v2_58_0.MET08RESIHGCV.ClassInitialize(testContext); | ||||
|         _MET08RESIHGCV = CreateSelfDescription.Production.v2_58_0.MET08RESIHGCV.EAFLoggingUnitTesting; | ||||
|     } | ||||
|  | ||||
|     private static void NonThrowTryCatch() | ||||
|     { | ||||
|         try | ||||
|         { throw new Exception(); } | ||||
|         catch (Exception) { } | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__MET08RESIHGCV__MoveMatchingFiles() => _MET08RESIHGCV.Production__v2_58_0__MET08RESIHGCV__MoveMatchingFiles(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__MET08RESIHGCV__MoveMatchingFiles637955459372840332__Normal() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         bool validatePDSF = false; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_58_0__MET08RESIHGCV__MoveMatchingFiles(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__MET08RESIHGCV__OpenInsightMetrologyViewer() => _MET08RESIHGCV.Production__v2_58_0__MET08RESIHGCV__OpenInsightMetrologyViewer(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__MET08RESIHGCV__OpenInsightMetrologyViewer637961644453719245__Normal() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         bool validatePDSF = false; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_58_0__MET08RESIHGCV__OpenInsightMetrologyViewer(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__MET08RESIHGCV__IQSSi() => _MET08RESIHGCV.Production__v2_58_0__MET08RESIHGCV__IQSSi(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__MET08RESIHGCV__OpenInsight() => _MET08RESIHGCV.Production__v2_58_0__MET08RESIHGCV__OpenInsight(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__MET08RESIHGCV__OpenInsight638054470203066399__IqsSql() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_58_0__MET08RESIHGCV__OpenInsight(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.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_58_0__MET08RESIHGCV__OpenInsight638116020180910181__IqsSql() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_58_0__MET08RESIHGCV__OpenInsight(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.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_58_0__MET08RESIHGCV__OpenInsightMetrologyViewerAttachments() => _MET08RESIHGCV.Production__v2_58_0__MET08RESIHGCV__OpenInsightMetrologyViewerAttachments(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__MET08RESIHGCV__OpenInsightMetrologyViewerAttachments638116020180910181__Viewer() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_58_0__MET08RESIHGCV__OpenInsightMetrologyViewerAttachments(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.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_58_0__MET08RESIHGCV__APC() => _MET08RESIHGCV.Production__v2_58_0__MET08RESIHGCV__APC(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__MET08RESIHGCV__SPaCe() => _MET08RESIHGCV.Production__v2_58_0__MET08RESIHGCV__SPaCe(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__MET08RESIHGCV__Processed() => _MET08RESIHGCV.Production__v2_58_0__MET08RESIHGCV__Processed(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__MET08RESIHGCV__Archive() => _MET08RESIHGCV.Production__v2_58_0__MET08RESIHGCV__Archive(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__MET08RESIHGCV__Dummy() => _MET08RESIHGCV.Production__v2_58_0__MET08RESIHGCV__Dummy(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__MET08RESIHGCV__InterceptIQS() => _MET08RESIHGCV.Production__v2_58_0__MET08RESIHGCV__InterceptIQS(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_58_0__MET08RESIHGCV__InterceptIQS638507610398652181__First() | ||||
|     { | ||||
|         string check = "HgCV_Unload_Res_9Points*.txt"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_58_0__MET08RESIHGCV__InterceptIQS(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
							
								
								
									
										59
									
								
								Adaptation/_Tests/Extract/Production/v2.59.0/HGCV1.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								Adaptation/_Tests/Extract/Production/v2.59.0/HGCV1.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,59 @@ | ||||
| #if v2_59_0 | ||||
| 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 HGCV1 | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     private static CreateSelfDescription.Production.v2_59_0.HGCV1 _HGCV1; | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         CreateSelfDescription.Production.v2_59_0.HGCV1.ClassInitialize(testContext); | ||||
|         _HGCV1 = CreateSelfDescription.Production.v2_59_0.HGCV1.EAFLoggingUnitTesting; | ||||
|     } | ||||
|  | ||||
|     private static void NonThrowTryCatch() | ||||
|     { | ||||
|         try | ||||
|         { throw new Exception(); } | ||||
|         catch (Exception) { } | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_59_0__HGCV1__pcl() => _HGCV1.Production__v2_59_0__HGCV1__pcl(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_59_0__HGCV1__pcl637955429602879992__Normal() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         bool validatePDSF = false; | ||||
|         _HGCV1.Production__v2_59_0__HGCV1__pcl(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV1.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV1.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
							
								
								
									
										59
									
								
								Adaptation/_Tests/Extract/Production/v2.59.0/HGCV2.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								Adaptation/_Tests/Extract/Production/v2.59.0/HGCV2.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,59 @@ | ||||
| #if v2_59_0 | ||||
| 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 HGCV2 | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     private static CreateSelfDescription.Production.v2_59_0.HGCV2 _HGCV2; | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         CreateSelfDescription.Production.v2_59_0.HGCV2.ClassInitialize(testContext); | ||||
|         _HGCV2 = CreateSelfDescription.Production.v2_59_0.HGCV2.EAFLoggingUnitTesting; | ||||
|     } | ||||
|  | ||||
|     private static void NonThrowTryCatch() | ||||
|     { | ||||
|         try | ||||
|         { throw new Exception(); } | ||||
|         catch (Exception) { } | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_59_0__HGCV2__pcl() => _HGCV2.Production__v2_59_0__HGCV2__pcl(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_59_0__HGCV2__pcl637955471606299897__Normal() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         bool validatePDSF = false; | ||||
|         _HGCV2.Production__v2_59_0__HGCV2__pcl(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV2.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV2.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
							
								
								
									
										111
									
								
								Adaptation/_Tests/Extract/Production/v2.59.0/HGCV3.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										111
									
								
								Adaptation/_Tests/Extract/Production/v2.59.0/HGCV3.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,111 @@ | ||||
| #if v2_59_0 | ||||
| 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 HGCV3 | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     private static CreateSelfDescription.Production.v2_59_0.HGCV3 _HGCV3; | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         CreateSelfDescription.Production.v2_59_0.HGCV3.ClassInitialize(testContext); | ||||
|         _HGCV3 = CreateSelfDescription.Production.v2_59_0.HGCV3.EAFLoggingUnitTesting; | ||||
|     } | ||||
|  | ||||
|     private static void NonThrowTryCatch() | ||||
|     { | ||||
|         try | ||||
|         { throw new Exception(); } | ||||
|         catch (Exception) { } | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_59_0__HGCV3__pcl() => _HGCV3.Production__v2_59_0__HGCV3__pcl(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     [ExpectedException(typeof(AssertFailedException))] | ||||
|     public void Production__v2_59_0__HGCV3__pcl637812984345592512__MinFileLength() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         bool validatePDSF = false; | ||||
|         _HGCV3.Production__v2_59_0__HGCV3__pcl(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV3.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV3.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_59_0__HGCV3__pcl637816384579205568__Normal() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         bool validatePDSF = false; | ||||
|         _HGCV3.Production__v2_59_0__HGCV3__pcl(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV3.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV3.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_59_0__HGCV3__pcl637955459372840332__Normal() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         bool validatePDSF = false; | ||||
|         _HGCV3.Production__v2_59_0__HGCV3__pcl(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV3.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV3.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_59_0__HGCV3__pcl638416903464189143__PopulateCalculated() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         bool validatePDSF = false; | ||||
|         _HGCV3.Production__v2_59_0__HGCV3__pcl(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV3.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV3.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
							
								
								
									
										200
									
								
								Adaptation/_Tests/Extract/Production/v2.59.0/MET08RESIHGCV.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										200
									
								
								Adaptation/_Tests/Extract/Production/v2.59.0/MET08RESIHGCV.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,200 @@ | ||||
| #if v2_59_0 | ||||
| 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 MET08RESIHGCV | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     private static CreateSelfDescription.Production.v2_59_0.MET08RESIHGCV _MET08RESIHGCV; | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         CreateSelfDescription.Production.v2_59_0.MET08RESIHGCV.ClassInitialize(testContext); | ||||
|         _MET08RESIHGCV = CreateSelfDescription.Production.v2_59_0.MET08RESIHGCV.EAFLoggingUnitTesting; | ||||
|     } | ||||
|  | ||||
|     private static void NonThrowTryCatch() | ||||
|     { | ||||
|         try | ||||
|         { throw new Exception(); } | ||||
|         catch (Exception) { } | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_59_0__MET08RESIHGCV__MoveMatchingFiles() => _MET08RESIHGCV.Production__v2_59_0__MET08RESIHGCV__MoveMatchingFiles(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_59_0__MET08RESIHGCV__MoveMatchingFiles637955459372840332__Normal() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         bool validatePDSF = false; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_59_0__MET08RESIHGCV__MoveMatchingFiles(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_59_0__MET08RESIHGCV__OpenInsightMetrologyViewer() => _MET08RESIHGCV.Production__v2_59_0__MET08RESIHGCV__OpenInsightMetrologyViewer(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_59_0__MET08RESIHGCV__OpenInsightMetrologyViewer637961644453719245__Normal() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         bool validatePDSF = false; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_59_0__MET08RESIHGCV__OpenInsightMetrologyViewer(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_59_0__MET08RESIHGCV__IQSSi() => _MET08RESIHGCV.Production__v2_59_0__MET08RESIHGCV__IQSSi(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_59_0__MET08RESIHGCV__OpenInsight() => _MET08RESIHGCV.Production__v2_59_0__MET08RESIHGCV__OpenInsight(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_59_0__MET08RESIHGCV__OpenInsight638054470203066399__IqsSql() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_59_0__MET08RESIHGCV__OpenInsight(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.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__MET08RESIHGCV__OpenInsight638116020180910181__IqsSql() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_59_0__MET08RESIHGCV__OpenInsight(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.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__MET08RESIHGCV__OpenInsightMetrologyViewerAttachments() => _MET08RESIHGCV.Production__v2_59_0__MET08RESIHGCV__OpenInsightMetrologyViewerAttachments(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_59_0__MET08RESIHGCV__OpenInsightMetrologyViewerAttachments638116020180910181__Viewer() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_59_0__MET08RESIHGCV__OpenInsightMetrologyViewerAttachments(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.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__MET08RESIHGCV__APC() => _MET08RESIHGCV.Production__v2_59_0__MET08RESIHGCV__APC(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_59_0__MET08RESIHGCV__SPaCe() => _MET08RESIHGCV.Production__v2_59_0__MET08RESIHGCV__SPaCe(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_59_0__MET08RESIHGCV__Processed() => _MET08RESIHGCV.Production__v2_59_0__MET08RESIHGCV__Processed(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_59_0__MET08RESIHGCV__Archive() => _MET08RESIHGCV.Production__v2_59_0__MET08RESIHGCV__Archive(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_59_0__MET08RESIHGCV__Dummy() => _MET08RESIHGCV.Production__v2_59_0__MET08RESIHGCV__Dummy(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_59_0__MET08RESIHGCV__InterceptIQS() => _MET08RESIHGCV.Production__v2_59_0__MET08RESIHGCV__InterceptIQS(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_59_0__MET08RESIHGCV__InterceptIQS638507610398652181__First() | ||||
|     { | ||||
|         string check = "HgCV_Unload_Res_9Points*.txt"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_59_0__MET08RESIHGCV__InterceptIQS(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
							
								
								
									
										59
									
								
								Adaptation/_Tests/Extract/Production/v2.60.0/HGCV1.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								Adaptation/_Tests/Extract/Production/v2.60.0/HGCV1.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,59 @@ | ||||
| #if v2_60_0 | ||||
| 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_60_0; | ||||
|  | ||||
| [TestClass] | ||||
| public class HGCV1 | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     private static CreateSelfDescription.Production.v2_60_0.HGCV1 _HGCV1; | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         CreateSelfDescription.Production.v2_60_0.HGCV1.ClassInitialize(testContext); | ||||
|         _HGCV1 = CreateSelfDescription.Production.v2_60_0.HGCV1.EAFLoggingUnitTesting; | ||||
|     } | ||||
|  | ||||
|     private static void NonThrowTryCatch() | ||||
|     { | ||||
|         try | ||||
|         { throw new Exception(); } | ||||
|         catch (Exception) { } | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__HGCV1__pcl() => _HGCV1.Production__v2_60_0__HGCV1__pcl(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__HGCV1__pcl637955429602879992__Normal() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         bool validatePDSF = false; | ||||
|         _HGCV1.Production__v2_60_0__HGCV1__pcl(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV1.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV1.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
							
								
								
									
										74
									
								
								Adaptation/_Tests/Extract/Production/v2.60.0/HGCV2.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								Adaptation/_Tests/Extract/Production/v2.60.0/HGCV2.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,74 @@ | ||||
| #if v2_60_0 | ||||
| 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_60_0; | ||||
|  | ||||
| [TestClass] | ||||
| public class HGCV2 | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     private static CreateSelfDescription.Production.v2_60_0.HGCV2 _HGCV2; | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         CreateSelfDescription.Production.v2_60_0.HGCV2.ClassInitialize(testContext); | ||||
|         _HGCV2 = CreateSelfDescription.Production.v2_60_0.HGCV2.EAFLoggingUnitTesting; | ||||
|     } | ||||
|  | ||||
|     private static void NonThrowTryCatch() | ||||
|     { | ||||
|         try | ||||
|         { throw new Exception(); } | ||||
|         catch (Exception) { } | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__HGCV2__pcl() => _HGCV2.Production__v2_60_0__HGCV2__pcl(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__HGCV2__pcl637955471606299897__Normal() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         bool validatePDSF = false; | ||||
|         _HGCV2.Production__v2_60_0__HGCV2__pcl(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV2.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV2.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
|     [Ignore] | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__HGCV2__pdsf__Normal() | ||||
|     { | ||||
|         bool validatePDSF = false; | ||||
|         string check = "*EQP_*.pdsf"; | ||||
|         _HGCV2.Production__v2_60_0__HGCV2__pdsf(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV2.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV2.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
							
								
								
									
										111
									
								
								Adaptation/_Tests/Extract/Production/v2.60.0/HGCV3.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										111
									
								
								Adaptation/_Tests/Extract/Production/v2.60.0/HGCV3.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,111 @@ | ||||
| #if v2_60_0 | ||||
| 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_60_0; | ||||
|  | ||||
| [TestClass] | ||||
| public class HGCV3 | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     private static CreateSelfDescription.Production.v2_60_0.HGCV3 _HGCV3; | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         CreateSelfDescription.Production.v2_60_0.HGCV3.ClassInitialize(testContext); | ||||
|         _HGCV3 = CreateSelfDescription.Production.v2_60_0.HGCV3.EAFLoggingUnitTesting; | ||||
|     } | ||||
|  | ||||
|     private static void NonThrowTryCatch() | ||||
|     { | ||||
|         try | ||||
|         { throw new Exception(); } | ||||
|         catch (Exception) { } | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__HGCV3__pcl() => _HGCV3.Production__v2_60_0__HGCV3__pcl(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     [ExpectedException(typeof(AssertFailedException))] | ||||
|     public void Production__v2_60_0__HGCV3__pcl637812984345592512__MinFileLength() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         bool validatePDSF = false; | ||||
|         _HGCV3.Production__v2_60_0__HGCV3__pcl(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV3.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV3.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__HGCV3__pcl637816384579205568__Normal() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         bool validatePDSF = false; | ||||
|         _HGCV3.Production__v2_60_0__HGCV3__pcl(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV3.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV3.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__HGCV3__pcl637955459372840332__Normal() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         bool validatePDSF = false; | ||||
|         _HGCV3.Production__v2_60_0__HGCV3__pcl(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV3.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV3.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__HGCV3__pcl638416903464189143__PopulateCalculated() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         bool validatePDSF = false; | ||||
|         _HGCV3.Production__v2_60_0__HGCV3__pcl(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV3.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV3.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
							
								
								
									
										216
									
								
								Adaptation/_Tests/Extract/Production/v2.60.0/MET08RESIHGCV.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										216
									
								
								Adaptation/_Tests/Extract/Production/v2.60.0/MET08RESIHGCV.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,216 @@ | ||||
| #if v2_60_0 | ||||
| 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_60_0; | ||||
|  | ||||
| [TestClass] | ||||
| public class MET08RESIHGCV | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     private static CreateSelfDescription.Production.v2_60_0.MET08RESIHGCV _MET08RESIHGCV; | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         CreateSelfDescription.Production.v2_60_0.MET08RESIHGCV.ClassInitialize(testContext); | ||||
|         _MET08RESIHGCV = CreateSelfDescription.Production.v2_60_0.MET08RESIHGCV.EAFLoggingUnitTesting; | ||||
|     } | ||||
|  | ||||
|     private static void NonThrowTryCatch() | ||||
|     { | ||||
|         try | ||||
|         { throw new Exception(); } | ||||
|         catch (Exception) { } | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__MET08RESIHGCV__MoveMatchingFiles() => _MET08RESIHGCV.Production__v2_60_0__MET08RESIHGCV__MoveMatchingFiles(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__MET08RESIHGCV__MoveMatchingFiles637955459372840332__Normal() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         bool validatePDSF = false; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_60_0__MET08RESIHGCV__MoveMatchingFiles(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__MET08RESIHGCV__MoveMatchingFiles638899177571912731__Columns() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_60_0__MET08RESIHGCV__MoveMatchingFiles(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.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_60_0__MET08RESIHGCV__OpenInsightMetrologyViewer() => _MET08RESIHGCV.Production__v2_60_0__MET08RESIHGCV__OpenInsightMetrologyViewer(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__MET08RESIHGCV__OpenInsightMetrologyViewer637961644453719245__Normal() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         bool validatePDSF = false; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_60_0__MET08RESIHGCV__OpenInsightMetrologyViewer(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__MET08RESIHGCV__IQSSi() => _MET08RESIHGCV.Production__v2_60_0__MET08RESIHGCV__IQSSi(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__MET08RESIHGCV__OpenInsight() => _MET08RESIHGCV.Production__v2_60_0__MET08RESIHGCV__OpenInsight(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__MET08RESIHGCV__OpenInsight638054470203066399__IqsSql() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_60_0__MET08RESIHGCV__OpenInsight(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.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_60_0__MET08RESIHGCV__OpenInsight638116020180910181__IqsSql() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_60_0__MET08RESIHGCV__OpenInsight(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.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_60_0__MET08RESIHGCV__OpenInsightMetrologyViewerAttachments() => _MET08RESIHGCV.Production__v2_60_0__MET08RESIHGCV__OpenInsightMetrologyViewerAttachments(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__MET08RESIHGCV__OpenInsightMetrologyViewerAttachments638116020180910181__Viewer() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_60_0__MET08RESIHGCV__OpenInsightMetrologyViewerAttachments(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.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_60_0__MET08RESIHGCV__APC() => _MET08RESIHGCV.Production__v2_60_0__MET08RESIHGCV__APC(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__MET08RESIHGCV__SPaCe() => _MET08RESIHGCV.Production__v2_60_0__MET08RESIHGCV__SPaCe(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__MET08RESIHGCV__Processed() => _MET08RESIHGCV.Production__v2_60_0__MET08RESIHGCV__Processed(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__MET08RESIHGCV__Archive() => _MET08RESIHGCV.Production__v2_60_0__MET08RESIHGCV__Archive(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__MET08RESIHGCV__Dummy() => _MET08RESIHGCV.Production__v2_60_0__MET08RESIHGCV__Dummy(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__MET08RESIHGCV__InterceptIQS() => _MET08RESIHGCV.Production__v2_60_0__MET08RESIHGCV__InterceptIQS(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_60_0__MET08RESIHGCV__InterceptIQS638507610398652181__First() | ||||
|     { | ||||
|         string check = "HgCV_Unload_Res_9Points*.txt"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_60_0__MET08RESIHGCV__InterceptIQS(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
							
								
								
									
										59
									
								
								Adaptation/_Tests/Extract/Production/v2.61.1/HGCV1.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								Adaptation/_Tests/Extract/Production/v2.61.1/HGCV1.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,59 @@ | ||||
| #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_61_1; | ||||
|  | ||||
| [TestClass] | ||||
| public class HGCV1 | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     private static CreateSelfDescription.Production.v2_61_1.HGCV1 _HGCV1; | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         CreateSelfDescription.Production.v2_61_1.HGCV1.ClassInitialize(testContext); | ||||
|         _HGCV1 = CreateSelfDescription.Production.v2_61_1.HGCV1.EAFLoggingUnitTesting; | ||||
|     } | ||||
|  | ||||
|     private static void NonThrowTryCatch() | ||||
|     { | ||||
|         try | ||||
|         { throw new Exception(); } | ||||
|         catch (Exception) { } | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__HGCV1__pcl() => _HGCV1.Production__v2_61_1__HGCV1__pcl(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__HGCV1__pcl637955429602879992__Normal() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         bool validatePDSF = false; | ||||
|         _HGCV1.Production__v2_61_1__HGCV1__pcl(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV1.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV1.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
							
								
								
									
										74
									
								
								Adaptation/_Tests/Extract/Production/v2.61.1/HGCV2.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								Adaptation/_Tests/Extract/Production/v2.61.1/HGCV2.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,74 @@ | ||||
| #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_61_1; | ||||
|  | ||||
| [TestClass] | ||||
| public class HGCV2 | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     private static CreateSelfDescription.Production.v2_61_1.HGCV2 _HGCV2; | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         CreateSelfDescription.Production.v2_61_1.HGCV2.ClassInitialize(testContext); | ||||
|         _HGCV2 = CreateSelfDescription.Production.v2_61_1.HGCV2.EAFLoggingUnitTesting; | ||||
|     } | ||||
|  | ||||
|     private static void NonThrowTryCatch() | ||||
|     { | ||||
|         try | ||||
|         { throw new Exception(); } | ||||
|         catch (Exception) { } | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__HGCV2__pcl() => _HGCV2.Production__v2_61_1__HGCV2__pcl(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__HGCV2__pcl637955471606299897__Normal() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         bool validatePDSF = false; | ||||
|         _HGCV2.Production__v2_61_1__HGCV2__pcl(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV2.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV2.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
|     [Ignore] | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__HGCV2__pdsf__Normal() | ||||
|     { | ||||
|         bool validatePDSF = false; | ||||
|         string check = "*EQP_*.pdsf"; | ||||
|         _HGCV2.Production__v2_61_1__HGCV2__pdsf(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV2.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV2.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
							
								
								
									
										111
									
								
								Adaptation/_Tests/Extract/Production/v2.61.1/HGCV3.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										111
									
								
								Adaptation/_Tests/Extract/Production/v2.61.1/HGCV3.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,111 @@ | ||||
| #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_61_1; | ||||
|  | ||||
| [TestClass] | ||||
| public class HGCV3 | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     private static CreateSelfDescription.Production.v2_61_1.HGCV3 _HGCV3; | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         CreateSelfDescription.Production.v2_61_1.HGCV3.ClassInitialize(testContext); | ||||
|         _HGCV3 = CreateSelfDescription.Production.v2_61_1.HGCV3.EAFLoggingUnitTesting; | ||||
|     } | ||||
|  | ||||
|     private static void NonThrowTryCatch() | ||||
|     { | ||||
|         try | ||||
|         { throw new Exception(); } | ||||
|         catch (Exception) { } | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__HGCV3__pcl() => _HGCV3.Production__v2_61_1__HGCV3__pcl(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     [ExpectedException(typeof(AssertFailedException))] | ||||
|     public void Production__v2_61_1__HGCV3__pcl637812984345592512__MinFileLength() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         bool validatePDSF = false; | ||||
|         _HGCV3.Production__v2_61_1__HGCV3__pcl(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV3.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV3.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__HGCV3__pcl637816384579205568__Normal() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         bool validatePDSF = false; | ||||
|         _HGCV3.Production__v2_61_1__HGCV3__pcl(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV3.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV3.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__HGCV3__pcl637955459372840332__Normal() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         bool validatePDSF = false; | ||||
|         _HGCV3.Production__v2_61_1__HGCV3__pcl(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV3.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV3.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__HGCV3__pcl638416903464189143__PopulateCalculated() | ||||
|     { | ||||
|         string check = "*.pcl"; | ||||
|         bool validatePDSF = false; | ||||
|         _HGCV3.Production__v2_61_1__HGCV3__pcl(); | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         string[] variables = _HGCV3.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _HGCV3.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
							
								
								
									
										212
									
								
								Adaptation/_Tests/Extract/Production/v2.61.1/MET08RESIHGCV.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										212
									
								
								Adaptation/_Tests/Extract/Production/v2.61.1/MET08RESIHGCV.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,212 @@ | ||||
| #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_61_1; | ||||
|  | ||||
| [TestClass] | ||||
| public class MET08RESIHGCV | ||||
| { | ||||
|  | ||||
| #pragma warning disable CA2254 | ||||
| #pragma warning disable IDE0060 | ||||
|  | ||||
|     private static CreateSelfDescription.Production.v2_61_1.MET08RESIHGCV _MET08RESIHGCV; | ||||
|  | ||||
|     [ClassInitialize] | ||||
|     public static void ClassInitialize(TestContext testContext) | ||||
|     { | ||||
|         CreateSelfDescription.Production.v2_61_1.MET08RESIHGCV.ClassInitialize(testContext); | ||||
|         _MET08RESIHGCV = CreateSelfDescription.Production.v2_61_1.MET08RESIHGCV.EAFLoggingUnitTesting; | ||||
|     } | ||||
|  | ||||
|     private static void NonThrowTryCatch() | ||||
|     { | ||||
|         try | ||||
|         { throw new Exception(); } | ||||
|         catch (Exception) { } | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__MET08RESIHGCV__MoveMatchingFiles() => _MET08RESIHGCV.Production__v2_61_1__MET08RESIHGCV__MoveMatchingFiles(); | ||||
|  | ||||
|     [Ignore] | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__MET08RESIHGCV__MoveMatchingFiles637955459372840332__Normal() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         bool validatePDSF = false; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_61_1__MET08RESIHGCV__MoveMatchingFiles(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
|     [Ignore] | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__MET08RESIHGCV__MoveMatchingFiles638899177571912731__Columns() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_61_1__MET08RESIHGCV__MoveMatchingFiles(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.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_61_1__MET08RESIHGCV__OpenInsightMetrologyViewer() => _MET08RESIHGCV.Production__v2_61_1__MET08RESIHGCV__OpenInsightMetrologyViewer(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__MET08RESIHGCV__OpenInsightMetrologyViewer637961644453719245__Normal() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         bool validatePDSF = false; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_61_1__MET08RESIHGCV__OpenInsightMetrologyViewer(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__MET08RESIHGCV__IQSSi() => _MET08RESIHGCV.Production__v2_61_1__MET08RESIHGCV__IQSSi(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__MET08RESIHGCV__OpenInsight() => _MET08RESIHGCV.Production__v2_61_1__MET08RESIHGCV__OpenInsight(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__MET08RESIHGCV__OpenInsight638054470203066399__IqsSql() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_61_1__MET08RESIHGCV__OpenInsight(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.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_61_1__MET08RESIHGCV__OpenInsight638116020180910181__IqsSql() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_61_1__MET08RESIHGCV__OpenInsight(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.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_61_1__MET08RESIHGCV__OpenInsightMetrologyViewerAttachments() => _MET08RESIHGCV.Production__v2_61_1__MET08RESIHGCV__OpenInsightMetrologyViewerAttachments(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__MET08RESIHGCV__OpenInsightMetrologyViewerAttachments638116020180910181__Viewer() | ||||
|     { | ||||
|         string check = "*.pdsf"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_61_1__MET08RESIHGCV__OpenInsightMetrologyViewerAttachments(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.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_61_1__MET08RESIHGCV__APC() => _MET08RESIHGCV.Production__v2_61_1__MET08RESIHGCV__APC(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__MET08RESIHGCV__SPaCe() => _MET08RESIHGCV.Production__v2_61_1__MET08RESIHGCV__SPaCe(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__MET08RESIHGCV__Processed() => _MET08RESIHGCV.Production__v2_61_1__MET08RESIHGCV__Processed(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__MET08RESIHGCV__Archive() => _MET08RESIHGCV.Production__v2_61_1__MET08RESIHGCV__Archive(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__MET08RESIHGCV__Dummy() => _MET08RESIHGCV.Production__v2_61_1__MET08RESIHGCV__Dummy(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__MET08RESIHGCV__InterceptIQS() => _MET08RESIHGCV.Production__v2_61_1__MET08RESIHGCV__InterceptIQS(); | ||||
|  | ||||
| #if DEBUG | ||||
|     [Ignore] | ||||
| #endif | ||||
|     [TestMethod] | ||||
|     public void Production__v2_61_1__MET08RESIHGCV__InterceptIQS638507610398652181__First() | ||||
|     { | ||||
|         string check = "HgCV_Unload_Res_9Points*.txt"; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         _MET08RESIHGCV.Production__v2_61_1__MET08RESIHGCV__InterceptIQS(); | ||||
|         string[] variables = _MET08RESIHGCV.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false); | ||||
|         IFileRead fileRead = _MET08RESIHGCV.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); | ||||
|         Logistics logistics = new(fileRead); | ||||
|         _ = AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
| } | ||||
| #endif | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -51,7 +51,7 @@ public class MET08RESIHGCV : LoggingUnitTesting, IDisposable | ||||
|     public void TestDateTime() | ||||
|     { | ||||
|         DateTime dateTime = DateTime.Now; | ||||
|         Assert.IsTrue(dateTime.ToString("M/d/yyyy h:mm:ss tt") == dateTime.ToString()); | ||||
|         Assert.AreEqual(dateTime.ToString(), dateTime.ToString("M/d/yyyy h:mm:ss tt")); | ||||
|     } | ||||
|  | ||||
| #if DEBUG | ||||
| @ -64,7 +64,7 @@ public class MET08RESIHGCV : LoggingUnitTesting, IDisposable | ||||
|         StringBuilder results = new(); | ||||
|         (string cellInstanceName, string cellInstanceVersionName)[] collection = new (string, string)[] | ||||
|         { | ||||
|             new("MET08RESIHGCV", "v2.57.0"), | ||||
|             new("MET08RESIHGCV", "v2.61.1"), | ||||
|         }; | ||||
|         string production = "http://messa08ec.infineon.com:9003/CellInstanceServiceV2"; | ||||
|         Shared.PasteSpecialXml.EAF.XML.API.CellInstance.CellInstanceVersion cellInstanceVersion; | ||||
| @ -109,7 +109,7 @@ public class MET08RESIHGCV : LoggingUnitTesting, IDisposable | ||||
|         float b = 0.3864f; | ||||
|         float c = 100; | ||||
|         float d = -9.84601f; | ||||
|         Assert.IsTrue((b - a) / a * c == d); | ||||
|         Assert.AreEqual(d, (b - a) / a * c); | ||||
|         NonThrowTryCatch(); | ||||
|     } | ||||
|  | ||||
|  | ||||
							
								
								
									
										138
									
								
								Adaptation/_Tests/Static/hgcv.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										138
									
								
								Adaptation/_Tests/Static/hgcv.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,138 @@ | ||||
| "use strict"; | ||||
|  | ||||
| function getCollectionParseFloat(collection) { | ||||
|     let result = []; | ||||
|     let value; | ||||
|     for (let i = 0; i < collection.length; i++) { | ||||
|         value = parseFloat(collection[i]); | ||||
|         result.push(value); | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| function getSum(collection) { | ||||
|     let result = 0; | ||||
|     if (!collection || collection.length === 0) { | ||||
|         result = 0; | ||||
|     } | ||||
|     else { | ||||
|         for (let i = 0; i < collection.length; i++) { | ||||
|             result += collection[i]; | ||||
|         } | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| function getAverage(collection) { | ||||
|     let result = null; | ||||
|     if (collection == null || collection.length === 0) | ||||
|         result = 0; | ||||
|     else { | ||||
|         let sum = getSum(collection); | ||||
|         result = sum / collection.length; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| function getVariance(collection) { | ||||
|     let result = null; | ||||
|     if (collection == null || collection.length === 0) | ||||
|         result = null; | ||||
|     else { | ||||
|         let variance = 0; | ||||
|         let t = collection[0]; | ||||
|         for (let i = 1; i < collection.length; i++) { | ||||
|             t += collection[i]; | ||||
|             const diff = ((i + 1) * collection[i]) - t; | ||||
|             variance += diff * diff / ((i + 1.0) * i); | ||||
|         } | ||||
|         result = variance / (collection.length - 1); | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| function getNineEdgeMeanDelta(edge4mmRhoPoints, edge10mmRhoPoints) { | ||||
|     let result; | ||||
|     const nine4mmEdgeSum = getSum(edge4mmRhoPoints); | ||||
|     const nine10mmEdgeSum = getSum(edge10mmRhoPoints); | ||||
|     result = (nine4mmEdgeSum - nine10mmEdgeSum) / nine10mmEdgeSum * 100; | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| function getMax(collection) { | ||||
|     let result = collection[0]; | ||||
|     for (let i = 1; i < collection.length; i++) { | ||||
|         if (collection[i] > result) { | ||||
|             result = collection[i]; | ||||
|         } | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| function getMin(collection) { | ||||
|     let result = collection[0]; | ||||
|     for (let i = 1; i < collection.length; i++) { | ||||
|         if (collection[i] < result) { | ||||
|             result = collection[i]; | ||||
|         } | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| function getNineResRangePercent(criticalRhoPoints) { | ||||
|     let result; | ||||
|     const nineCriticalPointsAverage = getAverage(criticalRhoPoints); | ||||
|     // result = (Math.max(...criticalRhoPoints) - Math.min(...criticalRhoPoints)) / nineCriticalPointsAverage * 100; | ||||
|     // let max = criticalRhoPoints.reduce((a, b) => Math.max(a, b)); | ||||
|     // let min = criticalRhoPoints.reduce((a, b) => Math.min(a, b)); | ||||
|     // result = (max - min) / nineCriticalPointsAverage * 100; | ||||
|     // let max = criticalRhoPoints.sort((a, b) => b - a); | ||||
|     // let min = criticalRhoPoints.sort((a, b) => a - b); | ||||
|     // result = (max[0] - min[0]) / nineCriticalPointsAverage * 100; | ||||
|     let max = getMax(criticalRhoPoints); | ||||
|     let min = getMin(criticalRhoPoints); | ||||
|     result = (max - min) / nineCriticalPointsAverage * 100; | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| function getValue(edge10mmRhoPoints, index) { | ||||
|     let result = null; | ||||
|     if (index === 8) { | ||||
|         if (edge10mmRhoPoints != undefined && edge10mmRhoPoints.length > 1) { | ||||
|             let collection = edge10mmRhoPoints[0] === '|' ? edge10mmRhoPoints.substring(1).split('|') : edge10mmRhoPoints.split('|'); | ||||
|             let collectionParseFloat = getCollectionParseFloat(collection); | ||||
|             result = Math.round(getAverage(collectionParseFloat) * 10000000) / 10000000; | ||||
|         } | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| //                                            0     1     2     3     4     5     6     7     8 | ||||
| //                                            1     2     3     4     5     6     7     8     9 | ||||
| const allRhoAvg = getCollectionParseFloat('|2.648|3.076|2.877|2.747|2.821|2.765|2.669|2.814|2.876'.substring(1).split('|')); | ||||
| const edge4mmRhoPoints = getCollectionParseFloat('|2.877|2.747|2.669|2.814'.substring(1).split('|')); | ||||
| const edge10mmRhoPoints = getCollectionParseFloat('|3.076|2.821|2.765|2.876'.substring(1).split('|')); | ||||
| const criticalRhoPoints = getCollectionParseFloat('|2.648|3.076|2.821|2.765|2.876'.substring(1).split('|')); | ||||
|  | ||||
| //                                            0      1      2      3      4      5      6      7      8 | ||||
| //                                            1      2      3      4      5      6      7      8      9 | ||||
| const allPhase = getCollectionParseFloat('|88.874|88.999|89.085|89.029|89.018|89.007|89.049|89.024|89.007'.substring(1).split('|')); | ||||
| const criticalPhasePoints = getCollectionParseFloat('|88.874|88.999|89.018|89.007|89.007'.substring(1).split('|')); | ||||
|  | ||||
| const nineMean = getAverage(allRhoAvg); | ||||
| const nine4mmEdgeMean = getAverage(edge4mmRhoPoints); | ||||
| const nine10mmEdgeMean = getAverage(edge10mmRhoPoints); | ||||
| const nineCriticalPointsAverage = getAverage(criticalRhoPoints); | ||||
| const nineResRangePercent = getNineResRangePercent(criticalRhoPoints); | ||||
| const nineCriticalPointsStdDev = Math.sqrt(getVariance(criticalRhoPoints)); | ||||
| const nineCriticalPointsPhaseAngleAverage = getAverage(criticalPhasePoints); | ||||
| const nineEdgeMeanDelta = getNineEdgeMeanDelta(edge4mmRhoPoints, edge10mmRhoPoints); | ||||
| console.log(nineCriticalPointsStdDev); | ||||
|  | ||||
| // Sequence to date string | ||||
| // getValue(self, getContextData('1', 'cds.SEQUENCE', '')); | ||||
|  | ||||
| const index = 8; | ||||
| const gv_edge10mmRhoPoints = '|3.076|2.821|2.765|2.876'; | ||||
| const value = roundNumber(getValue(gv_edge10mmRhoPoints, index), 7); | ||||
| console.log("value: " + value); | ||||
| @ -1,4 +1,5 @@ | ||||
| using Adaptation._Tests.Shared; | ||||
| using Adaptation.FileHandlers.pcl; | ||||
| using Microsoft.Extensions.Logging; | ||||
| using Microsoft.VisualStudio.TestTools.UnitTesting; | ||||
| using System; | ||||
| @ -51,139 +52,137 @@ public class PCL : LoggingUnitTesting, IDisposable | ||||
|     public void TestDateTime() | ||||
|     { | ||||
|         DateTime dateTime = DateTime.Now; | ||||
|         Assert.IsTrue(dateTime.ToString("M/d/yyyy h:mm:ss tt") == dateTime.ToString()); | ||||
|         Assert.AreEqual(dateTime.ToString(), dateTime.ToString("M/d/yyyy h:mm:ss tt")); | ||||
|     } | ||||
|  | ||||
|     [TestMethod] | ||||
|     public void TestDescriptor() | ||||
|     { | ||||
|         FileHandlers.pcl.Descriptor descriptor; | ||||
|         Descriptor descriptor; | ||||
|         MethodBase methodBase = new StackFrame().GetMethod(); | ||||
|         LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); | ||||
|         descriptor = FileHandlers.pcl.ProcessData.GetDescriptor(string.Empty); | ||||
|         descriptor = ProcessData.GetDescriptor(string.Empty); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); | ||||
|         descriptor = FileHandlers.pcl.ProcessData.GetDescriptor("12-123456-1234"); | ||||
|         Assert.IsTrue(descriptor.Reactor is "12"); | ||||
|         Assert.IsTrue(descriptor.RDS is "123456"); | ||||
|         Assert.IsTrue(descriptor.PSN is "1234"); | ||||
|         descriptor = ProcessData.GetDescriptor("12-123456-1234"); | ||||
|         Assert.AreEqual("12", descriptor.Reactor); | ||||
|         Assert.AreEqual("123456", descriptor.RDS); | ||||
|         Assert.AreEqual("1234", descriptor.PSN); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); | ||||
|         descriptor = FileHandlers.pcl.ProcessData.GetDescriptor("123456"); | ||||
|         descriptor = ProcessData.GetDescriptor("123456"); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor)); | ||||
|         Assert.IsTrue(descriptor.RDS is "123456"); | ||||
|         Assert.AreEqual("123456", descriptor.RDS); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); | ||||
|         descriptor = FileHandlers.pcl.ProcessData.GetDescriptor("1T123456"); | ||||
|         descriptor = ProcessData.GetDescriptor("1T123456"); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor)); | ||||
|         Assert.IsTrue(descriptor.RDS is "123456"); | ||||
|         Assert.AreEqual("123456", descriptor.RDS); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); | ||||
|         descriptor = FileHandlers.pcl.ProcessData.GetDescriptor("MP"); | ||||
|         descriptor = ProcessData.GetDescriptor("MP"); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); | ||||
|         Assert.IsTrue(descriptor.Employee is "MP"); | ||||
|         Assert.AreEqual("MP", descriptor.Employee); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); | ||||
|         descriptor = FileHandlers.pcl.ProcessData.GetDescriptor("12-123456-1234.2-1"); | ||||
|         Assert.IsTrue(descriptor.Reactor is "12"); | ||||
|         Assert.IsTrue(descriptor.RDS is "123456"); | ||||
|         Assert.IsTrue(descriptor.PSN is "1234"); | ||||
|         Assert.IsTrue(descriptor.Layer is "2"); | ||||
|         Assert.IsTrue(descriptor.Zone is "1"); | ||||
|         descriptor = ProcessData.GetDescriptor("12-123456-1234.2-1"); | ||||
|         Assert.AreEqual("12", descriptor.Reactor); | ||||
|         Assert.AreEqual("123456", descriptor.RDS); | ||||
|         Assert.AreEqual("1234", descriptor.PSN); | ||||
|         Assert.AreEqual("2", descriptor.Layer); | ||||
|         Assert.AreEqual("1", descriptor.Zone); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); | ||||
|         descriptor = FileHandlers.pcl.ProcessData.GetDescriptor("12-123456-1234.02-1"); | ||||
|         Assert.IsTrue(descriptor.Reactor is "12"); | ||||
|         Assert.IsTrue(descriptor.RDS is "123456"); | ||||
|         Assert.IsTrue(descriptor.PSN is "1234"); | ||||
|         Assert.IsTrue(descriptor.Layer is "2"); | ||||
|         Assert.IsTrue(descriptor.Zone is "1"); | ||||
|         descriptor = ProcessData.GetDescriptor("12-123456-1234.02-1"); | ||||
|         Assert.AreEqual("12", descriptor.Reactor); | ||||
|         Assert.AreEqual("123456", descriptor.RDS); | ||||
|         Assert.AreEqual("1234", descriptor.PSN); | ||||
|         Assert.AreEqual("2", descriptor.Layer); | ||||
|         Assert.AreEqual("1", descriptor.Zone); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); | ||||
|         descriptor = FileHandlers.pcl.ProcessData.GetDescriptor("20"); | ||||
|         Assert.IsTrue(descriptor.Reactor is "20"); | ||||
|         descriptor = ProcessData.GetDescriptor("20"); | ||||
|         Assert.AreEqual("20", descriptor.Reactor); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); | ||||
|         descriptor = FileHandlers.pcl.ProcessData.GetDescriptor("20.2"); | ||||
|         Assert.IsTrue(descriptor.Reactor is "20"); | ||||
|         descriptor = ProcessData.GetDescriptor("20.2"); | ||||
|         Assert.AreEqual("20", descriptor.Reactor); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); | ||||
|         Assert.IsTrue(descriptor.Layer is "2"); | ||||
|         Assert.AreEqual("2", descriptor.Layer); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); | ||||
|         descriptor = FileHandlers.pcl.ProcessData.GetDescriptor("20.2.1"); | ||||
|         Assert.IsTrue(descriptor.Layer is "2"); | ||||
|         descriptor = ProcessData.GetDescriptor("20.2.1"); | ||||
|         Assert.AreEqual("2", descriptor.Layer); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS)); | ||||
|         Assert.IsTrue(descriptor.Reactor is "20"); | ||||
|         Assert.IsTrue(descriptor.Zone is "1"); | ||||
|         Assert.AreEqual("20", descriptor.Reactor); | ||||
|         Assert.AreEqual("1", descriptor.Zone); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); | ||||
|         descriptor = FileHandlers.pcl.ProcessData.GetDescriptor("20.1.1"); | ||||
|         Assert.IsTrue(descriptor.Layer is "1"); | ||||
|         descriptor = ProcessData.GetDescriptor("20.1.1"); | ||||
|         Assert.AreEqual("1", descriptor.Layer); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS)); | ||||
|         Assert.IsTrue(descriptor.Reactor is "20"); | ||||
|         Assert.IsTrue(descriptor.Zone is "1"); | ||||
|         Assert.AreEqual("20", descriptor.Reactor); | ||||
|         Assert.AreEqual("1", descriptor.Zone); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); | ||||
|         descriptor = FileHandlers.pcl.ProcessData.GetDescriptor("P2-LOW-RR"); | ||||
|         descriptor = ProcessData.GetDescriptor("P2-LOW-RR"); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); | ||||
|         Assert.IsTrue(descriptor.PSN is "RR"); | ||||
|         Assert.AreEqual("RR", descriptor.PSN); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS)); | ||||
|         Assert.IsTrue(descriptor.Reactor is "P2"); | ||||
|         Assert.AreEqual("P2", descriptor.Reactor); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); | ||||
|         descriptor = FileHandlers.pcl.ProcessData.GetDescriptor("i171308.1.51"); | ||||
|         descriptor = ProcessData.GetDescriptor("i171308.1.51"); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); | ||||
|         Assert.IsTrue(descriptor.RDS is "i171308.1.51"); | ||||
|         Assert.AreEqual("i171308.1.51", descriptor.RDS); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); | ||||
|         descriptor = FileHandlers.pcl.ProcessData.GetDescriptor("o171308.1.51"); | ||||
|         descriptor = ProcessData.GetDescriptor("o171308.1.51"); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); | ||||
|         Assert.IsTrue(descriptor.RDS is "o171308.1.51"); | ||||
|         Assert.AreEqual("o171308.1.51", descriptor.RDS); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); | ||||
|         descriptor = FileHandlers.pcl.ProcessData.GetDescriptor("O171308.1.51"); | ||||
|         descriptor = ProcessData.GetDescriptor("O171308.1.51"); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); | ||||
|         Assert.IsTrue(descriptor.RDS is "O171308.1.51"); | ||||
|         Assert.AreEqual("O171308.1.51", descriptor.RDS); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); | ||||
|         descriptor = FileHandlers.pcl.ProcessData.GetDescriptor("171308.1.51"); | ||||
|         descriptor = ProcessData.GetDescriptor("171308.1.51"); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); | ||||
|         Assert.IsTrue(descriptor.RDS is "171308.1.51"); | ||||
|         Assert.AreEqual("171308.1.51", descriptor.RDS); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); | ||||
|         descriptor = FileHandlers.pcl.ProcessData.GetDescriptor("75-QP1414-SPLIT4"); | ||||
|         Assert.IsTrue(!string.IsNullOrEmpty(descriptor.Lot)); | ||||
|         descriptor = ProcessData.GetDescriptor("75-QP1414-SPLIT4"); | ||||
|         Assert.IsFalse(string.IsNullOrEmpty(descriptor.Lot)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); | ||||
|         Assert.IsTrue(descriptor.PSN is "SPLIT4"); | ||||
|         Assert.AreEqual("SPLIT4", descriptor.PSN); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS)); | ||||
|         Assert.IsTrue(descriptor.Reactor is "75"); | ||||
|         Assert.AreEqual("75", descriptor.Reactor); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); | ||||
|         descriptor = FileHandlers.pcl.ProcessData.GetDescriptor("B48"); | ||||
|         Assert.IsTrue(descriptor.Lot == "B48"); | ||||
|         descriptor = FileHandlers.pcl.ProcessData.GetDescriptor("B48"); | ||||
|         Assert.IsTrue(descriptor.Lot == "B48"); | ||||
|         descriptor = ProcessData.GetDescriptor("B48"); | ||||
|         Assert.AreEqual("B48", descriptor.Lot); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); | ||||
|         Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); | ||||
| @ -204,9 +203,9 @@ public class PCL : LoggingUnitTesting, IDisposable | ||||
|         StringBuilder results = new(); | ||||
|         (string cellInstanceName, string cellInstanceVersionName)[] collection = new (string, string)[] | ||||
|         { | ||||
|             new("HGCV1", "v2.57.0"), | ||||
|             new("HGCV2", "v2.57.0"), | ||||
|             new("HGCV3", "v2.57.0"), | ||||
|             new("HGCV1", "v2.61.1"), | ||||
|             new("HGCV2", "v2.61.1"), | ||||
|             new("HGCV3", "v2.61.1"), | ||||
|             new("HGCV1-EQPT", "v2.12.3"), | ||||
|             new("HGCV2-EQPT", "v2.12.3"), | ||||
|             new("HGCV3-EQPT", "v2.12.3"), | ||||
|  | ||||
							
								
								
									
										118
									
								
								Adaptation/_Tests/Static/recipes-and-patterns.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										118
									
								
								Adaptation/_Tests/Static/recipes-and-patterns.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,118 @@ | ||||
| // Recipe 1 = Matched | ||||
| // recipes-and-patterns.js under IndexOf | ||||
| // RecipesAndPatternsMatch | ||||
| // ($('dcp.HGCV1/csv/Index', 0) + 1) == $('dcp.HGCV1/csv/Count', 0) | ||||
| // getValue('HGCV', $('dcp.HGCV1/csv/Count', 0), $('dcp.HGCV1/csv/SetupFile', ''), $('dcp.HGCV1/csv/Pattern', ''), getContextData('2', 'cds.NULL_DATA', '')); | ||||
|  | ||||
| function getValue(tool, patternSize, recipe, pattern, json) { | ||||
|     let result; | ||||
|     if (tool == undefined || tool.length === 0 || patternSize == undefined || patternSize.length === 0 || recipe == undefined || recipe.length === 0 || pattern == undefined || pattern.length === 0 || json == undefined || json.length === 0) | ||||
|         result = 'A) Invalid input!'; | ||||
|     else { | ||||
|         let parsed; | ||||
|         try { | ||||
|             parsed = JSON.parse(json); | ||||
|         } catch (error) { | ||||
|             parsed = null; | ||||
|         } | ||||
|         if (parsed == null) | ||||
|             result = 'B) Invalid input!'; | ||||
|         else if (parsed.rds == undefined || parsed.rds.prodSpec == undefined || parsed.rds.prodSpec.recipesAndPatterns == undefined) | ||||
|             result = 'C) No Spec!'; | ||||
|         else { | ||||
|             let toolMatches = []; | ||||
|             for (let index = 0; index < parsed.rds.prodSpec.recipesAndPatterns.length; index++) { | ||||
|                 if (parsed.rds.prodSpec.recipesAndPatterns[index].tool === tool) { | ||||
|                     toolMatches.push(parsed.rds.prodSpec.recipesAndPatterns[index]); | ||||
|                 } | ||||
|             } | ||||
|             if (toolMatches == null || toolMatches.length === 0) | ||||
|                 result = 'Tool [' + tool + '] not found in OI API results!'; | ||||
|             else { | ||||
|                 let debug = ''; | ||||
|                 let matches = 0; | ||||
|                 for (let index = 0; index < toolMatches.length; index++) { | ||||
|                     debug += 'patternSize: ' + toolMatches[index].patternSize + | ||||
|                              '; recipe: ' + toolMatches[index].recipe + | ||||
|                              '; pattern: ' + toolMatches[index].pattern + ';~'; | ||||
|                     if (toolMatches[index].patternSize == patternSize && | ||||
|                         toolMatches[index].recipe.toLowerCase() == recipe.toLowerCase() && | ||||
|                         toolMatches[index].pattern.toLowerCase() == pattern.toLowerCase()) { | ||||
|                         matches++; | ||||
|                     } | ||||
|                 } | ||||
|                 if (matches > 0) | ||||
|                     result = '1'; | ||||
|                 else { | ||||
|                     result = 'Value not matched~Run~patternSize: ' + patternSize + '; recipe: ' + recipe + '; pattern: ' + pattern + ';~API~' + debug; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| getValue('HGCV', 9, '6IN4_10.SET', '6_9PLUS.PAT', '{"rds":{"prodSpec":{"recipesAndPatterns":[{"recipe":"6IN4_10.SET","pattern":"6_9PLUS.PAT","patternSize":9,"tool":"HGCV"}]}}}'); | ||||
|  | ||||
| let json; | ||||
| let tool; | ||||
| let recipe; | ||||
| let pattern; | ||||
| let patternSize; | ||||
|  | ||||
| tool = 'HGCV' | ||||
| patternSize = 9; | ||||
| recipe = '6IN4_10.SET'; | ||||
| pattern = '6_9PLUS.PAT'; | ||||
| json = '{"rds":{"prodSpec":{"recipesAndPatterns":[{"recipe":"6IN4_10.SET","pattern":"6_9PLUS.PAT","patternSize":9,"tool":"HGCV"}]}}}'; | ||||
| const testA = getValue(tool, patternSize, recipe, pattern, json); | ||||
| if (testA !== '1') | ||||
|     throw 'Test A failed: ' + testA; | ||||
| tool = null; | ||||
| const testB = getValue(tool, patternSize, recipe, pattern, json); | ||||
| if (testB !== 'A) Invalid input!') | ||||
|     throw 'Test L failed: ' + testB; | ||||
| tool = ''; | ||||
| const testC = getValue(tool, patternSize, recipe, pattern, json); | ||||
| if (testC !== 'A) Invalid input!') | ||||
|     throw 'Test M failed: ' + testC; | ||||
| patternSize = null; | ||||
| const testD = getValue(tool, patternSize, recipe, pattern, json); | ||||
| if (testD !== 'A) Invalid input!') | ||||
|     throw 'Test J failed: ' + testD; | ||||
| patternSize = ''; | ||||
| const testE = getValue(tool, patternSize, recipe, pattern, json); | ||||
| if (testE !== 'A) Invalid input!') | ||||
|     throw 'Test K failed: ' + testE; | ||||
| recipe = null; | ||||
| const testF = getValue(tool, patternSize, recipe, pattern, json); | ||||
| if (testF !== 'A) Invalid input!') | ||||
|     throw 'Test F failed: ' + testF; | ||||
| recipe = ''; | ||||
| const testG = getValue(tool, patternSize, recipe, pattern, json); | ||||
| if (testG !== 'A) Invalid input!') | ||||
|     throw 'Test G failed: ' + testG; | ||||
| pattern = null; | ||||
| const testH = getValue(tool, patternSize, recipe, pattern, json); | ||||
| if (testH !== 'A) Invalid input!') | ||||
|     throw 'Test H failed: ' + testH; | ||||
| pattern = ''; | ||||
| const testI = getValue(tool, patternSize, recipe, pattern, json); | ||||
| if (testI !== 'A) Invalid input!') | ||||
|     throw 'Test I failed: ' + testI; | ||||
| json = ''; | ||||
| const testK = getValue(tool, patternSize, recipe, pattern, json); | ||||
| if (testK !== 'A) Invalid input!') | ||||
|     throw 'Test B failed: ' + testK; | ||||
| json = 'invalid'; | ||||
| const testL = getValue(tool, patternSize, recipe, pattern, json); | ||||
| if (testL !== 'B) Invalid input!') | ||||
|     throw 'Test C failed: ' + testL; | ||||
| json = '{"rds":{}}'; | ||||
| const testM = getValue(tool, patternSize, recipe, pattern, json); | ||||
| if (testM !== 'C) No Spec!') | ||||
|     throw 'Test D failed: ' + testM; | ||||
| json = '{"rds":{"prodSpec":{"recipesAndPatterns":[]}}}'; | ||||
| const testN = getValue(tool, patternSize, recipe, pattern, json); | ||||
| if (testN !== 'Tool [HGCV] not found in OI API results!') | ||||
|     throw 'Test E failed: ' + testN; | ||||
| @ -37,7 +37,7 @@ public partial class FileRead : FileReaderHandler, ISMTP | ||||
|     private FilePathGenerator _FilePathGeneratorForTarget; | ||||
|     private readonly List<EquipmentParameter> _EquipmentParameters; | ||||
|     private static readonly Dictionary<string, List<long>> _DummyRuns; | ||||
|     private static readonly Dictionary<long, List<string>> _StaticRuns; | ||||
|     private static readonly Dictionary<long, List<Adaptation.Shared.Metrology.WS.Results>> _StaticRuns; | ||||
|  | ||||
|     static FileRead() | ||||
|     { | ||||
| @ -88,6 +88,8 @@ public partial class FileRead : FileReaderHandler, ISMTP | ||||
|         try | ||||
|         { | ||||
|             extractResults = _FileRead.GetExtractResult(reportFullPath, eventName); | ||||
|             if (extractResults.Item3.Length == 0 && !string.IsNullOrEmpty(extractResults.Item1) && !extractResults.Item1.Contains("LOGISTICS_1")) | ||||
|                 throw new Exception(extractResults.Item1); | ||||
|             TriggerEvents(extractResults); | ||||
|             _FileRead.Move(extractResults); | ||||
|             FilePathGeneratorInfoMove(extractResults); | ||||
|  | ||||
| @ -116,6 +116,15 @@ | ||||
|     <Compile Include="Adaptation\FileHandlers\OpenInsightMetrologyViewer\FileRead.cs" /> | ||||
|     <Compile Include="Adaptation\FileHandlers\OpenInsightMetrologyViewer\WSRequest.cs" /> | ||||
|     <Compile Include="Adaptation\FileHandlers\OpenInsightMetrologyViewerAttachments\FileRead.cs" /> | ||||
|     <Compile Include="Adaptation\FileHandlers\pdsf\Constant.cs" /> | ||||
|     <Compile Include="Adaptation\FileHandlers\pdsf\Convert.cs" /> | ||||
|     <Compile Include="Adaptation\FileHandlers\pdsf\FileRead.cs" /> | ||||
|     <Compile Include="Adaptation\FileHandlers\pdsf\Header.cs" /> | ||||
|     <Compile Include="Adaptation\FileHandlers\pdsf\Point.cs" /> | ||||
|     <Compile Include="Adaptation\FileHandlers\pdsf\Row.cs" /> | ||||
|     <Compile Include="Adaptation\FileHandlers\pdsf\Run.cs" /> | ||||
|     <Compile Include="Adaptation\FileHandlers\pdsf\Summary.cs" /> | ||||
|     <Compile Include="Adaptation\FileHandlers\pdsf\SummarySegment.cs" /> | ||||
|     <Compile Include="Adaptation\FileHandlers\pcl\Constant.cs" /> | ||||
|     <Compile Include="Adaptation\FileHandlers\pcl\Convert.cs" /> | ||||
|     <Compile Include="Adaptation\FileHandlers\pcl\Description.cs" /> | ||||
| @ -131,6 +140,8 @@ | ||||
|     <Compile Include="Adaptation\FileHandlers\pcl\SummarySegment.cs" /> | ||||
|     <Compile Include="Adaptation\FileHandlers\Processed\FileRead.cs" /> | ||||
|     <Compile Include="Adaptation\FileHandlers\SPaCe\FileRead.cs" /> | ||||
|     <Compile Include="Adaptation\FileHandlers\TransmissionControlProtocol\FileRead.cs" /> | ||||
|     <Compile Include="Adaptation\FileHandlers\TransmissionControlProtocol\Record.cs" /> | ||||
|     <Compile Include="Adaptation\Ifx\Eaf\Common\Configuration\ConnectionSetting.cs" /> | ||||
|     <Compile Include="Adaptation\Ifx\Eaf\EquipmentConnector\File\Component\File.cs" /> | ||||
|     <Compile Include="Adaptation\Ifx\Eaf\EquipmentConnector\File\Component\FilePathGenerator.cs" /> | ||||
| @ -163,6 +174,7 @@ | ||||
|     <Compile Include="Adaptation\Shared\Metrology\WS.Results.cs" /> | ||||
|     <Compile Include="Adaptation\Shared\ParameterType.cs" /> | ||||
|     <Compile Include="Adaptation\Shared\ProcessDataStandardFormat.cs" /> | ||||
|     <Compile Include="Adaptation\Shared\ProcessDataStandardFormatMapping.cs" /> | ||||
|     <Compile Include="Adaptation\Shared\Properties\IDescription.cs" /> | ||||
|     <Compile Include="Adaptation\Shared\Properties\IFileRead.cs" /> | ||||
|     <Compile Include="Adaptation\Shared\Properties\ILogistics.cs" /> | ||||
| @ -181,13 +193,13 @@ | ||||
|       <Version>7.2.4630.5</Version> | ||||
|     </PackageReference> | ||||
|     <PackageReference Include="Infineon.EAF.Runtime"> | ||||
|       <Version>2.52.0</Version> | ||||
|       <Version>2.61.1</Version> | ||||
|     </PackageReference> | ||||
|     <PackageReference Include="Pdfbox"> | ||||
|       <Version>1.1.1</Version> | ||||
|     </PackageReference> | ||||
|     <PackageReference Include="System.Text.Json"> | ||||
|       <Version>6.0.3</Version> | ||||
|       <Version>8.0.3</Version> | ||||
|     </PackageReference> | ||||
|   </ItemGroup> | ||||
|   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> | ||||
|  | ||||
| @ -32,5 +32,5 @@ using System.Runtime.InteropServices; | ||||
| // You can specify all the values or you can default the Build and Revision Numbers | ||||
| // by using the '*' as shown below: | ||||
| // [assembly: AssemblyVersion("1.0.*")] | ||||
| [assembly: AssemblyVersion("2.57.0.0")] | ||||
| [assembly: AssemblyFileVersion("2.57.0.0")] | ||||
| [assembly: AssemblyVersion("2.61.1.0")] | ||||
| [assembly: AssemblyFileVersion("2.61.1.0")] | ||||
|  | ||||
		Reference in New Issue
	
	Block a user