Compare commits
	
		
			18 Commits
		
	
	
		
			master
			...
			3e66678065
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 3e66678065 | |||
| 2d38427bb2 | |||
| f554a0ad7a | |||
| 61f851db59 | |||
| d43e5f00a8 | |||
| 3a9413deb3 | |||
| 2ff1342f5a | |||
| f9296dc252 | |||
| da5afebe03 | |||
| baeed42d37 | |||
| 6609772a05 | |||
| d250651c28 | |||
| cb9386b283 | |||
| 03bbc36802 | |||
| 79ef3c88e4 | |||
| 23d89c85bc | |||
| b3c970216c | |||
| a180f65069 | 
							
								
								
									
										11
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -331,10 +331,11 @@ ASALocalRun/
 | 
			
		||||
##
 | 
			
		||||
## Visual Studio Code
 | 
			
		||||
##
 | 
			
		||||
.vscode/*
 | 
			
		||||
!.vscode/settings.json
 | 
			
		||||
!.vscode/tasks.json
 | 
			
		||||
!.vscode/launch.json
 | 
			
		||||
!.vscode/extensions.json
 | 
			
		||||
*/!.vscode/extensions.json
 | 
			
		||||
*/!.vscode/launch.json
 | 
			
		||||
*/!.vscode/settings.json
 | 
			
		||||
*/!.vscode/tasks.json
 | 
			
		||||
*/.vscode/*
 | 
			
		||||
*/.vscode/ReportGenerator/*
 | 
			
		||||
 | 
			
		||||
*.lnk
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										172
									
								
								.groovy
									
									
									
									
									
								
							
							
						
						
									
										172
									
								
								.groovy
									
									
									
									
									
								
							@ -1,172 +0,0 @@
 | 
			
		||||
#!/usr/bin/env groovy
 | 
			
		||||
/* groovylint-disable CompileStatic, ConsecutiveStringConcatenation, DuplicateNumberLiteral, DuplicateStringLiteral, LineLength, NestedBlockDepth, NoDef, VariableTypeRequired */
 | 
			
		||||
import groovy.transform.Field
 | 
			
		||||
 | 
			
		||||
@Field String _DDrive = 'D:/'
 | 
			
		||||
@Field String _GitName = 'EC'
 | 
			
		||||
@Field String _AssemblyName = '...'
 | 
			
		||||
@Field String _TargetLocation = '...'
 | 
			
		||||
@Field String _GitCommitSeven = '...'
 | 
			
		||||
@Field String _TestProjectDirectory = 'Adaptation'
 | 
			
		||||
@Field String _AgentStaging = 'mestsa07ec-ecmeseaf'
 | 
			
		||||
@Field String _DDriveNet = "${_DDrive}Framework4.8"
 | 
			
		||||
@Field String _AgentProduction = 'messa08ec-ecmeseaf'
 | 
			
		||||
@Field String _AgentDevelopment = 'mestsa003-mesedasvc'
 | 
			
		||||
@Field String _ProgramFilesDotnet = 'C:/Program Files/dotnet/dotnet.exe'
 | 
			
		||||
@Field String _ProgramFilesMSBuild = 'C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe'
 | 
			
		||||
 | 
			
		||||
pipeline {
 | 
			
		||||
    agent {
 | 
			
		||||
        label env.JENKINS_ENVIRONMENT == 'Development' ? _AgentDevelopment : env.JENKINS_ENVIRONMENT == 'Staging' ? _AgentStaging : env.JENKINS_ENVIRONMENT == 'Production' ? _AgentProduction : 'Else'
 | 
			
		||||
    }
 | 
			
		||||
    parameters {
 | 
			
		||||
        string(name: 'GIT_SERVER', defaultValue: env.JENKINS_ENVIRONMENT == 'Development' ? 'mestsa003.infineon.com' : 'mestsa07ec.ec.local', description: 'git server')
 | 
			
		||||
        string(name: 'DEFAULT_FILE_SERVER', defaultValue: env.JENKINS_ENVIRONMENT == 'Development' ? 'messv02ecc1_ec_local' : 'messv02ecc1.ec.local', description: 'Default file server...')
 | 
			
		||||
    }
 | 
			
		||||
    stages {
 | 
			
		||||
        stage('Git') {
 | 
			
		||||
            steps {
 | 
			
		||||
                bat(returnStatus: true, script: 'git init')
 | 
			
		||||
                bat(returnStatus: true, script: 'git remote add origin \\\\' + params.GIT_SERVER + '\\Git\\' + _GitName + '.git')
 | 
			
		||||
                bat(returnStatus: true, script: 'git pull origin master')
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        stage('Setup') {
 | 
			
		||||
            steps {
 | 
			
		||||
                script {
 | 
			
		||||
                    _AssemblyName = "${env.JOB_NAME}"
 | 
			
		||||
                    _GitCommitSeven = '1234567'
 | 
			
		||||
                    // _GitCommitSeven = env.GIT_COMMIT.substring(0, 7)
 | 
			
		||||
                    def files = findFiles(glob: '*.csproj')
 | 
			
		||||
                    if (files.length != 1) {
 | 
			
		||||
                        error("Build failed because couldn't find a *.csproj file")
 | 
			
		||||
                    }
 | 
			
		||||
                    echo """
 | 
			
		||||
                        ${files[0].name}
 | 
			
		||||
                        ${files[0].path}
 | 
			
		||||
                        ${files[0].directory}
 | 
			
		||||
                        ${files[0].length}
 | 
			
		||||
                        ${files[0].lastModified}
 | 
			
		||||
                        """
 | 
			
		||||
                    _AssemblyName = files[0].name.split('[.]csproj')[0]
 | 
			
		||||
                    _TargetLocation = "\\\\${params.DEFAULT_FILE_SERVER}\\EC_EAFRepository\\${env.JENKINS_ENVIRONMENT}\\DeploymentStorage\\Adaptation_${_AssemblyName}"
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        stage('Info') {
 | 
			
		||||
            steps {
 | 
			
		||||
                echo "_AssemblyName ${_AssemblyName}" // ...
 | 
			
		||||
                echo "BUILD_NUMBER ${env.BUILD_NUMBER}" // 11
 | 
			
		||||
                echo "DEFAULT_FILE_SERVER ${params.DEFAULT_FILE_SERVER}" // 11
 | 
			
		||||
                echo "GIT_BRANCH ${env.GIT_BRANCH}" // origin/master
 | 
			
		||||
                echo "GIT_COMMIT ${env.GIT_COMMIT}" // 73b814069f2cf0173a62a8228815a9bc9ba93c41
 | 
			
		||||
                echo "GIT_SERVER ${params.GIT_SERVER}" // ...
 | 
			
		||||
                echo "GIT_URL ${env.GIT_URL}" // D:\ProgramData\Git\....git
 | 
			
		||||
                echo "JENKINS_ENVIRONMENT ${env.JENKINS_ENVIRONMENT}" // 11
 | 
			
		||||
                echo "JENKINS_URL ${env.JENKINS_URL}" // http://localhost:8080/
 | 
			
		||||
                echo "JOB_NAME ${env.JOB_NAME}" // ...
 | 
			
		||||
                echo "WORKSPACE ${env.WORKSPACE}" // D:\.jenkins\_\...
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        // stage('Restore') {
 | 
			
		||||
        //     steps {
 | 
			
		||||
        //         bat(returnStatus: true, script: 'dotnet --info')
 | 
			
		||||
        //     }
 | 
			
		||||
        // }
 | 
			
		||||
        stage('Safe storage of app secrets') {
 | 
			
		||||
            steps {
 | 
			
		||||
                dir(_TestProjectDirectory) {
 | 
			
		||||
                    bat(returnStatus: true, script: '"' + _ProgramFilesDotnet + '" ' +
 | 
			
		||||
                        'user-secrets init')
 | 
			
		||||
                    bat(returnStatus: true, script: '"' + _ProgramFilesDotnet + '" ' +
 | 
			
		||||
                        'user-secrets set "BuildNumber" "' + env.BUILD_NUMBER + '"')
 | 
			
		||||
                    bat(returnStatus: true, script: '"' + _ProgramFilesDotnet + '" ' +
 | 
			
		||||
                        'user-secrets set "GitCommitSeven" "' + _GitCommitSeven + '"')
 | 
			
		||||
                    bat(returnStatus: true, script: '"' + _ProgramFilesDotnet + '" ' +
 | 
			
		||||
                        'user-secrets set "Server" "' + params.DEFAULT_FILE_SERVER + '"')
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        stage('Core Build') {
 | 
			
		||||
            steps {
 | 
			
		||||
                echo "Build number is ${currentBuild.number}"
 | 
			
		||||
                dir(_TestProjectDirectory) {
 | 
			
		||||
                    bat(returnStatus: true, script: '"' + _ProgramFilesDotnet + '" ' +
 | 
			
		||||
                        'build --runtime win-x64 --self-contained --verbosity quiet')
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        // stage('Test') {
 | 
			
		||||
        //     options {
 | 
			
		||||
        //         timeout(time: 10, unit: 'MINUTES')
 | 
			
		||||
        //     }
 | 
			
		||||
        //     steps {
 | 
			
		||||
        //         dir(_TestProjectDirectory) {
 | 
			
		||||
        //             bat('dotnet --info')
 | 
			
		||||
        //         }
 | 
			
		||||
        //     }
 | 
			
		||||
        // }
 | 
			
		||||
        stage('Framework Build') {
 | 
			
		||||
            steps {
 | 
			
		||||
                echo "Build number is ${currentBuild.number}"
 | 
			
		||||
                bat(returnStatus: true, script: '"' + _ProgramFilesMSBuild + '" ' +
 | 
			
		||||
                    '/target:Restore ' +
 | 
			
		||||
                    '/detailedsummary ' +
 | 
			
		||||
                    '/consoleloggerparameters:PerformanceSummary;ErrorsOnly; ' +
 | 
			
		||||
                    '/property:Configuration=Debug;TargetFrameworkVersion=v4.8 ' +
 | 
			
		||||
                    _AssemblyName + '.csproj')
 | 
			
		||||
                bat(returnStatus: true, script: '"' + _ProgramFilesMSBuild + '" ' +
 | 
			
		||||
                    '/target:Build ' +
 | 
			
		||||
                    '/detailedsummary ' +
 | 
			
		||||
                    '/consoleloggerparameters:PerformanceSummary;ErrorsOnly; ' +
 | 
			
		||||
                    '/property:Configuration=Debug;TargetFrameworkVersion=v4.8 ' +
 | 
			
		||||
                    _AssemblyName + '.csproj')
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        stage('Commit Id') {
 | 
			
		||||
            steps {
 | 
			
		||||
                dir('bin/Debug') {
 | 
			
		||||
                    writeFile file: "${_AssemblyName}.txt", text: "${env.GIT_COMMIT}-${env.BUILD_NUMBER}-${env.GIT_URL}"
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        stage('Package') {
 | 
			
		||||
            steps {
 | 
			
		||||
                fileOperations([fileZipOperation(folderPath: 'bin/Debug', outputFolderPath: "${_DDriveNet}/${_GitCommitSeven}-${env.BUILD_NUMBER}-${env.JOB_NAME}-Debug")])
 | 
			
		||||
                fileOperations([fileCopyOperation(excludes: '', flattenFiles: true, includes: "${_AssemblyName}*", renameFiles: false, sourceCaptureExpression: '', targetLocation: "${_DDriveNet}/${_GitCommitSeven}-${env.BUILD_NUMBER}-${env.JOB_NAME}-Debug", targetNameExpression: '')])
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        // stage('Force Fail') {
 | 
			
		||||
        //     steps {
 | 
			
		||||
        //         error("Build failed because of this and that..")
 | 
			
		||||
        //     }
 | 
			
		||||
        // }
 | 
			
		||||
        stage('Copy Files to: file-share') {
 | 
			
		||||
            steps {
 | 
			
		||||
                dir('bin/Debug') {
 | 
			
		||||
                    fileOperations([fileCopyOperation(excludes: '', flattenFiles: true, includes: "${_AssemblyName}*.txt", renameFiles: false, sourceCaptureExpression: '', targetLocation: _TargetLocation, targetNameExpression: '')])
 | 
			
		||||
                    fileOperations([fileCopyOperation(excludes: '', flattenFiles: true, includes: "${_AssemblyName}*.dll", renameFiles: false, sourceCaptureExpression: '', targetLocation: _TargetLocation, targetNameExpression: '')])
 | 
			
		||||
                    fileOperations([fileCopyOperation(excludes: '', flattenFiles: true, includes: "${_AssemblyName}*.exe", renameFiles: false, sourceCaptureExpression: '', targetLocation: _TargetLocation, targetNameExpression: '')])
 | 
			
		||||
                    fileOperations([fileCopyOperation(excludes: '', flattenFiles: true, includes: "${_AssemblyName}*.pdb", renameFiles: false, sourceCaptureExpression: '', targetLocation: _TargetLocation, targetNameExpression: '')])
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    post {
 | 
			
		||||
        always {
 | 
			
		||||
            dir('bin') {
 | 
			
		||||
                deleteDir()
 | 
			
		||||
            }
 | 
			
		||||
            dir('obj') {
 | 
			
		||||
                deleteDir()
 | 
			
		||||
            }
 | 
			
		||||
            dir(_TestProjectDirectory + '/bin') {
 | 
			
		||||
                deleteDir()
 | 
			
		||||
            }
 | 
			
		||||
            dir(_TestProjectDirectory + '/obj') {
 | 
			
		||||
                deleteDir()
 | 
			
		||||
            }
 | 
			
		||||
            // cleanWs()
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										12
									
								
								Adaptation/.config/dotnet-tools.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								Adaptation/.config/dotnet-tools.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,12 @@
 | 
			
		||||
{
 | 
			
		||||
  "version": 1,
 | 
			
		||||
  "isRoot": true,
 | 
			
		||||
  "tools": {
 | 
			
		||||
    "dotnet-reportgenerator-globaltool": {
 | 
			
		||||
      "version": "5.1.15",
 | 
			
		||||
      "commands": [
 | 
			
		||||
        "reportgenerator"
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -76,12 +76,15 @@ csharp_using_directive_placement = outside_namespace
 | 
			
		||||
dotnet_code_quality_unused_parameters = all
 | 
			
		||||
dotnet_code_quality_unused_parameters = non_public # IDE0060: Remove unused parameter
 | 
			
		||||
dotnet_code_quality.CAXXXX.api_surface = private, internal
 | 
			
		||||
dotnet_diagnostic.CA1816.severity = none # CA1816: Call GC.SuppressFinalize correctly
 | 
			
		||||
dotnet_diagnostic.CA1825.severity = warning # CA1823: Avoid zero-length array allocations
 | 
			
		||||
dotnet_diagnostic.CA1829.severity = warning # CA1829: Use Length/Count property instead of Count() when available
 | 
			
		||||
dotnet_diagnostic.CA1834.severity = warning # CA1834: Consider using 'StringBuilder.Append(char)' when applicable
 | 
			
		||||
dotnet_diagnostic.CA1846.severity = none # CA1846: Prefer AsSpan over Substring
 | 
			
		||||
dotnet_diagnostic.CA1847.severity = none # CA1847: Use string.Contains(char) instead of string.Contains(string) with single characters
 | 
			
		||||
dotnet_diagnostic.IDE0001.severity = warning # IDE0001: Simplify name
 | 
			
		||||
dotnet_diagnostic.IDE0004.severity = warning # IDE0004: Cast is redundant.
 | 
			
		||||
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.IDE0047.severity = warning # IDE0047: Parentheses can be removed
 | 
			
		||||
dotnet_diagnostic.IDE0049.severity = warning # Use language keywords instead of framework type names for type references (IDE0049)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										10
									
								
								Adaptation/.vscode/launch.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								Adaptation/.vscode/launch.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,10 @@
 | 
			
		||||
{
 | 
			
		||||
  "configurations": [
 | 
			
		||||
    {
 | 
			
		||||
      "name": ".NET Core Attach",
 | 
			
		||||
      "type": "coreclr",
 | 
			
		||||
      "request": "attach",
 | 
			
		||||
      "processId": 7156
 | 
			
		||||
    }
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								Adaptation/.vscode/settings.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								Adaptation/.vscode/settings.json
									
									
									
									
										vendored
									
									
								
							@ -1,4 +1,5 @@
 | 
			
		||||
{
 | 
			
		||||
    "coverage-gutters.coverageBaseDir": "../../../../EC/05_TestResults/TestResults/**",
 | 
			
		||||
    "workbench.colorCustomizations": {
 | 
			
		||||
        "activityBar.activeBackground": "#d791c9",
 | 
			
		||||
        "activityBar.activeBorder": "#e8eed0",
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								Adaptation/EC-Development.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								Adaptation/EC-Development.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
ECHO is on.
 | 
			
		||||
@ -11,7 +11,7 @@
 | 
			
		||||
        <LangVersion>10.0</LangVersion>
 | 
			
		||||
        <Nullable>disable</Nullable>
 | 
			
		||||
        <RuntimeIdentifier>win-x64</RuntimeIdentifier>
 | 
			
		||||
        <TargetFramework>net6.0</TargetFramework>
 | 
			
		||||
        <TargetFramework>net7.0</TargetFramework>
 | 
			
		||||
    </PropertyGroup>
 | 
			
		||||
    <PropertyGroup>
 | 
			
		||||
        <VSTestLogger>trx</VSTestLogger>
 | 
			
		||||
@ -33,49 +33,8 @@
 | 
			
		||||
        <DefineConstants>Linux</DefineConstants>
 | 
			
		||||
    </PropertyGroup>
 | 
			
		||||
    <ItemGroup>
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="6.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="6.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="6.0.1" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="6.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Configuration.json" Version="6.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Configuration" Version="6.0.1" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="6.0.1" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="6.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="6.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Logging" Version="6.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.2" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Win32.SystemEvents" Version="6.0.1" />
 | 
			
		||||
    </ItemGroup>
 | 
			
		||||
    <ItemGroup>
 | 
			
		||||
        <PackageReference Include="MSTest.TestAdapter" Version="2.2.10" />
 | 
			
		||||
        <PackageReference Include="MSTest.TestFramework" Version="2.2.10" />
 | 
			
		||||
    </ItemGroup>
 | 
			
		||||
    <ItemGroup>
 | 
			
		||||
        <PackageReference Include="System.Configuration.ConfigurationManager" Version="6.0.1" />
 | 
			
		||||
        <PackageReference Include="System.Data.OleDb" Version="6.0.0" />
 | 
			
		||||
        <PackageReference Include="System.Data.SqlClient" Version="4.8.4" />
 | 
			
		||||
        <PackageReference Include="System.Drawing.Common" Version="6.0.0" />
 | 
			
		||||
        <PackageReference Include="System.Text.Json" Version="6.0.6" />
 | 
			
		||||
    </ItemGroup>
 | 
			
		||||
    <ItemGroup>
 | 
			
		||||
        <PackageReference Include="coverlet.collector" Version="3.1.2">
 | 
			
		||||
          <PrivateAssets>all</PrivateAssets>
 | 
			
		||||
          <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
 | 
			
		||||
        </PackageReference>
 | 
			
		||||
        <PackageReference Include="FFMpegCore" Version="4.8.0" />
 | 
			
		||||
        <PackageReference Include="Infineon.Yoda" Version="5.4.1" />
 | 
			
		||||
        <PackageReference Include="Instances" Version="2.0.0" />
 | 
			
		||||
        <PackageReference Include="RoboSharp" Version="1.2.8" />
 | 
			
		||||
        <PackageReference Include="Tesseract" Version="4.1.1" />
 | 
			
		||||
        <PackageReference Include="Tibco.Rendezvous" Version="8.5.0" />
 | 
			
		||||
    </ItemGroup>
 | 
			
		||||
    <ItemGroup>
 | 
			
		||||
        <PackageReference Include="External.Common.Logging.Core" Version="3.3.1"><NoWarn>NU1701</NoWarn></PackageReference>
 | 
			
		||||
        <PackageReference Include="External.Common.Logging" Version="3.3.1"><NoWarn>NU1701</NoWarn></PackageReference>
 | 
			
		||||
        <PackageReference Include="External.log4net" Version="2.0.8"><NoWarn>NU1701</NoWarn></PackageReference>
 | 
			
		||||
    </ItemGroup>
 | 
			
		||||
    <ItemGroup>
 | 
			
		||||
        <PackageReference Include="Pdfbox" Version="1.1.1"><NoWarn>NU1701</NoWarn></PackageReference>
 | 
			
		||||
        <PackageReference Include="coverlet.collector" Version="3.2.0" />
 | 
			
		||||
        <PackageReference Include="FFMpegCore" Version="5.1.0" />
 | 
			
		||||
        <PackageReference Include="IKVM.AWT.WinForms" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
 | 
			
		||||
        <PackageReference Include="IKVM.OpenJDK.Core" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
 | 
			
		||||
        <PackageReference Include="IKVM.OpenJDK.Media" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
 | 
			
		||||
@ -83,6 +42,41 @@
 | 
			
		||||
        <PackageReference Include="IKVM.OpenJDK.Util" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
 | 
			
		||||
        <PackageReference Include="IKVM.OpenJDK.XML.API" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
 | 
			
		||||
        <PackageReference Include="IKVM.Runtime" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
 | 
			
		||||
        <PackageReference Include="Instances" Version="3.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="7.0.4" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Configuration.json" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Configuration" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
 | 
			
		||||
        <PackageReference Include="Microsoft.Win32.SystemEvents" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="MSTest.TestAdapter" Version="3.0.2" />
 | 
			
		||||
        <PackageReference Include="MSTest.TestFramework" Version="3.0.2" />
 | 
			
		||||
        <PackageReference Include="Pdfbox" Version="1.1.1"><NoWarn>NU1701</NoWarn></PackageReference>
 | 
			
		||||
        <PackageReference Include="RoboSharp" Version="1.2.8" />
 | 
			
		||||
        <PackageReference Include="System.Configuration.ConfigurationManager" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="System.Data.OleDb" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="System.Data.SqlClient" Version="4.8.5" />
 | 
			
		||||
        <PackageReference Include="System.Drawing.Common" Version="7.0.0" />
 | 
			
		||||
        <PackageReference Include="System.Text.Json" Version="7.0.2" />
 | 
			
		||||
        <PackageReference Include="Tesseract" Version="5.2.0" />
 | 
			
		||||
    </ItemGroup>
 | 
			
		||||
    <ItemGroup>
 | 
			
		||||
        <PackageReference Include="Tibco.Rendezvous" Version="8.5.0" />
 | 
			
		||||
        <PackageReference Include="Infineon.Yoda" Version="5.4.1" />
 | 
			
		||||
    </ItemGroup>
 | 
			
		||||
    <ItemGroup>
 | 
			
		||||
        <PackageReference Include="Infineon.Mesa.PDF.Text.Stripper" Version="4.8.0.1"><NoWarn>NU1701</NoWarn></PackageReference>
 | 
			
		||||
    </ItemGroup>
 | 
			
		||||
    <ItemGroup>
 | 
			
		||||
        <PackageReference Include="External.Common.Logging.Core" Version="3.3.1"><NoWarn>NU1701</NoWarn></PackageReference>
 | 
			
		||||
        <PackageReference Include="External.Common.Logging" Version="3.3.1"><NoWarn>NU1701</NoWarn></PackageReference>
 | 
			
		||||
        <PackageReference Include="External.log4net" Version="2.0.8"><NoWarn>NU1701</NoWarn></PackageReference>
 | 
			
		||||
    </ItemGroup>
 | 
			
		||||
    <ItemGroup>
 | 
			
		||||
        <None Include="appsettings.json">
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								Adaptation/EC.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								Adaptation/EC.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
ECHO is on.
 | 
			
		||||
@ -9,12 +9,12 @@ namespace Adaptation.FileHandlers;
 | 
			
		||||
public class CellInstanceConnectionName
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    internal static IFileRead Get(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted)
 | 
			
		||||
    internal static IFileRead Get(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, int? connectionCount)
 | 
			
		||||
    {
 | 
			
		||||
        IFileRead result = cellInstanceConnectionName switch
 | 
			
		||||
        {
 | 
			
		||||
            nameof(MapEafDrives) => new MapEafDrives.FileRead(smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted),
 | 
			
		||||
            nameof(RijndaelEncryption) => new RijndaelEncryption.FileRead(smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted),
 | 
			
		||||
            nameof(MapEafDrives) => new MapEafDrives.FileRead(smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null),
 | 
			
		||||
            nameof(RijndaelEncryption) => new RijndaelEncryption.FileRead(smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null),
 | 
			
		||||
            _ => throw new Exception(),
 | 
			
		||||
        };
 | 
			
		||||
        return result;
 | 
			
		||||
 | 
			
		||||
@ -18,8 +18,8 @@ public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
 | 
			
		||||
    private readonly AppSettings _AppSettings;
 | 
			
		||||
 | 
			
		||||
    public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
 | 
			
		||||
        base(new Description(), true, smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted)
 | 
			
		||||
    public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
 | 
			
		||||
        base(new Description(), true, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
 | 
			
		||||
    {
 | 
			
		||||
        _MinFileLength = 10;
 | 
			
		||||
        _NullData = string.Empty;
 | 
			
		||||
@ -107,13 +107,11 @@ public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
        return results;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#pragma warning disable IDE0060
 | 
			
		||||
    private static Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
 | 
			
		||||
#pragma warning restore IDE0060
 | 
			
		||||
    {
 | 
			
		||||
        Tuple<string, Test[], JsonElement[], List<FileInfo>> results = new(string.Empty, null, null, new List<FileInfo>());
 | 
			
		||||
        if (reportFullPath is null)
 | 
			
		||||
        { }
 | 
			
		||||
        if (dateTime == DateTime.MinValue)
 | 
			
		||||
        { }
 | 
			
		||||
        return results;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -18,8 +18,8 @@ public class FileRead : Shared.FileRead, IFileRead
 | 
			
		||||
 | 
			
		||||
    private readonly AppSettings _AppSettings;
 | 
			
		||||
 | 
			
		||||
    public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
 | 
			
		||||
        base(new Description(), true, smtp, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted)
 | 
			
		||||
    public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
 | 
			
		||||
        base(new Description(), true, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
 | 
			
		||||
    {
 | 
			
		||||
        _MinFileLength = 10;
 | 
			
		||||
        _NullData = string.Empty;
 | 
			
		||||
 | 
			
		||||
@ -140,4 +140,6 @@ public class Description : IDescription, Properties.IDescription
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    internal static string GetDateFormat() => "MM/dd/yyyy hh:mm:ss tt";
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -63,7 +63,7 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
    string Properties.IFileRead.CellInstanceConnectionName => _CellInstanceConnectionName;
 | 
			
		||||
    string Properties.IFileRead.ParameterizedModelObjectDefinitionType => _ParameterizedModelObjectDefinitionType;
 | 
			
		||||
 | 
			
		||||
    public FileRead(IDescription description, bool isEvent, ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted)
 | 
			
		||||
    public FileRead(IDescription description, bool isEvent, ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted)
 | 
			
		||||
    {
 | 
			
		||||
        _SMTP = smtp;
 | 
			
		||||
        _IsEvent = isEvent;
 | 
			
		||||
@ -106,7 +106,7 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
                throw new Exception(cellInstanceConnectionName);
 | 
			
		||||
            if (string.IsNullOrEmpty(equipmentDictionaryName) && isEvent)
 | 
			
		||||
                throw new Exception(cellInstanceConnectionName);
 | 
			
		||||
            if (!string.IsNullOrEmpty(equipmentDictionaryName) && !isEvent)
 | 
			
		||||
            if (!string.IsNullOrEmpty(equipmentDictionaryName) && !isEvent && connectionCount > 1)
 | 
			
		||||
                throw new Exception(cellInstanceConnectionName);
 | 
			
		||||
            // if (string.IsNullOrEmpty(equipmentDictionaryName) && !isEvent)
 | 
			
		||||
            //     throw new Exception(cellInstanceConnectionName);
 | 
			
		||||
@ -266,13 +266,14 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
        string rds;
 | 
			
		||||
        string dateValue;
 | 
			
		||||
        string rdsPlaceholder = "%RDS%";
 | 
			
		||||
        string mesEntityPlaceholder = "%MesEntity%";
 | 
			
		||||
        if (!descriptions.Any() || string.IsNullOrEmpty(descriptions[0].RDS))
 | 
			
		||||
            rds = logistics.MID;
 | 
			
		||||
        else
 | 
			
		||||
            rds = descriptions[0].RDS;
 | 
			
		||||
        string[] segments = scopeInfo.FileName.Split(new string[] { "DateTime:" }, StringSplitOptions.RemoveEmptyEntries);
 | 
			
		||||
        if (segments.Length == 0)
 | 
			
		||||
            result = string.Concat(duplicateDirectory, @"\", scopeInfo.FileNameWithoutExtension.Replace(rdsPlaceholder, rds));
 | 
			
		||||
            result = string.Concat(duplicateDirectory, @"\", scopeInfo.FileNameWithoutExtension.Replace(rdsPlaceholder, rds).Replace(mesEntityPlaceholder, logistics.MesEntity));
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            segments = segments[1].Split('%');
 | 
			
		||||
@ -284,7 +285,7 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
                    continue;
 | 
			
		||||
                datePlaceholder = string.Concat('%', segment, '%');
 | 
			
		||||
            }
 | 
			
		||||
            result = string.Concat(duplicateDirectory, @"\", scopeInfo.FileName.Replace(rdsPlaceholder, rds).Replace(datePlaceholder, dateValue));
 | 
			
		||||
            result = string.Concat(duplicateDirectory, @"\", scopeInfo.FileName.Replace(rdsPlaceholder, rds).Replace(mesEntityPlaceholder, logistics.MesEntity).Replace(datePlaceholder, dateValue));
 | 
			
		||||
        }
 | 
			
		||||
        if (result.Contains('%'))
 | 
			
		||||
            throw new Exception("Placeholder exists!");
 | 
			
		||||
@ -296,6 +297,7 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
        bool check;
 | 
			
		||||
        long preWait;
 | 
			
		||||
        string tupleFile;
 | 
			
		||||
        string tupleFileName = string.Empty;
 | 
			
		||||
        List<string> duplicateFiles = new();
 | 
			
		||||
        StringBuilder stringBuilder = new();
 | 
			
		||||
        List<int> consumedFileIndices = new();
 | 
			
		||||
@ -317,6 +319,7 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
                tupleFile = string.Concat(duplicateDirectory, @"\", fileName, "_", scopeInfo.FileNameWithoutExtension, ".pdsfc");
 | 
			
		||||
            else
 | 
			
		||||
                tupleFile = GetTupleFile(logistics, descriptions, scopeInfo, duplicateDirectory);
 | 
			
		||||
            tupleFileName = Path.GetFileNameWithoutExtension(tupleFile).Split('.')[0];
 | 
			
		||||
            duplicateFiles.Add(tupleFile);
 | 
			
		||||
            if (_IsEAFHosted)
 | 
			
		||||
                File.WriteAllText(tupleFile, text);
 | 
			
		||||
@ -325,7 +328,7 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
        {
 | 
			
		||||
            if (DateTime.Now.Ticks > preWait)
 | 
			
		||||
                break;
 | 
			
		||||
            Thread.Sleep(500);
 | 
			
		||||
            Thread.Sleep(100);
 | 
			
		||||
        }
 | 
			
		||||
        if (!moreThanAnHour)
 | 
			
		||||
        {
 | 
			
		||||
@ -340,7 +343,17 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
                        for (int i = 0; i < duplicateFiles.Count; i++)
 | 
			
		||||
                        {
 | 
			
		||||
                            if (!File.Exists(duplicateFiles[i]))
 | 
			
		||||
                                consumedFileIndices.Add(i);
 | 
			
		||||
                            {
 | 
			
		||||
                                if (string.IsNullOrEmpty(tupleFileName))
 | 
			
		||||
                                    consumedFileIndices.Add(i);
 | 
			
		||||
                                else if (duplicateFiles.All(l => Path.GetFileNameWithoutExtension(l).Split('.')[0] == tupleFileName))
 | 
			
		||||
                                {
 | 
			
		||||
                                    for (int j = 0; j < duplicateFiles.Count; j++)
 | 
			
		||||
                                        consumedFileIndices.Add(j);
 | 
			
		||||
                                }
 | 
			
		||||
                                else
 | 
			
		||||
                                    consumedFileIndices.Add(i);
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                        if (consumedFileIndices.Count == duplicateFiles.Count)
 | 
			
		||||
                            break;
 | 
			
		||||
@ -361,7 +374,7 @@ public class FileRead : Properties.IFileRead
 | 
			
		||||
                    }
 | 
			
		||||
                    throw new Exception(string.Concat("After {", _BreakAfterSeconds, "} seconds, right side of {", sourceDirectoryCloaking, "} didn't consume file(s) ", stringBuilder));
 | 
			
		||||
                }
 | 
			
		||||
                Thread.Sleep(500);
 | 
			
		||||
                Thread.Sleep(250);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -51,7 +51,7 @@ public class Logistics : ILogistics
 | 
			
		||||
        _Logistics2 = new List<Logistics2>();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Logistics(IFileRead fileRead, string reportFullPath, bool useSplitForMID, int? fileInfoLength = null)
 | 
			
		||||
    public Logistics(IFileRead fileRead, long tickOffset, string reportFullPath, bool useSplitForMID, int? fileInfoLength = null)
 | 
			
		||||
    {
 | 
			
		||||
        if (string.IsNullOrEmpty(fileRead.CellInstanceName))
 | 
			
		||||
            throw new Exception();
 | 
			
		||||
@ -59,7 +59,7 @@ public class Logistics : ILogistics
 | 
			
		||||
            throw new Exception();
 | 
			
		||||
        _NullData = fileRead.NullData;
 | 
			
		||||
        _FileInfo = new(reportFullPath);
 | 
			
		||||
        DateTime dateTime = _FileInfo.LastWriteTime;
 | 
			
		||||
        DateTime dateTime = new(_FileInfo.LastWriteTime.Ticks + tickOffset);
 | 
			
		||||
        if (fileInfoLength.HasValue && _FileInfo.Length < fileInfoLength.Value)
 | 
			
		||||
            dateTime = dateTime.AddTicks(-1);
 | 
			
		||||
        _JobID = fileRead.CellInstanceName;
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,7 @@ public class ScopeInfo : Properties.IScopeInfo
 | 
			
		||||
    public string QueryFilter { get; private set; }
 | 
			
		||||
    public string FileNameWithoutExtension { get; private set; }
 | 
			
		||||
 | 
			
		||||
    public ScopeInfo(Test test, string fileName, string queryFilter = "", string title = "", string html = "")
 | 
			
		||||
    public ScopeInfo(Test test, string fileName, string queryFilter = "", string title = "", string html = "", string extraExtension = "")
 | 
			
		||||
    {
 | 
			
		||||
        Enum = test;
 | 
			
		||||
        Test = test;
 | 
			
		||||
 | 
			
		||||
@ -30,7 +30,7 @@ public partial class WS
 | 
			
		||||
                };
 | 
			
		||||
                HttpResponseMessage httpResponseMessage = httpClient.SendAsync(httpRequestMessage, HttpCompletionOption.ResponseContentRead).Result;
 | 
			
		||||
                resultsJson = httpResponseMessage.Content.ReadAsStringAsync().Result;
 | 
			
		||||
                results = JsonSerializer.Deserialize<Results>(resultsJson);
 | 
			
		||||
                results = JsonSerializer.Deserialize<Results>(resultsJson, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
 | 
			
		||||
            }
 | 
			
		||||
            if (!results.Success)
 | 
			
		||||
                results.Errors.Add(results.ToString());
 | 
			
		||||
@ -45,6 +45,7 @@ public partial class WS
 | 
			
		||||
                exception = exception.InnerException;
 | 
			
		||||
            }
 | 
			
		||||
            results.Errors ??= new List<string>();
 | 
			
		||||
            results.Errors.Add(resultsJson);
 | 
			
		||||
            results.Errors.Add(stringBuilder.ToString());
 | 
			
		||||
        }
 | 
			
		||||
        return new(resultsJson, results);
 | 
			
		||||
 | 
			
		||||
@ -40,7 +40,7 @@ public class EC : EAFLoggingUnitTesting
 | 
			
		||||
    [ClassCleanup()]
 | 
			
		||||
    public static void ClassCleanup()
 | 
			
		||||
    {
 | 
			
		||||
        EAFLoggingUnitTesting.Logger?.LogInformation("Cleanup");
 | 
			
		||||
        EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup");
 | 
			
		||||
        EAFLoggingUnitTesting?.Dispose();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -343,7 +343,7 @@ public class AdaptationTesting : ISMTP
 | 
			
		||||
        return result as T;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected static CellInstanceVersion GetCellInstanceVersion(string url)
 | 
			
		||||
    public static CellInstanceVersion GetCellInstanceVersion(string url)
 | 
			
		||||
    {
 | 
			
		||||
        CellInstanceVersion result;
 | 
			
		||||
        byte[] byteArray;
 | 
			
		||||
@ -874,7 +874,7 @@ public class AdaptationTesting : ISMTP
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected Dictionary<string, object> GetKeyValuePairs(string cellInstanceName, string cellInstanceVersionName, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, List<Tuple<string, string>> equipmentDictionaryIsAlwaysEnabledEvents)
 | 
			
		||||
    protected Dictionary<string, object> GetKeyValuePairs(string cellInstanceName, string cellInstanceVersionName, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, List<Tuple<string, string>> equipmentDictionaryIsAlwaysEnabledEvents, int edaConnectionPortNumber)
 | 
			
		||||
    {
 | 
			
		||||
        Dictionary<string, object> results = new()
 | 
			
		||||
        {
 | 
			
		||||
@ -883,6 +883,7 @@ public class AdaptationTesting : ISMTP
 | 
			
		||||
            { nameof(cellInstanceName), cellInstanceName },
 | 
			
		||||
            { nameof(equipmentTypeName), equipmentTypeName },
 | 
			
		||||
            { nameof(cellInstanceVersionName), cellInstanceVersionName },
 | 
			
		||||
            { nameof(edaConnectionPortNumber), edaConnectionPortNumber },
 | 
			
		||||
            { nameof(equipmentDictionaryName), equipmentDictionaryName },
 | 
			
		||||
            { nameof(cellInstanceConnectionName), cellInstanceConnectionName },
 | 
			
		||||
            { nameof(FileConnectorConfiguration), fileConnectorConfiguration },
 | 
			
		||||
@ -930,7 +931,7 @@ public class AdaptationTesting : ISMTP
 | 
			
		||||
        Tuple<string, IList<ModelObjectParameterDefinition>> modelObjectParametersTuple = GetModelObjectParameters(equipmentTypeVersionTuple);
 | 
			
		||||
        Tuple<string, string, string, EquipmentDictionaryVersion> equipmentDictionaryVersionTuple = GetEquipmentDictionaryVersionTuple(cellInstanceVersionTuple.Item2, mbn.CellInstanceConnectionName, equipmentTypeVersionTuple.Item4);
 | 
			
		||||
        Tuple<string, List<Tuple<string, string>>> equipmentDictionaryIsAlwaysEnabledEventsTuple = GetEquipmentDictionaryIsAlwaysEnabledEventsTuple(equipmentDictionaryVersionTuple);
 | 
			
		||||
        Dictionary<string, object> objects = GetKeyValuePairs(mbn.CellInstanceName, mbn.CellInstanceVersionName, mbn.CellInstanceConnectionName, fileConnectorConfigurationTuple.Item2, equipmentTypeVersionTuple.Item2, parameterizedModelObjectDefinitionTypeTuple.Item2, modelObjectParametersTuple.Item2, equipmentDictionaryVersionTuple.Item2, equipmentDictionaryIsAlwaysEnabledEventsTuple.Item2);
 | 
			
		||||
        Dictionary<string, object> objects = GetKeyValuePairs(mbn.CellInstanceName, mbn.CellInstanceVersionName, mbn.CellInstanceConnectionName, fileConnectorConfigurationTuple.Item2, equipmentTypeVersionTuple.Item2, parameterizedModelObjectDefinitionTypeTuple.Item2, modelObjectParametersTuple.Item2, equipmentDictionaryVersionTuple.Item2, equipmentDictionaryIsAlwaysEnabledEventsTuple.Item2, cellInstanceVersionTuple.Item2.EdaConnection.PortNumber);
 | 
			
		||||
        string json = JsonSerializer.Serialize(objects, new JsonSerializerOptions { WriteIndented = true });
 | 
			
		||||
        results = new string[] { fileInfo.FullName, json };
 | 
			
		||||
        return results;
 | 
			
		||||
@ -983,7 +984,7 @@ public class AdaptationTesting : ISMTP
 | 
			
		||||
                    _ = Directory.CreateDirectory(fileConnectorConfigurationTuple.Item2.AlternateTargetFolder);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        result = FileHandlers.CellInstanceConnectionName.Get(this, fileParameter, mbn.CellInstanceName, mbn.CellInstanceConnectionName, fileConnectorConfigurationTuple.Item2, equipmentTypeVersionTuple.Item2, parameterizedModelObjectDefinitionTypeTuple.Item2, modelObjectParametersTuple.Item2, equipmentDictionaryVersionTuple.Item2, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: false);
 | 
			
		||||
        result = FileHandlers.CellInstanceConnectionName.Get(this, fileParameter, mbn.CellInstanceName, mbn.CellInstanceConnectionName, fileConnectorConfigurationTuple.Item2, equipmentTypeVersionTuple.Item2, parameterizedModelObjectDefinitionTypeTuple.Item2, modelObjectParametersTuple.Item2, equipmentDictionaryVersionTuple.Item2, dummyRuns, staticRuns, useCyclicalForDescription, connectionCount: cellInstanceVersionTuple.Item2.EquipmentConnections.Length);
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -26,7 +26,7 @@ public class LoggingUnitTesting : UnitTesting, IDisposable
 | 
			
		||||
        base(testContext, declaringType)
 | 
			
		||||
    {
 | 
			
		||||
        _LoggerFactory = new LoggerFactory();
 | 
			
		||||
        if (testContext is null || declaringType is null)
 | 
			
		||||
        if (testContext is null || declaringType is null || _IsEnvironment is null)
 | 
			
		||||
        {
 | 
			
		||||
            _ConfigurationRoot = null;
 | 
			
		||||
            _DefaultLogLevel = null;
 | 
			
		||||
 | 
			
		||||
@ -29,40 +29,45 @@ public class UnitTesting
 | 
			
		||||
        {
 | 
			
		||||
            string waitFor = "\"WaitFor\":";
 | 
			
		||||
            string projectDirectory = GetProjectDirectory(testContext);
 | 
			
		||||
            _TestContextPropertiesAsJson = JsonSerializer.Serialize(testContext.Properties, new JsonSerializerOptions { WriteIndented = true });
 | 
			
		||||
            _HasWaitForProperty = _TestContextPropertiesAsJson.Contains(waitFor);
 | 
			
		||||
            string vsCodeDirectory = Path.Combine(projectDirectory, ".vscode");
 | 
			
		||||
            if (!Directory.Exists(vsCodeDirectory))
 | 
			
		||||
                _ = Directory.CreateDirectory(vsCodeDirectory);
 | 
			
		||||
            string launchText = GetLaunchText();
 | 
			
		||||
            File.WriteAllText(Path.Combine(vsCodeDirectory, "launch.json"), launchText);
 | 
			
		||||
            if (_HasWaitForProperty)
 | 
			
		||||
            if (string.IsNullOrEmpty(projectDirectory))
 | 
			
		||||
                _IsEnvironment = null;
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                for (int i = 0; i < int.MaxValue; i++)
 | 
			
		||||
                _TestContextPropertiesAsJson = JsonSerializer.Serialize(testContext.Properties, new JsonSerializerOptions { WriteIndented = true });
 | 
			
		||||
                _HasWaitForProperty = _TestContextPropertiesAsJson.Contains(waitFor);
 | 
			
		||||
                string vsCodeDirectory = Path.Combine(projectDirectory, ".vscode");
 | 
			
		||||
                if (!Directory.Exists(vsCodeDirectory))
 | 
			
		||||
                    _ = Directory.CreateDirectory(vsCodeDirectory);
 | 
			
		||||
                string launchText = GetLaunchText();
 | 
			
		||||
                File.WriteAllText(Path.Combine(vsCodeDirectory, "launch.json"), launchText);
 | 
			
		||||
                if (_HasWaitForProperty)
 | 
			
		||||
                {
 | 
			
		||||
                    if (!_TestContextPropertiesAsJson.Contains($"{waitFor} \"Debugger.IsAttached\"") || Debugger.IsAttached)
 | 
			
		||||
                        break;
 | 
			
		||||
                    Thread.Sleep(500);
 | 
			
		||||
                    for (int i = 0; i < int.MaxValue; i++)
 | 
			
		||||
                    {
 | 
			
		||||
                        if (!_TestContextPropertiesAsJson.Contains($"{waitFor} \"Debugger.IsAttached\"") || Debugger.IsAttached)
 | 
			
		||||
                            break;
 | 
			
		||||
                        Thread.Sleep(500);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            MethodBase methodBase = declaringType.GetMethod(testContext.TestName);
 | 
			
		||||
            if (methodBase is not null)
 | 
			
		||||
            {
 | 
			
		||||
                TestCategoryAttribute testCategoryAttribute = methodBase.GetCustomAttribute<TestCategoryAttribute>();
 | 
			
		||||
                if (testCategoryAttribute is not null)
 | 
			
		||||
                MethodBase methodBase = declaringType.GetMethod(testContext.TestName);
 | 
			
		||||
                if (methodBase is not null)
 | 
			
		||||
                {
 | 
			
		||||
                    foreach (string testCategory in testCategoryAttribute.TestCategories)
 | 
			
		||||
                        _IsEnvironment = new IsEnvironment(testCategory);
 | 
			
		||||
                    TestCategoryAttribute testCategoryAttribute = methodBase.GetCustomAttribute<TestCategoryAttribute>();
 | 
			
		||||
                    if (testCategoryAttribute is not null)
 | 
			
		||||
                    {
 | 
			
		||||
                        foreach (string testCategory in testCategoryAttribute.TestCategories)
 | 
			
		||||
                            _IsEnvironment = new IsEnvironment(testCategory);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                _IsEnvironment ??= new IsEnvironment(processesCount: null, nullASPNetCoreEnvironmentIsDevelopment: Debugger.IsAttached, nullASPNetCoreEnvironmentIsProduction: !Debugger.IsAttached);
 | 
			
		||||
            }
 | 
			
		||||
            _IsEnvironment ??= new IsEnvironment(processesCount: null, nullASPNetCoreEnvironmentIsDevelopment: Debugger.IsAttached, nullASPNetCoreEnvironmentIsProduction: !Debugger.IsAttached);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    internal static string GetProjectDirectory(TestContext testContext)
 | 
			
		||||
    {
 | 
			
		||||
        string result;
 | 
			
		||||
        string[] checkFiles = null;
 | 
			
		||||
        string[] checkFiles;
 | 
			
		||||
        result = Path.GetDirectoryName(testContext.DeploymentDirectory);
 | 
			
		||||
        for (int i = 0; i < int.MaxValue; i++)
 | 
			
		||||
        {
 | 
			
		||||
@ -73,8 +78,6 @@ public class UnitTesting
 | 
			
		||||
                break;
 | 
			
		||||
            result = Path.GetDirectoryName(result);
 | 
			
		||||
        }
 | 
			
		||||
        if (string.IsNullOrEmpty(result) || checkFiles is null || !checkFiles.Any())
 | 
			
		||||
            throw new Exception(result);
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										88
									
								
								Adaptation/_Tests/Static/EC.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								Adaptation/_Tests/Static/EC.cs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,88 @@
 | 
			
		||||
using Adaptation._Tests.Shared;
 | 
			
		||||
using Microsoft.Extensions.Logging;
 | 
			
		||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Diagnostics;
 | 
			
		||||
using System.IO;
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
using System.Text;
 | 
			
		||||
 | 
			
		||||
namespace Adaptation._Tests.Static;
 | 
			
		||||
 | 
			
		||||
[TestClass]
 | 
			
		||||
public class EC : LoggingUnitTesting, IDisposable
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
#pragma warning disable CA2254
 | 
			
		||||
#pragma warning disable IDE0060
 | 
			
		||||
 | 
			
		||||
    internal static EC LoggingUnitTesting { get; private set; }
 | 
			
		||||
 | 
			
		||||
    public EC() : base(testContext: null, declaringType: null)
 | 
			
		||||
    {
 | 
			
		||||
        if (LoggingUnitTesting is null)
 | 
			
		||||
            throw new Exception();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public EC(TestContext testContext) : base(testContext, new StackFrame().GetMethod().DeclaringType)
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [ClassInitialize]
 | 
			
		||||
    public static void ClassInitialize(TestContext testContext) => LoggingUnitTesting ??= new EC(testContext);
 | 
			
		||||
 | 
			
		||||
    [ClassCleanup()]
 | 
			
		||||
    public static void ClassCleanup()
 | 
			
		||||
    {
 | 
			
		||||
        LoggingUnitTesting?.Logger?.LogInformation("Cleanup");
 | 
			
		||||
        LoggingUnitTesting?.Dispose();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void TestDateTime()
 | 
			
		||||
    {
 | 
			
		||||
        DateTime dateTime = DateTime.Now;
 | 
			
		||||
        Assert.IsTrue(dateTime.ToString("M/d/yyyy h:mm:ss tt") == dateTime.ToString());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void Staging()
 | 
			
		||||
    {
 | 
			
		||||
        MethodBase methodBase = new StackFrame().GetMethod();
 | 
			
		||||
        StringBuilder results = new();
 | 
			
		||||
        (string cellInstanceName, string cellInstanceVersionName)[] collection = new (string, string)[]
 | 
			
		||||
        {
 | 
			
		||||
            new("EC", "v2.43.0"),
 | 
			
		||||
        };
 | 
			
		||||
        string staging = "http://mestsa07ec.ec.local:9003/CellInstanceServiceV2";
 | 
			
		||||
        Shared.PasteSpecialXml.EAF.XML.API.CellInstance.CellInstanceVersion cellInstanceVersion;
 | 
			
		||||
        LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
 | 
			
		||||
        foreach ((string cellInstanceName, string cellInstanceVersionName) in collection)
 | 
			
		||||
        {
 | 
			
		||||
            cellInstanceVersion = AdaptationTesting.GetCellInstanceVersion($"{staging}/{cellInstanceName}/{cellInstanceVersionName}/configuration");
 | 
			
		||||
            _ = results.AppendLine($"{cellInstanceName}\t{cellInstanceVersionName}\t{cellInstanceVersion.EdaConnection.PortNumber}");
 | 
			
		||||
        }
 | 
			
		||||
        File.WriteAllText($"D:/Tmp/{methodBase.Module.Name}-{methodBase.ReflectedType.Name}-{methodBase.Name}.tsv", results.ToString());
 | 
			
		||||
        LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if DEBUG
 | 
			
		||||
    [Ignore]
 | 
			
		||||
#endif
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
    public void CellInstanceVersionEdaConnectionPortNumber()
 | 
			
		||||
    {
 | 
			
		||||
        MethodBase methodBase = new StackFrame().GetMethod();
 | 
			
		||||
        StringBuilder results = new();
 | 
			
		||||
        LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
 | 
			
		||||
        string[] files = Directory.GetFiles("D:/Tmp", "*.tsv", SearchOption.TopDirectoryOnly);
 | 
			
		||||
        foreach (string file in files)
 | 
			
		||||
            _ = results.Append(File.ReadAllText(file));
 | 
			
		||||
        File.WriteAllText($"D:/Tmp/all.tsv", results.ToString());
 | 
			
		||||
        LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -11,7 +11,8 @@
 | 
			
		||||
    <RootNamespace>EC</RootNamespace>
 | 
			
		||||
    <AssemblyName>EC</AssemblyName>
 | 
			
		||||
    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
 | 
			
		||||
    <RuntimeIdentifier>win-x86</RuntimeIdentifier>
 | 
			
		||||
    <RuntimeIdentifier Condition="'$(Configuration)' == 'Debug'">win-x86</RuntimeIdentifier>
 | 
			
		||||
    <RuntimeIdentifier Condition="'$(Configuration)' == 'Release'">win</RuntimeIdentifier>
 | 
			
		||||
    <FileAlignment>512</FileAlignment>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup>
 | 
			
		||||
@ -150,7 +151,7 @@
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <PackageReference Include="Infineon.EAF.Runtime">
 | 
			
		||||
      <Version>2.47.0</Version>
 | 
			
		||||
      <Version>2.49.0</Version>
 | 
			
		||||
    </PackageReference>
 | 
			
		||||
    <PackageReference Include="System.Text.Json">
 | 
			
		||||
      <Version>6.0.3</Version>
 | 
			
		||||
 | 
			
		||||
@ -197,7 +197,7 @@ public partial class FileRead : FileReaderHandler, ISMTP
 | 
			
		||||
        FileConnectorConfiguration fileConnectorConfiguration = Mapper.Map(Configuration);
 | 
			
		||||
        string parameterizedModelObjectDefinitionType = methodBase.DeclaringType.FullName;
 | 
			
		||||
        IList<ModelObjectParameterDefinition> modelObjectParameters = Mapper.Map(ConfiguredParameters);
 | 
			
		||||
        _FileRead = CellInstanceConnectionName.Get(this, FileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, _DummyRuns, _StaticRuns, _UseCyclicalForDescription, isEAFHosted: true);
 | 
			
		||||
        _FileRead = CellInstanceConnectionName.Get(this, FileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, _DummyRuns, _StaticRuns, _UseCyclicalForDescription, connectionCount: null);
 | 
			
		||||
        if (_FileRead.IsEvent)
 | 
			
		||||
            AddParameterRangeAndEvent();
 | 
			
		||||
    }
 | 
			
		||||
@ -338,7 +338,7 @@ public partial class FileRead : FileReaderHandler, ISMTP
 | 
			
		||||
        if (modelObjectParameterDefinitionJsonElement.ValueKind != JsonValueKind.Array)
 | 
			
		||||
            throw new Exception();
 | 
			
		||||
        IList<ModelObjectParameterDefinition> modelObjectParameters = JsonSerializer.Deserialize<IList<ModelObjectParameterDefinition>>(modelObjectParameterDefinitionJsonElement.ToString(), jsonSerializerOptions);
 | 
			
		||||
        _FileRead = CellInstanceConnectionName.Get(this, FileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, _DummyRuns, _StaticRuns, _UseCyclicalForDescription, isEAFHosted: false);
 | 
			
		||||
        _FileRead = CellInstanceConnectionName.Get(this, FileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, _DummyRuns, _StaticRuns, _UseCyclicalForDescription, connectionCount: null);
 | 
			
		||||
        results = _FileRead.ReExtract();
 | 
			
		||||
        if (results?.Item2 is null)
 | 
			
		||||
            throw new Exception();
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										172
									
								
								Jenkinsfile
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										172
									
								
								Jenkinsfile
									
									
									
									
										vendored
									
									
								
							@ -1,172 +0,0 @@
 | 
			
		||||
#!/usr/bin/env groovy
 | 
			
		||||
/* groovylint-disable CompileStatic, ConsecutiveStringConcatenation, DuplicateNumberLiteral, DuplicateStringLiteral, LineLength, NestedBlockDepth, NoDef, VariableTypeRequired */
 | 
			
		||||
import groovy.transform.Field
 | 
			
		||||
 | 
			
		||||
@Field String _DDrive = 'D:/'
 | 
			
		||||
@Field String _GitName = 'EC'
 | 
			
		||||
@Field String _AssemblyName = '...'
 | 
			
		||||
@Field String _TargetLocation = '...'
 | 
			
		||||
@Field String _GitCommitSeven = '...'
 | 
			
		||||
@Field String _TestProjectDirectory = 'Adaptation'
 | 
			
		||||
@Field String _AgentStaging = 'mestsa07ec-ecmeseaf'
 | 
			
		||||
@Field String _DDriveNet = "${_DDrive}Framework4.8"
 | 
			
		||||
@Field String _AgentProduction = 'messa08ec-ecmeseaf'
 | 
			
		||||
@Field String _AgentDevelopment = 'mestsa003-mesedasvc'
 | 
			
		||||
@Field String _ProgramFilesDotnet = 'C:/Program Files/dotnet/dotnet.exe'
 | 
			
		||||
@Field String _ProgramFilesMSBuild = 'C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe'
 | 
			
		||||
 | 
			
		||||
pipeline {
 | 
			
		||||
    agent {
 | 
			
		||||
        label env.JENKINS_ENVIRONMENT == 'Development' ? _AgentDevelopment : env.JENKINS_ENVIRONMENT == 'Staging' ? _AgentStaging : env.JENKINS_ENVIRONMENT == 'Production' ? _AgentProduction : 'Else'
 | 
			
		||||
    }
 | 
			
		||||
    parameters {
 | 
			
		||||
        string(name: 'GIT_SERVER', defaultValue: env.JENKINS_ENVIRONMENT == 'Development' ? 'mestsa003.infineon.com' : 'mestsa07ec.ec.local', description: 'git server')
 | 
			
		||||
        string(name: 'DEFAULT_FILE_SERVER', defaultValue: env.JENKINS_ENVIRONMENT == 'Development' ? 'messv02ecc1_ec_local' : 'messv02ecc1.ec.local', description: 'Default file server...')
 | 
			
		||||
    }
 | 
			
		||||
    stages {
 | 
			
		||||
        // stage('Git') {
 | 
			
		||||
        //     steps {
 | 
			
		||||
        //         bat(returnStatus: true, script: 'git init')
 | 
			
		||||
        //         bat(returnStatus: true, script: 'git remote add origin \\\\' + params.GIT_SERVER + '\\Git\\' + _GitName + '.git')
 | 
			
		||||
        //         bat(returnStatus: true, script: 'git pull origin master')
 | 
			
		||||
        //     }
 | 
			
		||||
        // }
 | 
			
		||||
        stage('Setup') {
 | 
			
		||||
            steps {
 | 
			
		||||
                script {
 | 
			
		||||
                    _AssemblyName = "${env.JOB_NAME}"
 | 
			
		||||
                    // _GitCommitSeven = '1234567'
 | 
			
		||||
                    _GitCommitSeven = env.GIT_COMMIT.substring(0, 7)
 | 
			
		||||
                    def files = findFiles(glob: '*.csproj')
 | 
			
		||||
                    if (files.length != 1) {
 | 
			
		||||
                        error("Build failed because couldn't find a *.csproj file")
 | 
			
		||||
                    }
 | 
			
		||||
                    echo """
 | 
			
		||||
                        ${files[0].name}
 | 
			
		||||
                        ${files[0].path}
 | 
			
		||||
                        ${files[0].directory}
 | 
			
		||||
                        ${files[0].length}
 | 
			
		||||
                        ${files[0].lastModified}
 | 
			
		||||
                        """
 | 
			
		||||
                    _AssemblyName = files[0].name.split('[.]csproj')[0]
 | 
			
		||||
                    _TargetLocation = "\\\\${params.DEFAULT_FILE_SERVER}\\EC_EAFRepository\\${env.JENKINS_ENVIRONMENT}\\DeploymentStorage\\Adaptation_${_AssemblyName}"
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        stage('Info') {
 | 
			
		||||
            steps {
 | 
			
		||||
                echo "_AssemblyName ${_AssemblyName}" // ...
 | 
			
		||||
                echo "BUILD_NUMBER ${env.BUILD_NUMBER}" // 11
 | 
			
		||||
                echo "DEFAULT_FILE_SERVER ${params.DEFAULT_FILE_SERVER}" // 11
 | 
			
		||||
                echo "GIT_BRANCH ${env.GIT_BRANCH}" // origin/master
 | 
			
		||||
                echo "GIT_COMMIT ${env.GIT_COMMIT}" // 73b814069f2cf0173a62a8228815a9bc9ba93c41
 | 
			
		||||
                echo "GIT_SERVER ${params.GIT_SERVER}" // ...
 | 
			
		||||
                echo "GIT_URL ${env.GIT_URL}" // D:\ProgramData\Git\....git
 | 
			
		||||
                echo "JENKINS_ENVIRONMENT ${env.JENKINS_ENVIRONMENT}" // 11
 | 
			
		||||
                echo "JENKINS_URL ${env.JENKINS_URL}" // http://localhost:8080/
 | 
			
		||||
                echo "JOB_NAME ${env.JOB_NAME}" // ...
 | 
			
		||||
                echo "WORKSPACE ${env.WORKSPACE}" // D:\.jenkins\_\...
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        // stage('Restore') {
 | 
			
		||||
        //     steps {
 | 
			
		||||
        //         bat(returnStatus: true, script: 'dotnet --info')
 | 
			
		||||
        //     }
 | 
			
		||||
        // }
 | 
			
		||||
        stage('Safe storage of app secrets') {
 | 
			
		||||
            steps {
 | 
			
		||||
                dir(_TestProjectDirectory) {
 | 
			
		||||
                    bat(returnStatus: true, script: '"' + _ProgramFilesDotnet + '" ' +
 | 
			
		||||
                        'user-secrets init')
 | 
			
		||||
                    bat(returnStatus: true, script: '"' + _ProgramFilesDotnet + '" ' +
 | 
			
		||||
                        'user-secrets set "BuildNumber" "' + env.BUILD_NUMBER + '"')
 | 
			
		||||
                    bat(returnStatus: true, script: '"' + _ProgramFilesDotnet + '" ' +
 | 
			
		||||
                        'user-secrets set "GitCommitSeven" "' + _GitCommitSeven + '"')
 | 
			
		||||
                    bat(returnStatus: true, script: '"' + _ProgramFilesDotnet + '" ' +
 | 
			
		||||
                        'user-secrets set "Server" "' + params.DEFAULT_FILE_SERVER + '"')
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        stage('Core Build') {
 | 
			
		||||
            steps {
 | 
			
		||||
                echo "Build number is ${currentBuild.number}"
 | 
			
		||||
                dir(_TestProjectDirectory) {
 | 
			
		||||
                    bat(returnStatus: true, script: '"' + _ProgramFilesDotnet + '" ' +
 | 
			
		||||
                        'build --runtime win-x64 --self-contained --verbosity quiet')
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        // stage('Test') {
 | 
			
		||||
        //     options {
 | 
			
		||||
        //         timeout(time: 10, unit: 'MINUTES')
 | 
			
		||||
        //     }
 | 
			
		||||
        //     steps {
 | 
			
		||||
        //         dir(_TestProjectDirectory) {
 | 
			
		||||
        //             bat('dotnet --info')
 | 
			
		||||
        //         }
 | 
			
		||||
        //     }
 | 
			
		||||
        // }
 | 
			
		||||
        stage('Framework Build') {
 | 
			
		||||
            steps {
 | 
			
		||||
                echo "Build number is ${currentBuild.number}"
 | 
			
		||||
                bat(returnStatus: true, script: '"' + _ProgramFilesMSBuild + '" ' +
 | 
			
		||||
                    '/target:Restore ' +
 | 
			
		||||
                    '/detailedsummary ' +
 | 
			
		||||
                    '/consoleloggerparameters:PerformanceSummary;ErrorsOnly; ' +
 | 
			
		||||
                    '/property:Configuration=Debug;TargetFrameworkVersion=v4.8 ' +
 | 
			
		||||
                    _AssemblyName + '.csproj')
 | 
			
		||||
                bat(returnStatus: true, script: '"' + _ProgramFilesMSBuild + '" ' +
 | 
			
		||||
                    '/target:Build ' +
 | 
			
		||||
                    '/detailedsummary ' +
 | 
			
		||||
                    '/consoleloggerparameters:PerformanceSummary;ErrorsOnly; ' +
 | 
			
		||||
                    '/property:Configuration=Debug;TargetFrameworkVersion=v4.8 ' +
 | 
			
		||||
                    _AssemblyName + '.csproj')
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        stage('Commit Id') {
 | 
			
		||||
            steps {
 | 
			
		||||
                dir('bin/Debug') {
 | 
			
		||||
                    writeFile file: "${_AssemblyName}.txt", text: "${env.GIT_COMMIT}-${env.BUILD_NUMBER}-${env.GIT_URL}"
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        stage('Package') {
 | 
			
		||||
            steps {
 | 
			
		||||
                fileOperations([fileZipOperation(folderPath: 'bin/Debug', outputFolderPath: "${_DDriveNet}/${_GitCommitSeven}-${env.BUILD_NUMBER}-${env.JOB_NAME}-Debug")])
 | 
			
		||||
                fileOperations([fileCopyOperation(excludes: '', flattenFiles: true, includes: "${_AssemblyName}*", renameFiles: false, sourceCaptureExpression: '', targetLocation: "${_DDriveNet}/${_GitCommitSeven}-${env.BUILD_NUMBER}-${env.JOB_NAME}-Debug", targetNameExpression: '')])
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        // stage('Force Fail') {
 | 
			
		||||
        //     steps {
 | 
			
		||||
        //         error("Build failed because of this and that..")
 | 
			
		||||
        //     }
 | 
			
		||||
        // }
 | 
			
		||||
        stage('Copy Files to: file-share') {
 | 
			
		||||
            steps {
 | 
			
		||||
                dir('bin/Debug') {
 | 
			
		||||
                    fileOperations([fileCopyOperation(excludes: '', flattenFiles: true, includes: "${_AssemblyName}*.txt", renameFiles: false, sourceCaptureExpression: '', targetLocation: _TargetLocation, targetNameExpression: '')])
 | 
			
		||||
                    fileOperations([fileCopyOperation(excludes: '', flattenFiles: true, includes: "${_AssemblyName}*.dll", renameFiles: false, sourceCaptureExpression: '', targetLocation: _TargetLocation, targetNameExpression: '')])
 | 
			
		||||
                    fileOperations([fileCopyOperation(excludes: '', flattenFiles: true, includes: "${_AssemblyName}*.exe", renameFiles: false, sourceCaptureExpression: '', targetLocation: _TargetLocation, targetNameExpression: '')])
 | 
			
		||||
                    fileOperations([fileCopyOperation(excludes: '', flattenFiles: true, includes: "${_AssemblyName}*.pdb", renameFiles: false, sourceCaptureExpression: '', targetLocation: _TargetLocation, targetNameExpression: '')])
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    post {
 | 
			
		||||
        always {
 | 
			
		||||
            dir('bin') {
 | 
			
		||||
                deleteDir()
 | 
			
		||||
            }
 | 
			
		||||
            dir('obj') {
 | 
			
		||||
                deleteDir()
 | 
			
		||||
            }
 | 
			
		||||
            dir(_TestProjectDirectory + '/bin') {
 | 
			
		||||
                deleteDir()
 | 
			
		||||
            }
 | 
			
		||||
            dir(_TestProjectDirectory + '/obj') {
 | 
			
		||||
                deleteDir()
 | 
			
		||||
            }
 | 
			
		||||
            cleanWs()
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
 | 
			
		||||
// You can specify all the values or you can default the Build and Revision Numbers 
 | 
			
		||||
// by using the '*' as shown below:
 | 
			
		||||
// [assembly: AssemblyVersion("1.0.*")]
 | 
			
		||||
[assembly: AssemblyVersion("2.47.0.0")]
 | 
			
		||||
[assembly: AssemblyFileVersion("2.47.0.0")]
 | 
			
		||||
[assembly: AssemblyVersion("2.49.0.0")]
 | 
			
		||||
[assembly: AssemblyFileVersion("2.49.0.0")]
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user