Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4bae07e9f8 | |||
| 43d51c56b1 |
-19
@@ -148,18 +148,12 @@ publish/
|
||||
|
||||
# NuGet Packages
|
||||
*.nupkg
|
||||
# NuGet Symbol Packages
|
||||
*.snupkg
|
||||
# The packages folder can be ignored because of Package Restore
|
||||
**/[Pp]ackages/*
|
||||
**/packages/*
|
||||
# except build/, which is used as an MSBuild target.
|
||||
!**/packages/build/
|
||||
# Uncomment if necessary however generally it will be regenerated when needed
|
||||
#!**/packages/repositories.config
|
||||
# NuGet v3's project.json files produces more ignorable files
|
||||
*.nuget.props
|
||||
*.nuget.targets
|
||||
|
||||
# Windows Azure Build Output
|
||||
csx/
|
||||
@@ -336,16 +330,3 @@ _UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
|
||||
# esclusioni gestione IOB-WIN-PYTHON
|
||||
IOB-WIN-PSER/logs/logfile.txt*
|
||||
IOB-WIN-PSER/dist/logTest/*
|
||||
IOB-WIN-PSER/dist/IOB-WIN-PSER/*
|
||||
IOB-WIN-PSER/logs/*/*.txt
|
||||
IOB-WIN-PSER/dist/CONF/*.cfg
|
||||
IOB-WIN-PSER/dist/logs/*/*.txt
|
||||
IOB-WIN-PSER/dist/*.exe
|
||||
IOB-WIN-PSER/dist-nuitka/*.exe
|
||||
IOB-WIN-PSER.build/
|
||||
IOB-WIN-PSER.dist/
|
||||
IOB-WIN-PSER.onefile-build/
|
||||
|
||||
|
||||
+531
-381
@@ -6,27 +6,31 @@ variables:
|
||||
NUM_REL: '0.1.2.3'
|
||||
NUM_DEB: '0.1.2-beta.3'
|
||||
CONFIG: ''
|
||||
VERS_MAIN: '3.9'
|
||||
VERS_MAIN: '3.6'
|
||||
NEW_REL: ''
|
||||
OUTPUT_DIR: ''
|
||||
NET_SHARE_X: '\\codedoc.egalware.com\library'
|
||||
NET_USER_X: 'gitlab'
|
||||
NEXUS_PATH: 'MAPO/IOB-WIN-NEXT'
|
||||
URL_VERSIONS_LOG: "https://liman.egalware.com/ELM.API/api/release/save"
|
||||
CRITICAL_STRING: "#critical#"
|
||||
|
||||
# ---------------------------------------------
|
||||
# Helper section
|
||||
# ---------------------------------------------
|
||||
|
||||
# helpder gestione replica documento docfx
|
||||
.DocReplica: &DocReplica
|
||||
- |
|
||||
net use A: /delete
|
||||
net use A: $env:NET_SHARE_X /u:$env:NET_USER_X $XDRIVE_PASSWD
|
||||
ROBOCOPY docfx A:\$env:APP_NAME /MIR /XF .git* /XD .git
|
||||
net use X: /delete
|
||||
net use X: $env:NET_SHARE_X /u:$env:NET_USER_X $XDRIVE_PASSWD
|
||||
ROBOCOPY docfx X:\$env:APP_NAME /MIR /XF .git* /XD .git
|
||||
SLEEP 2
|
||||
net use A: /delete
|
||||
net use X: /delete
|
||||
|
||||
# helper x fix pacchetti nuget da repo locale nexus.steamware.net
|
||||
.nuget-fix: &nuget-fix
|
||||
- |
|
||||
$hasSource = C:\Tools\nuget.exe sources list | find "`"Steamware Nexus`"" /C
|
||||
if ($hasSource -eq 0) {
|
||||
C:\Tools\nuget.exe sources Add -Name "`"Steamware Nexus`"" -Source https://nexus.steamware.net/repository/nuget-group -username "`"nugetUser`"" -password "`"$NEXUS_PASSWD`""
|
||||
} else {
|
||||
C:\Tools\nuget.exe sources Update -Name "`"Steamware Nexus`"" -Source https://nexus.steamware.net/repository/nuget-group -username "`"nugetUser`"" -password "`"$NEXUS_PASSWD`""
|
||||
}
|
||||
echo $hasSource
|
||||
|
||||
# helper x fix version number
|
||||
.version-fix: &version-fix
|
||||
@@ -91,7 +95,7 @@ variables:
|
||||
$Source = "*"
|
||||
7zip a -tzip $Target $Source -xr!DATA\CONF
|
||||
echo "called ZIP $Source --> $Target"
|
||||
|
||||
|
||||
# helper creazione hash files
|
||||
.hashBuild: &hashBuild
|
||||
- |
|
||||
@@ -104,7 +108,6 @@ variables:
|
||||
$SHA1.Hash | Set-Content -Path $Target".sha1"
|
||||
echo "Created HASH files for $Target"
|
||||
|
||||
# helper upload su nexus
|
||||
.nexusUpload: &nexusUpload
|
||||
- |
|
||||
Set-Alias mCurl C:\Windows\system32\curl.exe
|
||||
@@ -130,421 +133,568 @@ variables:
|
||||
$FileName = Split-Path $File -leaf
|
||||
mCurl -v -u GitLab:$NEXUS_PASSWD --upload-file $File https://nexus.steamware.net/repository/utility/MAPO/$env:APP_NAME/$version/$FileName
|
||||
}
|
||||
# mCurl -v -u GitLab:$NEXUS_PASSWD --upload-file "Resources\manifest.xml" https://nexus.steamware.net/repository/SWS/$env:NEXUS_PATH/$version/LAST/manifest.xml
|
||||
# mCurl -v -u GitLab:$NEXUS_PASSWD --upload-file "Resources\ChangeLog.html" https://nexus.steamware.net/repository/SWS/$env:NEXUS_PATH/$version/LAST/ChangeLog.html
|
||||
# mCurl -v -u $env:NEXUS_USER:$env:NEXUS_PASSWD --upload-file bin/release/$env:APP_NAME.zip $env:NEXUS_SERVER/utility/$env:NEXUS_PATH/$version/$env:APP_NAME-$version.zip
|
||||
|
||||
# helper invio notifica a log versioni online (LiMan)
|
||||
.SendToVersionsLog: &SendToVersionsLog
|
||||
- |
|
||||
echo "----------------------------------------------"
|
||||
echo " Invio versione a Liman x log online"
|
||||
echo "----------------------------------------------"
|
||||
$tags = ""
|
||||
# se critico scrive tag
|
||||
if ( $CI_COMMIT_MESSAGE | Select-String -Pattern $env:CRITICAL_STRING) {
|
||||
$tags = "CRITICAL"
|
||||
}
|
||||
$date = (Get-Date).toString("yyyy-MM-ddTHH:mm:ss.fffZ")
|
||||
$body =
|
||||
@{
|
||||
codInst = "EgalWare"
|
||||
codApp = $env:APP_NAME
|
||||
uplAppId = "UpdateManager"
|
||||
masterKey = $LiMan_Key
|
||||
tipo = "WinApp"
|
||||
versNum = $env:NEW_REL
|
||||
versText = $env:NEW_REL
|
||||
releaseDate = $date
|
||||
relTags = $tags
|
||||
}
|
||||
$jsonBody = ConvertTo-Json -InputObject $body
|
||||
echo $jsonBody
|
||||
Invoke-WebRequest -Method Post -URI $env:URL_VERSIONS_LOG -ContentType "application/json" -Body $jsonBody -UseBasicParsing
|
||||
|
||||
stages:
|
||||
- build
|
||||
- staging
|
||||
- release
|
||||
- docfx
|
||||
|
||||
# ---------------------------------------------
|
||||
# BASE stage object (gestiti con extends)
|
||||
# ---------------------------------------------
|
||||
.base_build:
|
||||
stage: build
|
||||
tags:
|
||||
- win
|
||||
before_script:
|
||||
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
|
||||
#- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" --source "nexus-proxy-v3" --source "nexus-hosted" --username "nugetUser" --password "$env:NEXUS_PASSWD" -verbosity quiet'
|
||||
- *version-fix
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=Release /p:Platform="x86" /p:OutputPath=bin/ /nodeReuse:false /verbosity:minimal /m'
|
||||
|
||||
.base_rules:
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == 'master'
|
||||
changes:
|
||||
- ${APP_NAME}/*
|
||||
- ${APP_NAME}/**/*
|
||||
when: always
|
||||
|
||||
.base_release:
|
||||
stage: release
|
||||
tags:
|
||||
- win
|
||||
before_script:
|
||||
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
|
||||
#- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" --source "nexus-proxy-v3" --source "nexus-hosted" --username "nugetUser" --password "$env:NEXUS_PASSWD" -verbosity quiet'
|
||||
- *version-fix
|
||||
- *cleanup-zip
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=Release /p:Platform="x86" /p:OutputPath=bin/ /nodeReuse:false /verbosity:minimal /m'
|
||||
- *zipper
|
||||
- *hashBuild
|
||||
- *nexusUpload
|
||||
- *SendToVersionsLog
|
||||
|
||||
.base_docfx:
|
||||
stage: docfx
|
||||
tags:
|
||||
- win
|
||||
before_script:
|
||||
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
|
||||
#- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" --source "nexus-proxy-v3" --source "nexus-hosted" --username "nugetUser" --password "$env:NEXUS_PASSWD" -verbosity quiet'
|
||||
# docfx 2.73.x/2.75.x: usano il BuildHost .NET Core SDK (compatibile con qualsiasi MSBuild).
|
||||
# Le versioni 2.76+ usano il BuildHost net472 contro la VS piu' recente e falliscono
|
||||
# con TypeLoadException ('DisposeAsync' di ProjectCacheService) se la VS piu' recente
|
||||
# non e' compatibile con l'MSBuild incluso in docfx.
|
||||
- 'dotnet tool install docfx --version 2.73.0 --tool-path "docfx-tools" --source https://api.nuget.org/v3/index.json'
|
||||
script:
|
||||
- '& "docfx-tools\docfx.exe" $env:APP_NAME/docfx.json'
|
||||
- mv $env:APP_NAME/_site "docfx"
|
||||
- *DocReplica
|
||||
|
||||
# --------------------------------
|
||||
# BUILD
|
||||
# --------------------------------
|
||||
IOB-MAN:build:
|
||||
stage: build
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
APP_NAME: IOB-MAN
|
||||
only:
|
||||
refs:
|
||||
- develop
|
||||
- main
|
||||
- master
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
|
||||
- *version-fix
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=Release /p:Platform="x86" /p:OutputPath=bin/ /verbosity:minimal /m'
|
||||
|
||||
IOB-WIN:build:
|
||||
extends: .base_build
|
||||
variables:
|
||||
APP_NAME: IOB-WIN
|
||||
|
||||
IOB-WIN-FANUC:build:
|
||||
extends: .base_build
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-FANUC
|
||||
|
||||
IOB-WIN-FILE:build:
|
||||
extends: .base_build
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-FILE
|
||||
|
||||
IOB-WIN-FTP:build:
|
||||
extends: .base_build
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-FTP
|
||||
|
||||
IOB-WIN-KAWASAKI:build:
|
||||
extends: .base_build
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-KAWASAKI
|
||||
|
||||
IOB-WIN-MBUS:build:
|
||||
extends: .base_build
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-MBUS
|
||||
|
||||
IOB-WIN-MITSUBISHI:build:
|
||||
extends: .base_build
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-MITSUBISHI
|
||||
|
||||
IOB-WIN-MTC:build:
|
||||
extends: .base_build
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-MTC
|
||||
|
||||
stage: build
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
APP_NAME: IOB-WIN
|
||||
only:
|
||||
refs:
|
||||
- develop
|
||||
- main
|
||||
- master
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
|
||||
- *version-fix
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=Release /p:Platform="x86" /p:OutputPath=bin/ /nodeReuse:false /verbosity:minimal /m'
|
||||
|
||||
IOB-WIN-NEXT:build:
|
||||
extends: .base_build
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-NEXT
|
||||
stage: build
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-NEXT
|
||||
only:
|
||||
refs:
|
||||
- develop
|
||||
- main
|
||||
- master
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
|
||||
- *version-fix
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=Release /p:Platform="x86" /p:OutputPath=bin/ /nodeReuse:false /verbosity:minimal /m'
|
||||
|
||||
IOB-WIN-OMRON:build:
|
||||
extends: .base_build
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-OMRON
|
||||
EgwProxy.Ftp:build:
|
||||
stage: build
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
APP_NAME: EgwProxy.Ftp
|
||||
only:
|
||||
refs:
|
||||
- develop
|
||||
- SDK/Ftp
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
|
||||
- *version-fix
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=Release /p:Platform="x86" /p:OutputPath=bin/ /nodeReuse:false /verbosity:minimal /m'
|
||||
|
||||
IOB-WIN-OPC-UA:build:
|
||||
extends: .base_build
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-OPC-UA
|
||||
EgwProxy.Icoel:build:
|
||||
stage: build
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
APP_NAME: EgwProxy.Icoel
|
||||
only:
|
||||
refs:
|
||||
- develop
|
||||
- SDK/Icoel
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
|
||||
- *version-fix
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=Release /p:Platform="x86" /p:OutputPath=bin/ /nodeReuse:false /verbosity:minimal /m'
|
||||
|
||||
IOB-WIN-OSAI:build:
|
||||
extends: .base_build
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-OSAI
|
||||
EgwProxy.MultiCncLib:build:
|
||||
stage: build
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
APP_NAME: EgwProxy.MultiCncLib
|
||||
only:
|
||||
refs:
|
||||
- develop
|
||||
- SDK/MultiCnc
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
|
||||
- *version-fix
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.vbproj" -target:Build /p:Configuration=Release /p:Platform="x86" /p:OutputPath=bin/ /nodeReuse:false /verbosity:minimal /m'
|
||||
|
||||
IOB-WIN-PING:build:
|
||||
extends: .base_build
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-PING
|
||||
EgwProxy.OsaiCncLib:build:
|
||||
stage: build
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
APP_NAME: EgwProxy.OsaiCncLib
|
||||
only:
|
||||
refs:
|
||||
- develop
|
||||
- SDK/OsaiCnc
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
|
||||
- *version-fix
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.vbproj" -target:Build /p:Configuration=Release /p:Platform="x86" /p:OutputPath=bin/ /nodeReuse:false /verbosity:minimal /m'
|
||||
|
||||
IOB-WIN-SHELLY:build:
|
||||
extends: .base_build
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-SHELLY
|
||||
VERS_MAIN: '4.0'
|
||||
EgwProxy.SqlDb:build:
|
||||
stage: build
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
APP_NAME: EgwProxy.SqlDb
|
||||
only:
|
||||
refs:
|
||||
- develop
|
||||
- SDK/SqlDb
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
|
||||
- *version-fix
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=Release /p:Platform="x86" /p:OutputPath=bin/ /nodeReuse:false /verbosity:minimal /m'
|
||||
|
||||
IOB-WIN-SIEMENS:build:
|
||||
extends: .base_build
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-SIEMENS
|
||||
|
||||
IOB-WIN-SQL:build:
|
||||
extends: .base_build
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-SQL
|
||||
# --------------------------------
|
||||
# STAGING: (nuget beta)
|
||||
# --------------------------------
|
||||
EgwProxy.Ftp:build:staging:
|
||||
stage: staging
|
||||
needs: ["EgwProxy.Ftp:build"]
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
CONFIG: Debug
|
||||
APP_NAME: EgwProxy.Ftp
|
||||
only:
|
||||
refs:
|
||||
- develop
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
|
||||
- *version-fix
|
||||
- *nuspec-fix
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=$env:CONFIG /p:Platform="Any CPU" /p:OutputPath=bin/$env:CONFIG /verbosity:minimal /m'
|
||||
- '& Remove-Item *.nupkg'
|
||||
- '& $env:NUGET_PATH pack "$env:APP_NAME.Debug.nuspec"'
|
||||
- '& "$env:NUGET_PATH" setapikey fe387daa-d07c-3207-877e-96c8be1be91b -source http://nexus.steamware.net/repository/nuget-hosted'
|
||||
- '& "$env:NUGET_PATH" push *$env:NUM_DEB.nupkg -Source http://nexus.steamware.net/repository/nuget-hosted'
|
||||
|
||||
IOB-WIN-WPS:build:
|
||||
extends: .base_build
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-WPS
|
||||
EgwProxy.Icoel:build:staging:
|
||||
stage: staging
|
||||
needs: ["EgwProxy.Icoel:build"]
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
CONFIG: Debug
|
||||
APP_NAME: EgwProxy.Icoel
|
||||
only:
|
||||
refs:
|
||||
- develop
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
|
||||
- *version-fix
|
||||
- *nuspec-fix
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=$env:CONFIG /p:Platform="Any CPU" /p:OutputPath=bin/$env:CONFIG /verbosity:minimal /m'
|
||||
- '& Remove-Item *.nupkg'
|
||||
- '& $env:NUGET_PATH pack "$env:APP_NAME.Debug.nuspec"'
|
||||
- '& "$env:NUGET_PATH" setapikey fe387daa-d07c-3207-877e-96c8be1be91b -source http://nexus.steamware.net/repository/nuget-hosted'
|
||||
- '& "$env:NUGET_PATH" push *$env:NUM_DEB.nupkg -Source http://nexus.steamware.net/repository/nuget-hosted'
|
||||
|
||||
IOB-WIN-WS:build:
|
||||
extends: .base_build
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-WS
|
||||
EgwProxy.MultiCncLib:build:staging:
|
||||
stage: staging
|
||||
needs: ["EgwProxy.MultiCncLib:build"]
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
CONFIG: Debug
|
||||
APP_NAME: EgwProxy.MultiCncLib
|
||||
only:
|
||||
refs:
|
||||
- develop
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
|
||||
- *version-fix
|
||||
- *nuspec-fix
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.vbproj" -target:Build /p:Configuration=$env:CONFIG /p:Platform="Any CPU" /p:OutputPath=bin/$env:CONFIG /verbosity:minimal /m'
|
||||
- '& Remove-Item *.nupkg'
|
||||
- '& $env:NUGET_PATH pack "$env:APP_NAME.Debug.nuspec"'
|
||||
# - '& "$env:NUGET_PATH" pack "$env:APP_NAME\$env:APP_NAME.vbproj" -properties Configuration=$env:CONFIG -Version $env:NUM_DEB'
|
||||
- '& "$env:NUGET_PATH" setapikey fe387daa-d07c-3207-877e-96c8be1be91b -source http://nexus.steamware.net/repository/nuget-hosted'
|
||||
- '& "$env:NUGET_PATH" push *$env:NUM_DEB.nupkg -Source http://nexus.steamware.net/repository/nuget-hosted'
|
||||
|
||||
EgwProxy.OsaiCncLib:build:staging:
|
||||
stage: staging
|
||||
needs: ["EgwProxy.OsaiCncLib:build"]
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
CONFIG: Debug
|
||||
APP_NAME: EgwProxy.OsaiCncLib
|
||||
only:
|
||||
refs:
|
||||
- develop
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
|
||||
- *version-fix
|
||||
- *nuspec-fix
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.vbproj" -target:Build /p:Configuration=$env:CONFIG /p:Platform="Any CPU" /p:OutputPath=bin/$env:CONFIG /verbosity:minimal /m'
|
||||
- '& Remove-Item *.nupkg'
|
||||
- '& $env:NUGET_PATH pack "$env:APP_NAME.Debug.nuspec"'
|
||||
# - '& "$env:NUGET_PATH" pack "$env:APP_NAME\$env:APP_NAME.vbproj" -properties Configuration=$env:CONFIG -Version $env:NUM_DEB'
|
||||
- '& "$env:NUGET_PATH" setapikey fe387daa-d07c-3207-877e-96c8be1be91b -source http://nexus.steamware.net/repository/nuget-hosted'
|
||||
- '& "$env:NUGET_PATH" push *$env:NUM_DEB.nupkg -Source http://nexus.steamware.net/repository/nuget-hosted'
|
||||
|
||||
EgwProxy.SqlDb:build:staging:
|
||||
stage: staging
|
||||
needs: ["EgwProxy.SqlDb:build"]
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
CONFIG: Debug
|
||||
APP_NAME: EgwProxy.SqlDb
|
||||
only:
|
||||
refs:
|
||||
- develop
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
|
||||
- *version-fix
|
||||
- *nuspec-fix
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=$env:CONFIG /p:Platform="Any CPU" /p:OutputPath=bin/$env:CONFIG /verbosity:minimal /m'
|
||||
- '& Remove-Item *.nupkg'
|
||||
- '& $env:NUGET_PATH pack "$env:APP_NAME.Debug.nuspec"'
|
||||
- '& "$env:NUGET_PATH" setapikey fe387daa-d07c-3207-877e-96c8be1be91b -source http://nexus.steamware.net/repository/nuget-hosted'
|
||||
- '& "$env:NUGET_PATH" push *$env:NUM_DEB.nupkg -Source http://nexus.steamware.net/repository/nuget-hosted'
|
||||
|
||||
# --------------------------------
|
||||
# RELEASE
|
||||
# --------------------------------
|
||||
IOB-MAN:release:
|
||||
stage: release
|
||||
needs: ["IOB-MAN:build"]
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
APP_NAME: IOB-MAN
|
||||
NEXUS_PATH: MAPO/IOB-MAN
|
||||
only:
|
||||
refs:
|
||||
- main
|
||||
- master
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
|
||||
- *version-fix
|
||||
- *cleanup-zip
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=Release /p:Platform="x86" /p:OutputPath=bin/ /verbosity:minimal /m'
|
||||
- *zipper
|
||||
- *hashBuild
|
||||
- *nexusUpload
|
||||
|
||||
IOB-WIN:release:
|
||||
extends: [ .base_release, .base_rules ]
|
||||
needs: ["IOB-WIN:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN
|
||||
NEXUS_PATH: MAPO/IOB-WIN
|
||||
|
||||
IOB-WIN-FANUC:release:
|
||||
extends: [ .base_release, .base_rules ]
|
||||
needs: ["IOB-WIN-FANUC:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-FANUC
|
||||
NEXUS_PATH: MAPO/IOB-WIN-FANUC
|
||||
|
||||
IOB-WIN-FILE:release:
|
||||
extends: [ .base_release, .base_rules ]
|
||||
needs: ["IOB-WIN-FILE:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-FILE
|
||||
NEXUS_PATH: MAPO/IOB-WIN-FILE
|
||||
|
||||
IOB-WIN-FTP:release:
|
||||
extends: [ .base_release, .base_rules ]
|
||||
needs: ["IOB-WIN-FTP:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-FTP
|
||||
NEXUS_PATH: MAPO/IOB-WIN-FTP
|
||||
|
||||
IOB-WIN-KAWASAKI:release:
|
||||
extends: [ .base_release, .base_rules ]
|
||||
needs: ["IOB-WIN-KAWASAKI:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-KAWASAKI
|
||||
NEXUS_PATH: MAPO/IOB-WIN-KAWASAKI
|
||||
|
||||
IOB-WIN-MBUS:release:
|
||||
extends: [ .base_release, .base_rules ]
|
||||
needs: ["IOB-WIN-MBUS:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-MBUS
|
||||
NEXUS_PATH: MAPO/IOB-WIN-MBUS
|
||||
|
||||
IOB-WIN-MITSUBISHI:release:
|
||||
extends: [ .base_release, .base_rules ]
|
||||
needs: ["IOB-WIN-MITSUBISHI:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-MITSUBISHI
|
||||
NEXUS_PATH: MAPO/IOB-WIN-MITSUBISHI
|
||||
|
||||
IOB-WIN-MTC:release:
|
||||
extends: [ .base_release, .base_rules ]
|
||||
needs: ["IOB-WIN-MTC:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-MTC
|
||||
NEXUS_PATH: MAPO/IOB-WIN-MTC
|
||||
|
||||
stage: release
|
||||
needs: ["IOB-WIN:build"]
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
APP_NAME: IOB-WIN
|
||||
NEXUS_PATH: MAPO/IOB-WIN
|
||||
only:
|
||||
refs:
|
||||
- main
|
||||
- master
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
|
||||
- *version-fix
|
||||
- *cleanup-zip
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=Release /p:Platform="x86" /p:OutputPath=bin/ /nodeReuse:false /verbosity:minimal /m'
|
||||
- *zipper
|
||||
- *hashBuild
|
||||
- *nexusUpload
|
||||
|
||||
IOB-WIN-NEXT:release:
|
||||
extends: [ .base_release, .base_rules ]
|
||||
needs: ["IOB-WIN-NEXT:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-NEXT
|
||||
NEXUS_PATH: MAPO/IOB-WIN-NEXT
|
||||
stage: release
|
||||
needs: ["IOB-WIN-NEXT:build"]
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-NEXT
|
||||
NEXUS_PATH: MAPO/IOB-WIN-NEXT
|
||||
only:
|
||||
refs:
|
||||
- main
|
||||
- master
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
|
||||
- *version-fix
|
||||
- *cleanup-zip
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=Release /p:Platform="x86" /p:OutputPath=bin/ /nodeReuse:false /verbosity:minimal /m'
|
||||
- *zipper
|
||||
- *hashBuild
|
||||
- *nexusUpload
|
||||
|
||||
IOB-WIN-OMRON:release:
|
||||
extends: [ .base_release, .base_rules ]
|
||||
needs: ["IOB-WIN-OMRON:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-OMRON
|
||||
NEXUS_PATH: MAPO/IOB-WIN-OMRON
|
||||
EgwProxy.Ftp:build:release:
|
||||
stage: release
|
||||
needs: ["EgwProxy.Ftp:build"]
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
CONFIG: Release
|
||||
APP_NAME: EgwProxy.Ftp
|
||||
only:
|
||||
refs:
|
||||
- SDK/Ftp
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
|
||||
- *version-fix
|
||||
- *nuspec-fix
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=$env:CONFIG /p:Platform="Any CPU" /p:OutputPath=bin/$env:CONFIG /verbosity:minimal /m'
|
||||
- '& Remove-Item *.nupkg'
|
||||
- '& $env:NUGET_PATH pack "$env:APP_NAME.Release.nuspec"'
|
||||
# - '& "$env:NUGET_PATH" pack "$env:APP_NAME\$env:APP_NAME.csproj" -properties Configuration=$env:CONFIG -Version $env:NUM_REL'
|
||||
- '& "$env:NUGET_PATH" setapikey fe387daa-d07c-3207-877e-96c8be1be91b -source http://nexus.steamware.net/repository/nuget-hosted'
|
||||
- '& "$env:NUGET_PATH" push *$env:NUM_REL.nupkg -Source http://nexus.steamware.net/repository/nuget-hosted'
|
||||
|
||||
IOB-WIN-OPC-UA:release:
|
||||
extends: [ .base_release, .base_rules ]
|
||||
needs: ["IOB-WIN-OPC-UA:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-OPC-UA
|
||||
NEXUS_PATH: MAPO/IOB-WIN-OPC-UA
|
||||
EgwProxy.Icoel:build:release:
|
||||
stage: release
|
||||
needs: ["EgwProxy.Icoel:build"]
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
CONFIG: Release
|
||||
APP_NAME: EgwProxy.Icoel
|
||||
only:
|
||||
refs:
|
||||
- SDK/Icoel
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
|
||||
- *version-fix
|
||||
- *nuspec-fix
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=$env:CONFIG /p:Platform="Any CPU" /p:OutputPath=bin/$env:CONFIG /verbosity:minimal /m'
|
||||
- '& Remove-Item *.nupkg'
|
||||
- '& $env:NUGET_PATH pack "$env:APP_NAME.Release.nuspec"'
|
||||
# - '& "$env:NUGET_PATH" pack "$env:APP_NAME\$env:APP_NAME.csproj" -properties Configuration=$env:CONFIG -Version $env:NUM_REL'
|
||||
- '& "$env:NUGET_PATH" setapikey fe387daa-d07c-3207-877e-96c8be1be91b -source http://nexus.steamware.net/repository/nuget-hosted'
|
||||
- '& "$env:NUGET_PATH" push *$env:NUM_REL.nupkg -Source http://nexus.steamware.net/repository/nuget-hosted'
|
||||
|
||||
IOB-WIN-OSAI:release:
|
||||
extends: [ .base_release, .base_rules ]
|
||||
needs: ["IOB-WIN-OSAI:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-OSAI
|
||||
NEXUS_PATH: MAPO/IOB-WIN-OSAI
|
||||
EgwProxy.MultiCncLib:build:release:
|
||||
stage: release
|
||||
needs: ["EgwProxy.MultiCncLib:build"]
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
CONFIG: Release
|
||||
APP_NAME: EgwProxy.MultiCncLib
|
||||
only:
|
||||
refs:
|
||||
- SDK/MultiCnc
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
|
||||
- *version-fix
|
||||
- *nuspec-fix
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.vbproj" -target:Build /p:Configuration=$env:CONFIG /p:Platform="Any CPU" /p:OutputPath=bin/$env:CONFIG /verbosity:minimal /m'
|
||||
- '& Remove-Item *.nupkg'
|
||||
- '& $env:NUGET_PATH pack "$env:APP_NAME.Release.nuspec"'
|
||||
# - '& "$env:NUGET_PATH" pack "$env:APP_NAME\$env:APP_NAME.vbproj" -properties Configuration=$env:CONFIG -Version $env:NUM_REL'
|
||||
- '& "$env:NUGET_PATH" setapikey fe387daa-d07c-3207-877e-96c8be1be91b -source http://nexus.steamware.net/repository/nuget-hosted'
|
||||
- '& "$env:NUGET_PATH" push *$env:NUM_REL.nupkg -Source http://nexus.steamware.net/repository/nuget-hosted'
|
||||
|
||||
IOB-WIN-PING:release:
|
||||
extends: [ .base_release, .base_rules ]
|
||||
needs: ["IOB-WIN-PING:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-PING
|
||||
NEXUS_PATH: MAPO/IOB-WIN-PING
|
||||
EgwProxy.OsaiCncLib:build:release:
|
||||
stage: release
|
||||
needs: ["EgwProxy.OsaiCncLib:build"]
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
CONFIG: Release
|
||||
APP_NAME: EgwProxy.OsaiCncLib
|
||||
only:
|
||||
refs:
|
||||
- SDK/OsaiCnc
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
|
||||
- *version-fix
|
||||
- *nuspec-fix
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.vbproj" -target:Build /p:Configuration=$env:CONFIG /p:Platform="Any CPU" /p:OutputPath=bin/$env:CONFIG /verbosity:minimal /m'
|
||||
- '& Remove-Item *.nupkg'
|
||||
- '& $env:NUGET_PATH pack "$env:APP_NAME.Release.nuspec"'
|
||||
- '& "$env:NUGET_PATH" setapikey fe387daa-d07c-3207-877e-96c8be1be91b -source http://nexus.steamware.net/repository/nuget-hosted'
|
||||
- '& "$env:NUGET_PATH" push *$env:NUM_REL.nupkg -Source http://nexus.steamware.net/repository/nuget-hosted'
|
||||
|
||||
IOB-WIN-SHELLY:release:
|
||||
extends: .base_release
|
||||
needs: ["IOB-WIN-SHELLY:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-SHELLY
|
||||
NEXUS_PATH: MAPO/IOB-WIN-SHELLY
|
||||
VERS_MAIN: '4.0'
|
||||
|
||||
IOB-WIN-SIEMENS:release:
|
||||
extends: [ .base_release, .base_rules ]
|
||||
needs: ["IOB-WIN-SIEMENS:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-SIEMENS
|
||||
NEXUS_PATH: MAPO/IOB-WIN-SIEMENS
|
||||
|
||||
IOB-WIN-SQL:release:
|
||||
extends: [ .base_release, .base_rules ]
|
||||
needs: ["IOB-WIN-SQL:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-SQL
|
||||
NEXUS_PATH: MAPO/IOB-WIN-SQL
|
||||
|
||||
IOB-WIN-WPS:release:
|
||||
extends: [ .base_release, .base_rules ]
|
||||
needs: ["IOB-WIN-WPS:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-WPS
|
||||
NEXUS_PATH: MAPO/IOB-WIN-WPS
|
||||
|
||||
IOB-WIN-WS:release:
|
||||
extends: [ .base_release, .base_rules ]
|
||||
needs: ["IOB-WIN-WS:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-WS
|
||||
NEXUS_PATH: MAPO/IOB-WIN-WS
|
||||
EgwProxy.SqlDb:build:release:
|
||||
stage: release
|
||||
needs: ["EgwProxy.SqlDb:build"]
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
CONFIG: Release
|
||||
APP_NAME: EgwProxy.SqlDb
|
||||
only:
|
||||
refs:
|
||||
- SDK/SqlDb
|
||||
before_script:
|
||||
- *nuget-fix
|
||||
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
|
||||
- *version-fix
|
||||
- *nuspec-fix
|
||||
script:
|
||||
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=$env:CONFIG /p:Platform="Any CPU" /p:OutputPath=bin/$env:CONFIG /verbosity:minimal /m'
|
||||
- '& Remove-Item *.nupkg'
|
||||
- '& $env:NUGET_PATH pack "$env:APP_NAME.Release.nuspec"'
|
||||
# - '& "$env:NUGET_PATH" pack "$env:APP_NAME\$env:APP_NAME.csproj" -properties Configuration=$env:CONFIG -Version $env:NUM_REL'
|
||||
- '& "$env:NUGET_PATH" setapikey fe387daa-d07c-3207-877e-96c8be1be91b -source http://nexus.steamware.net/repository/nuget-hosted'
|
||||
- '& "$env:NUGET_PATH" push *$env:NUM_REL.nupkg -Source http://nexus.steamware.net/repository/nuget-hosted'
|
||||
|
||||
# --------------------------------
|
||||
# DocFx
|
||||
# --------------------------------
|
||||
IOB-WIN-FANUC:docfx:
|
||||
extends: [ .base_docfx, .base_rules ]
|
||||
needs: ["IOB-WIN-FANUC:build"]
|
||||
EgwProxy.Ftp:docfx:
|
||||
stage: docfx
|
||||
needs: ["EgwProxy.Ftp:build"]
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-FANUC
|
||||
APP_NAME: EgwProxy.Ftp
|
||||
only:
|
||||
- SDK/Ftp
|
||||
script:
|
||||
- docfx $env:APP_NAME/docfx.json
|
||||
- mv $env:APP_NAME/_site "docfx"
|
||||
- *DocReplica
|
||||
|
||||
IOB-WIN-FILE:docfx:
|
||||
extends: [ .base_docfx, .base_rules ]
|
||||
needs: ["IOB-WIN-FILE:build"]
|
||||
EgwProxy.Icoel:docfx:
|
||||
stage: docfx
|
||||
needs: ["EgwProxy.Icoel:build"]
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-FILE
|
||||
APP_NAME: EgwProxy.Icoel
|
||||
only:
|
||||
- SDK/Icoel
|
||||
script:
|
||||
- docfx $env:APP_NAME/docfx.json
|
||||
- mv $env:APP_NAME/_site "docfx"
|
||||
- *DocReplica
|
||||
|
||||
IOB-WIN-FTP:docfx:
|
||||
extends: [ .base_docfx, .base_rules ]
|
||||
needs: ["IOB-WIN-FTP:build"]
|
||||
EgwProxy.MultiCncLib:docfx:
|
||||
stage: docfx
|
||||
needs: ["EgwProxy.MultiCncLib:build"]
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-FTP
|
||||
APP_NAME: EgwProxy.MultiCncLib
|
||||
only:
|
||||
- SDK/MultiCnc
|
||||
script:
|
||||
- docfx $env:APP_NAME/docfx.json
|
||||
- mv $env:APP_NAME/_site "docfx"
|
||||
- *DocReplica
|
||||
|
||||
IOB-WIN-KAWASAKI:docfx:
|
||||
extends: [ .base_docfx, .base_rules ]
|
||||
needs: ["IOB-WIN-KAWASAKI:build"]
|
||||
EgwProxy.OsaiCncLib:docfx:
|
||||
stage: docfx
|
||||
needs: ["EgwProxy.OsaiCncLib:build"]
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-KAWASAKI
|
||||
|
||||
IOB-WIN-MBUS:docfx:
|
||||
extends: [ .base_docfx, .base_rules ]
|
||||
needs: ["IOB-WIN-MBUS:build"]
|
||||
APP_NAME: EgwProxy.OsaiCncLib
|
||||
only:
|
||||
- SDK/OsaiCnc
|
||||
script:
|
||||
- docfx $env:APP_NAME/docfx.json
|
||||
- mv $env:APP_NAME/_site "docfx"
|
||||
- *DocReplica
|
||||
|
||||
EgwProxy.SqlDb:docfx:
|
||||
stage: docfx
|
||||
needs: ["EgwProxy.Icoel:build"]
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-MBUS
|
||||
|
||||
IOB-WIN-MITSUBISHI:docfx:
|
||||
extends: [ .base_docfx, .base_rules ]
|
||||
needs: ["IOB-WIN-MITSUBISHI:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-MITSUBISHI
|
||||
|
||||
IOB-WIN-MTC:docfx:
|
||||
extends: [ .base_docfx, .base_rules ]
|
||||
needs: ["IOB-WIN-MTC:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-MTC
|
||||
APP_NAME: EgwProxy.Icoel
|
||||
only:
|
||||
- SDK/Icoel
|
||||
script:
|
||||
- docfx $env:APP_NAME/docfx.json
|
||||
- mv $env:APP_NAME/_site "docfx"
|
||||
- *DocReplica
|
||||
|
||||
IOB-WIN-NEXT:docfx:
|
||||
extends: [ .base_docfx, .base_rules ]
|
||||
stage: docfx
|
||||
needs: ["IOB-WIN-NEXT:build"]
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-NEXT
|
||||
only:
|
||||
- master
|
||||
script:
|
||||
- docfx $env:APP_NAME/docfx.json
|
||||
- mv $env:APP_NAME/_site "docfx"
|
||||
- *DocReplica
|
||||
|
||||
IOB-WIN-OMRON:docfx:
|
||||
extends: [ .base_docfx, .base_rules ]
|
||||
needs: ["IOB-WIN-OMRON:build"]
|
||||
IOB-MAN:docfx:
|
||||
stage: docfx
|
||||
needs: ["IOB-MAN:build"]
|
||||
tags:
|
||||
- win
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-OMRON
|
||||
|
||||
IOB-WIN-OPC-UA:docfx:
|
||||
extends: [ .base_docfx, .base_rules ]
|
||||
needs: ["IOB-WIN-OPC-UA:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-OPC-UA
|
||||
|
||||
IOB-WIN-OSAI:docfx:
|
||||
extends: [ .base_docfx, .base_rules ]
|
||||
needs: ["IOB-WIN-OSAI:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-OSAI
|
||||
|
||||
IOB-WIN-PING:docfx:
|
||||
extends: [ .base_docfx, .base_rules ]
|
||||
needs: ["IOB-WIN-PING:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-PING
|
||||
|
||||
IOB-WIN-SHELLY:docfx:
|
||||
extends: [ .base_docfx, .base_rules ]
|
||||
needs: ["IOB-WIN-SHELLY:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-SHELLY
|
||||
VERS_MAIN: '4.0'
|
||||
|
||||
IOB-WIN-SIEMENS:docfx:
|
||||
extends: [ .base_docfx, .base_rules ]
|
||||
needs: ["IOB-WIN-SIEMENS:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-SIEMENS
|
||||
|
||||
IOB-WIN-SQL:docfx:
|
||||
extends: [ .base_docfx, .base_rules ]
|
||||
needs: ["IOB-WIN-SQL:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-SQL
|
||||
|
||||
IOB-WIN-WPS:docfx:
|
||||
extends: [ .base_docfx, .base_rules ]
|
||||
needs: ["IOB-WIN-WPS:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-WPS
|
||||
|
||||
IOB-WIN-WS:docfx:
|
||||
extends: [ .base_docfx, .base_rules ]
|
||||
needs: ["IOB-WIN-WS:build"]
|
||||
variables:
|
||||
APP_NAME: IOB-WIN-WS
|
||||
APP_NAME: IOB-MAN
|
||||
only:
|
||||
- master
|
||||
script:
|
||||
- docfx $env:APP_NAME/docfx.json
|
||||
- mv $env:APP_NAME/_site "docfx"
|
||||
- *DocReplica
|
||||
Vendored
-4
@@ -1,4 +0,0 @@
|
||||
{
|
||||
"dotnet.preferCSharpExtension": true,
|
||||
"dotnet.defaultSolution": "IOB-WIN-NEXT.sln"
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
# Agent Instructions: MAPO-IOB-WIN
|
||||
|
||||
## Project Overview
|
||||
A collection of .NET (C#/VB) projects for industrial communication with NC controls (Fanuc, Siemens, Mitsubishi, etc.) via the Mapo Protocol.
|
||||
|
||||
## Build & Release
|
||||
- **Toolchain**: MSBuild.
|
||||
- **Config**: Always use `Release` configuration.
|
||||
- **Command Example**:
|
||||
```powershell
|
||||
& "$env:MSBUILD_PATH" "ProjectName\ProjectName.csproj" -target:Build /p:Configuration=Release /p:OutputPath=bin/ /nodeReuse:false /verbosity:minimal /m
|
||||
```
|
||||
- **NuGet**: Requires Steamware Nexus Proxy sources. Use `dotnet nuget restore` on the specific `.sln` before building.
|
||||
- **Versioning**: Automated via `VersGen\VersGen.cs` and `.nuspec` updates during CI. Manual updates to `VersGen.cs` might be needed if mimicking CI.
|
||||
- **Release Artifacts**: Zipped using `7z.exe`; MD5/SHA1 hashes are generated.
|
||||
|
||||
## Key Directories & Files
|
||||
- **`IOB-WIN-*`**: Protocol-specific implementations (e.g., `FANUC`, `SIEMENS`, `SHELLY`).
|
||||
- **`VersGen\`**: Handles automated assembly versioning.
|
||||
- **`UtilityScripts\`**: Contains `alarmFormatter.py`. Requires `python3` and `pip install inquirer`.
|
||||
- **`EgwCApp\`**: Core application logic and testing projects.
|
||||
|
||||
## Environment & Setup
|
||||
- **Siemens PLC**: Must enable "PUT/GET" permission in TIA Portal.
|
||||
- **Dependencies**: Uses `saltminion` and specific Windows accounts (`steamware`/`IOB`).
|
||||
- **Documentation**: Generated via `docfx`.
|
||||
|
||||
## Important Workflow Notes
|
||||
- **CI Logic**: The `.gitlab-ci.yml` contains critical automation logic for NuGet sources, versioning, and deployment. Refer to it for exact operational steps.
|
||||
- **NuGet Fixes**: The CI uses a `.nuget-fix` helper to manage Steamware Nexus Proxy sources. If encountering NuGet errors, check source configuration.
|
||||
- **Versioning Flow**: Versioning involves updating `VersGen.cs` (replacing `0.0.0.0`) and updating `.nuspec` files.
|
||||
BIN
Binary file not shown.
-529
@@ -1,529 +0,0 @@
|
||||
1;E2_800.00;Alarm Word 0;0;1,ALLARME INVERTER CATENA TRASP. TESSUTO
|
||||
2;E2_800.01;Alarm Word 0;1;2,ALLARME INVERTER CILINDRO SOVRALIMENTAZIONE SUPERIORE
|
||||
3;E2_800.02;Alarm Word 0;2;3,ALLARME INVERTER CILINDRO SOVRALIMENTAZIONE INFERIORE
|
||||
4;E2_800.03;Alarm Word 0;3;4,ALLARME INVERTER RUOTA SOVRALIMENTAZIONE SINISTRA
|
||||
5;E2_800.04;Alarm Word 0;4;5,ALLARME INVERTER RUOTA SOVRALIMENTAZIONE DESTRA
|
||||
6;E2_800.05;Alarm Word 0;5;6,ALLARME INVERTER STACCAPEZZA
|
||||
7;E2_800.06;Alarm Word 0;6;7,ALLARME INVERTER FALDAROTOLATORE
|
||||
8;E2_800.07;Alarm Word 0;7;8,ALLARME INVERTER FALDERUOLE
|
||||
9;E2_800.08;Alarm Word 0;8;9,ALLARME INVERTER ESAUSTORE 1
|
||||
10;E2_800.09;Alarm Word 0;9;10,ALLARME FUNE SICUREZZA USCITA
|
||||
11;E2_800.10;Alarm Word 0;10;11,ALLARME VENTILATORE 1 (BASSO)
|
||||
12;E2_800.11;Alarm Word 0;11;12, ALLARME VENTILATORE 2 (BASSO)
|
||||
13;E2_800.12;Alarm Word 0;12;13,ALLARME F.C. MINIMO CAMPO MASTER
|
||||
14;E2_800.13;Alarm Word 0;13;14,ALLARME F.C. MASSIMO CAMPO MASTER
|
||||
15;E2_800.14;Alarm Word 0;14;15,ALLARME PROTEZIONE TAPPETO INGRESSO
|
||||
16;E2_800.15;Alarm Word 0;15;16,RIFERIMENTO POTENZIOMETRI CAMPI ASSENTE
|
||||
17;E2_801.00;Alarm Word 1;0;17,ALLARME CONDIZIONATORI
|
||||
18;E2_801.01;Alarm Word 1;1;18,EMERGENZA IN CORSO !!!
|
||||
19;E2_801.02;Alarm Word 1;2;19,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 2 POMPA 1
|
||||
20;E2_801.03;Alarm Word 1;3;20,ALLARME POMPA RECUPERO CALORE 3
|
||||
21;E2_801.04;Alarm Word 1;4;21,CONTROLLO UMIDITA' : FUORI CAMPO
|
||||
22;E2_801.05;Alarm Word 1;5;22,ALLARME RILEVATORE ALTEZZA TESSUTO
|
||||
23;E2_801.06;Alarm Word 1;6;23,ALLARME NON RILASCIO TESSUTO SINISTRO
|
||||
24;E2_801.07;Alarm Word 1;7;24,ALLARME NON RILASCIO TESSUTO DESTRO
|
||||
25;E2_801.08;Alarm Word 1;8;25,ALLARME ALIMENTAZIONE 24VAC QUADRO
|
||||
26;E2_801.09;Alarm Word 1;9;26,ALLARME APRICIMOSSE
|
||||
27;E2_801.10;Alarm Word 1;10;27,ALLARME ASCIUGACIMOSSE A INFRAROSSI
|
||||
28;E2_801.11;Alarm Word 1;11;28,ALLARME PROTEZIONE CELLA DI RAFFREDDAMENTO 1
|
||||
29;E2_801.12;Alarm Word 1;12;29,CAMPO PARALLELO 2 ALLARME PROTEZIONE
|
||||
30;E2_801.13;Alarm Word 1;13;30,ALLARME VENTILATORE 3 (BASSO)
|
||||
31;E2_801.14;Alarm Word 1;14;31,ALLARME VENTILATORE 4 (BASSO)
|
||||
32;E2_801.15;Alarm Word 1;15;32,CAMPO PARALLELO 1 ALLARME PROTEZIONE
|
||||
33;E2_802.00;Alarm Word 2;0;33,CAMPO PARALLELO 3 ALLARME PROTEZIONE
|
||||
34;E2_802.01;Alarm Word 2;1;34,RAGGIUNTO MASSIMO CARICO CELLA DI CARICO TAPPETO
|
||||
35;E2_802.02;Alarm Word 2;2;35,ALLARME FALLOPEZZA SINISTRO
|
||||
36;E2_802.03;Alarm Word 2;3;36,ALLARME FALLOPEZZA DESTRO
|
||||
37;E2_802.04;Alarm Word 2;4;37,PARATIE ANTERIORI APERTE
|
||||
38;E2_802.05;Alarm Word 2;5;38,ALLARME AZIONAMENTO CAMPO CONICO
|
||||
39;E2_802.06;Alarm Word 2;6;39,BLOCCO BRUCIATORE 9
|
||||
40;E2_802.07;Alarm Word 2;7;40,CAMPO MASTER ALLARME PROTEZIONE
|
||||
41;E2_802.08;Alarm Word 2;8;41,ALLARME PRESSOSTATO TENDICATENA SINISTRO
|
||||
42;E2_802.09;Alarm Word 2;9;42,ALLARME PRESSOSTATO TENDICATENA DESTRO
|
||||
43;E2_802.10;Alarm Word 2;10;43,ALLARME MASSIMO ALLUNGAMENTO CATENA
|
||||
44;E2_802.11;Alarm Word 2;11;44,ALLARME TIPO LAVORO USCITA NON SELEZIONATO
|
||||
45;E2_802.12;Alarm Word 2;12;45,ALLARME RADDRIZZATRAMA
|
||||
46;E2_802.13;Alarm Word 2;13;46,ALLARME SPREMITORE 1
|
||||
47;E2_802.14;Alarm Word 2;14;47,BLOCCO BRUCIATORE 10
|
||||
48;E2_802.15;Alarm Word 2;15;48,BLOCCO BRUCIATORE 11
|
||||
49;E2_803.00;Alarm Word 3;0;49,BLOCCO BRUCIATORE 12
|
||||
50;E2_803.01;Alarm Word 3;1;50,BLOCCO BRUCIATORE 1
|
||||
51;E2_803.02;Alarm Word 3;2;51,BLOCCO BRUCIATORE 2
|
||||
52;E2_803.03;Alarm Word 3;3;52,BLOCCO BRUCIATORE 3
|
||||
53;E2_803.04;Alarm Word 3;4;53,BLOCCO BRUCIATORE 4
|
||||
54;E2_803.05;Alarm Word 3;5;54,BIELLE FUORI POSIZIONE
|
||||
55;E2_803.06;Alarm Word 3;6;55,GRUPPO FALDATORE FUORI POSIZIONE
|
||||
56;E2_803.07;Alarm Word 3;7;56,SERIE ARRESTI APERTA
|
||||
57;E2_803.08;Alarm Word 3;8;57,MANCANZA LUBRIFICANTE CATENA TRASP. TESSUTO
|
||||
58;E2_803.09;Alarm Word 3;9;58,ALLARME INVERTER PICCOLO ROTOLO
|
||||
59;E2_803.10;Alarm Word 3;10;59,ALLARME PROTEZIONE ALLARGATORI
|
||||
60;E2_803.11;Alarm Word 3;11;60,ALLARME PROTEZIONE ASPIRACIMOSSE
|
||||
61;E2_803.12;Alarm Word 3;12;61,ALLARME TAGLIACIMOSSE SINISTRA
|
||||
62;E2_803.13;Alarm Word 3;13;62,ALLARME TAGLIACIMOSSE DESTRA
|
||||
63;E2_803.14;Alarm Word 3;14;63,ALLARME INVERTER VENTILATORI INV101
|
||||
64;E2_803.15;Alarm Word 3;15;64,ALLARME INVERTER VENTILATORI INV103
|
||||
65;E2_804.00;Alarm Word 4;0;65,ALLARME TIMEOUT VITE CAMPO MASTER
|
||||
66;E2_804.01;Alarm Word 4;1;66,ALLARME TIMEOUT VITE CAMPO PARALLELO 1
|
||||
67;E2_804.02;Alarm Word 4;2;67,ALLARME TIMEOUT VITE CAMPO PARALLELO 2
|
||||
68;E2_804.03;Alarm Word 4;3;68,ALLARME TIMEOUT VITE CAMPO PARALLELO 3
|
||||
69;E2_804.04;Alarm Word 4;4;69,ALLARME TIMEOUT VITE CAMPO PARALLELO 4
|
||||
70;E2_804.05;Alarm Word 4;5;70,ALLARME TIMEOUT VITE CAMPO PARALLELO 5
|
||||
71;E2_804.06;Alarm Word 4;6;71,ALLARME TIMEOUT VITE CAMPO PARALLELO 6
|
||||
72;E2_804.07;Alarm Word 4;7;72,ALLARME TIMEOUT VITE CAMPO PARALLELO 7
|
||||
73;E2_804.08;Alarm Word 4;8;73,ALLARME TIMEOUT VITE CAMPO PARALLELO 8
|
||||
74;E2_804.09;Alarm Word 4;9;74,ALLARME TIMEOUT VITE CAMPO PARALLELO 9
|
||||
75;E2_804.10;Alarm Word 4;10;75,ALLARME DEVICE_NET ADDR. 32 DA BANCHETTO DI SPALMATURA
|
||||
76;E2_804.11;Alarm Word 4;11;76,ALLARME INVERTER DOGAL
|
||||
77;E2_804.12;Alarm Word 4;12;77,ALLARME FOTOCELLULA TAPPETO USCITA PIENO
|
||||
78;E2_804.13;Alarm Word 4;13;78,TEMPO DI CICLO PLC SOPRA MASSIMO IMPOSTATO
|
||||
79;E2_804.14;Alarm Word 4;14;79,ERRORE INDIRIZZI SONDE BRUCIATORI
|
||||
80;E2_804.15;Alarm Word 4;15;80,ALLARME VENTILATORE 4 (ALTO)
|
||||
81;E2_805.00;Alarm Word 5;0;81,ALLARME VENTILATORE 5 (ALTO)
|
||||
82;E2_805.01;Alarm Word 5;1;82,ALLARME VENTILATORE 6 (ALTO)
|
||||
83;E2_805.02;Alarm Word 5;2;83,ALLARME VENTILATORE 7 (ALTO)
|
||||
84;E2_805.03;Alarm Word 5;3;84,SONDA BRUCIATORE 1 INTERROTTA
|
||||
85;E2_805.04;Alarm Word 5;4;85,SONDA BRUCIATORE 2 INTERROTTA
|
||||
86;E2_805.05;Alarm Word 5;5;86,SONDA BRUCIATORE 3 INTERROTTA
|
||||
87;E2_805.06;Alarm Word 5;6;87,SONDA BRUCIATORE 4 INTERROTTA
|
||||
88;E2_805.07;Alarm Word 5;7;88,ALLARME DEVICE_NET ADDR. 0
|
||||
89;E2_805.08;Alarm Word 5;8;89,ALLARME DEVICE_NET ADDR. 1
|
||||
90;E2_805.09;Alarm Word 5;9;90,ALLARME DEVICE_NET ADDR. 2
|
||||
91;E2_805.10;Alarm Word 5;10;91,ALLARME DEVICE_NET ADDR. 3
|
||||
92;E2_805.11;Alarm Word 5;11;92,ALLARME DEVICE_NET ADDR. 4
|
||||
93;E2_805.12;Alarm Word 5;12;93,ALLARME DEVICE_NET ADDR. 5
|
||||
94;E2_805.13;Alarm Word 5;13;94,ALLARME DEVICE_NET ADDR. 6
|
||||
95;E2_805.14;Alarm Word 5;14;95,ALLARME DEVICE_NET ADDR. 7
|
||||
96;E2_805.15;Alarm Word 5;15;96,ALLARME DEVICE_NET ADDR. 8
|
||||
97;E2_806.00;Alarm Word 6;0;97,ALLARME DEVICE_NET ADDR. 9
|
||||
98;E2_806.01;Alarm Word 6;1;98,ALLARME DEVICE_NET ADDR. 10
|
||||
99;E2_806.02;Alarm Word 6;2;99,ALLARME DEVICE_NET ADDR. 11
|
||||
100;E2_806.03;Alarm Word 6;3;100,ALLARME DEVICE_NET ADDR. 12
|
||||
101;E2_806.04;Alarm Word 6;4;101,ALLARME DEVICE_NET ADDR. 13
|
||||
102;E2_806.05;Alarm Word 6;5;102,ALLARME DEVICE_NET ADDR. 14
|
||||
103;E2_806.06;Alarm Word 6;6;103,ALLARME DEVICE_NET ADDR. 15
|
||||
104;E2_806.07;Alarm Word 6;7;104,ALLARME DEVICE_NET ADDR. 16
|
||||
105;E2_806.08;Alarm Word 6;8;105,ALLARME DEVICE_NET ADDR. 17
|
||||
106;E2_806.09;Alarm Word 6;9;106,ALLARME DEVICE_NET ADDR. 18
|
||||
107;E2_806.10;Alarm Word 6;10;107,ALLARME DEVICE_NET ADDR. 19
|
||||
108;E2_806.11;Alarm Word 6;11;108,ALLARME DEVICE_NET ADDR. 20
|
||||
109;E2_806.12;Alarm Word 6;12;109,ALLARME DEVICE_NET ADDR. 21
|
||||
110;E2_806.13;Alarm Word 6;13;110,ALLARME DEVICE_NET ADDR. 22
|
||||
111;E2_806.14;Alarm Word 6;14;111,ALLARME DEVICE_NET ADDR. 23
|
||||
112;E2_806.15;Alarm Word 6;15;112,ALLARME DEVICE_NET ADDR. 24
|
||||
113;E2_807.00;Alarm Word 7;0;113,ALLARME DEVICE_NET ADDR. 25
|
||||
114;E2_807.01;Alarm Word 7;1;114,ALLARME DEVICE_NET ADDR. 26
|
||||
115;E2_807.02;Alarm Word 7;2;115,BLOCCO BRUCIATORE 5
|
||||
116;E2_807.03;Alarm Word 7;3;116,BLOCCO BRUCIATORE 6
|
||||
117;E2_807.04;Alarm Word 7;4;117,BLOCCO BRUCIATORE 7
|
||||
118;E2_807.05;Alarm Word 7;5;118,BLOCCO BRUCIATORE 8
|
||||
119;E2_807.06;Alarm Word 7;6;119,SOVRATEMPERATURA BRUCIATORE 1
|
||||
120;E2_807.07;Alarm Word 7;7;120,SOVRATEMPERATURA BRUCIATORE 2
|
||||
121;E2_807.08;Alarm Word 7;8;121,SOVRATEMPERATURA BRUCIATORE 3
|
||||
122;E2_807.09;Alarm Word 7;9;122,SOVRATEMPERATURA BRUCIATORE 4
|
||||
123;E2_807.10;Alarm Word 7;10;123,SOVRATEMPERATURA BRUCIATORE 5
|
||||
124;E2_807.11;Alarm Word 7;11;124,SOVRATEMPERATURA BRUCIATORE 6
|
||||
125;E2_807.12;Alarm Word 7;12;125,SOVRATEMPERATURA BRUCIATORE 7
|
||||
126;E2_807.13;Alarm Word 7;13;126,SOVRATEMPERATURA BRUCIATORE 8
|
||||
127;E2_807.14;Alarm Word 7;14;127,SONDA BRUCIATORE 5 INTERROTTA
|
||||
128;E2_807.15;Alarm Word 7;15;128,SONDA BRUCIATORE 6 INTERROTTA
|
||||
129;E2_808.00;Alarm Word 8;0;129,SONDA BRUCIATORE 7 INTERROTTA
|
||||
130;E2_808.01;Alarm Word 8;1;130,SONDA BRUCIATORE 8 INTERROTTA
|
||||
131;E2_808.02;Alarm Word 8;2;131,SONDA BRUCIATORE 9 INTERROTTA
|
||||
132;E2_808.03;Alarm Word 8;3;132,SONDA BRUCIATORE 10 INTERROTTA
|
||||
133;E2_808.04;Alarm Word 8;4;133,SONDA BRUCIATORE 11 INTERROTTA
|
||||
134;E2_808.05;Alarm Word 8;5;134,SONDA BRUCIATORE 12 INTERROTTA
|
||||
135;E2_808.06;Alarm Word 8;6;135,SOVRATEMPERATURA BRUCIATORE 9
|
||||
136;E2_808.07;Alarm Word 8;7;136,SOVRATEMPERATURA BRUCIATORE 10
|
||||
137;E2_808.08;Alarm Word 8;8;137,SOVRATEMPERATURA BRUCIATORE 11
|
||||
138;E2_808.09;Alarm Word 8;9;138,SOVRATEMPERATURA BRUCIATORE 12
|
||||
139;E2_808.10;Alarm Word 8;10;139,ALLARME INVERTER VENTILATORI INV105
|
||||
140;E2_808.11;Alarm Word 8;11;140,ALLARME INVERTER VENTILATORI INV107
|
||||
141;E2_808.12;Alarm Word 8;12;141,ALLARME INVERTER VENTILATORI INV109
|
||||
142;E2_808.13;Alarm Word 8;13;142,ALLARME INVERTER VENTILATORI INV111
|
||||
143;E2_808.14;Alarm Word 8;14;143,ALLARME VENTILATORE 5 (BASSO)
|
||||
144;E2_808.15;Alarm Word 8;15;144,ALLARME VENTILATORE 6 (BASSO)
|
||||
145;E2_809.00;Alarm Word 9;0;145,ALLARME VENTILATORE 7 (BASSO)
|
||||
146;E2_809.01;Alarm Word 9;1;146,ALLARME VENTILATORE 8 (BASSO)
|
||||
147;E2_809.02;Alarm Word 9;2;147,ALLARME VENTILATORE 9 (BASSO)
|
||||
148;E2_809.03;Alarm Word 9;3;148,ALLARME VENTILATORE 10 (BASSO)
|
||||
149;E2_809.04;Alarm Word 9;4;149,ALLARME VENTILATORE 11 (BASSO)
|
||||
150;E2_809.05;Alarm Word 9;5;150,ALLARME VENTILATORE 12 (BASSO)
|
||||
151;E2_809.06;Alarm Word 9;6;151,ALLARME INVERTER ESAUSTORE 2
|
||||
152;E2_809.07;Alarm Word 9;7;152,CAMPO PARALLELO 4 ALLARME PROTEZIONE
|
||||
153;E2_809.08;Alarm Word 9;8;153,CAMPO PARALLELO 5 ALLARME PROTEZIONE
|
||||
154;E2_809.09;Alarm Word 9;9;154,CAMPO PARALLELO 6 ALLARME PROTEZIONE
|
||||
155;E2_809.10;Alarm Word 9;10;155,CAMPO PARALLELO 7 ALLARME PROTEZIONE
|
||||
156;E2_809.11;Alarm Word 9;11;156,CAMPO PARALLELO 8 ALLARME PROTEZIONE
|
||||
157;E2_809.12;Alarm Word 9;12;157,ALLARME INSEGUIMENTO VITE MASTER AGGIUNTA
|
||||
158;E2_809.13;Alarm Word 9;13;158,ALLARME INVERTER CILINDRO RAFFREDDAMENTO
|
||||
159;E2_809.14;Alarm Word 9;14;159,ALLARME TEMPERATURA ESAUSTORI
|
||||
160;E2_809.15;Alarm Word 9;15;160,ALLARME INVERTER RECUPERO CALORE GRUPPO 1
|
||||
161;E2_810.00;Alarm Word 10;0;161,ALLARME FINECORSA SX TAPPETO USCITA
|
||||
162;E2_810.01;Alarm Word 10;1;162,ALLARME FINECORSA DX TAPPETO USCITA
|
||||
163;E2_810.02;Alarm Word 10;2;163,ALLARME INVERTER RECUPERO CALORE GRUPPO 2
|
||||
164;E2_810.03;Alarm Word 10;3;164,ALLARME DEVICE_NET ADDR. 31
|
||||
165;E2_810.04;Alarm Word 10;4;165,ALLARME CENTRATORE USCITA
|
||||
166;E2_810.05;Alarm Word 10;5;166,COMPATTATORE NON PRONTO
|
||||
167;E2_810.06;Alarm Word 10;6;167,ALLARME CONTROLLO PIROMETRI
|
||||
168;E2_810.07;Alarm Word 10;7;168,ALLARME ALLARGATORE SU TAPPETO USCITA
|
||||
169;E2_810.08;Alarm Word 10;8;169,ALLARME CONTROLLO FUMI
|
||||
170;E2_810.09;Alarm Word 10;9;170,ALLARME FINECORSA BALLERINO ALTO
|
||||
171;E2_810.10;Alarm Word 10;10;171,ALLARME FINECORSA BALLERINO BASSO
|
||||
172;E2_810.11;Alarm Word 10;11;172,ALLARME PROTEZIONE ASPIRATORE VAPORIZZO INTENSIVO
|
||||
173;E2_810.12;Alarm Word 10;12;173,ALLARME PROTEZIONE BRUCIATORE 1
|
||||
174;E2_810.13;Alarm Word 10;13;174,ALLARME PROTEZIONE BRUCIATORE 2
|
||||
175;E2_810.14;Alarm Word 10;14;175,ALLARME PROTEZIONE BRUCIATORE 3
|
||||
176;E2_810.15;Alarm Word 10;15;176,ALLARME PROTEZIONE BRUCIATORE 4
|
||||
177;E2_811.00;Alarm Word 11;0;177,ALLARME PROTEZIONE BRUCIATORE 5
|
||||
178;E2_811.01;Alarm Word 11;1;178,ALLARME PROTEZIONE BRUCIATORE 6
|
||||
179;E2_811.02;Alarm Word 11;2;179,ALLARME PROTEZIONE BRUCIATORE 7
|
||||
180;E2_811.03;Alarm Word 11;3;180,ALLARME PROTEZIONE BRUCIATORE 8
|
||||
181;E2_811.04;Alarm Word 11;4;181,ALLARME PROTEZIONE BRUCIATORE 9
|
||||
182;E2_811.05;Alarm Word 11;5;182,ALLARME PROTEZIONE BRUCIATORE 10
|
||||
183;E2_811.06;Alarm Word 11;6;183,ALLARME PROTEZIONE BRUCIATORE 11
|
||||
184;E2_811.07;Alarm Word 11;7;184,ALLARME PROTEZIONE BRUCIATORE 12
|
||||
185;E2_811.08;Alarm Word 11;8;185,TERMOFISSAGGIO O ESSICCAZIONE: TEMPERATURA FUORI CAMPO
|
||||
186;E2_811.09;Alarm Word 11;9;186,TERMOFISSAGGIO O ESSICCAZIONE: VELOCITA' FUORI CAMPO
|
||||
187;E2_811.10;Alarm Word 11;10;187,TERMOFISSAGGIO O ESSICCAZIONE: TEMPO FUORI CAMPO
|
||||
188;E2_811.11;Alarm Word 11;11;188,SISTEMA CAMPI PARALLELI NON TARATO
|
||||
189;E2_811.12;Alarm Word 11;12;189,ALLARME PROTEZIONE VENTOLE BRUCIATORI
|
||||
190;E2_811.13;Alarm Word 11;13;190,CAMPO CONICO SINISTRO SU LIMITE CHIUSURA
|
||||
191;E2_811.14;Alarm Word 11;14;191,CAMPO CONICO SINISTRO SU LIMITE APERTURA
|
||||
192;E2_811.15;Alarm Word 11;15;192,CAMPO CONICO DESTRO SU LIMITE APERTURA
|
||||
193;E2_812.00;Alarm Word 12;0;193,CAMPO CONICO DESTRO SU LIMITE CHIUSURA
|
||||
194;E2_812.01;Alarm Word 12;1;194,FINECORSA CAMPO CONICO DESTRO SU TRAVERSA
|
||||
195;E2_812.02;Alarm Word 12;2;195,FINECORSA CAMPO CONICO SINISTRO SU TRAVERSA
|
||||
196;E2_812.03;Alarm Word 12;3;196,ALLARME PROTEZIONE INVERTER CAMPO CONICO SINISTRO
|
||||
197;E2_812.04;Alarm Word 12;4;197,ALLARME PROTEZIONE INVERTER CAMPO CONICO DESTRO
|
||||
198;E2_812.05;Alarm Word 12;5;198,ALLARME DEVICE_NET ADDR. 27
|
||||
199;E2_812.06;Alarm Word 12;6;199,ALLARME VENTILATORE 8 (ALTO)
|
||||
200;E2_812.07;Alarm Word 12;7;200,ALLARME VENTILATORE 9 (ALTO)
|
||||
201;E2_812.08;Alarm Word 12;8;201,ALLARME VENTILATORE 10 (ALTO)
|
||||
202;E2_812.09;Alarm Word 12;9;202,ALLARME VENTILATORE 11 (ALTO)
|
||||
203;E2_812.10;Alarm Word 12;10;203,ALLARME VENTILATORE 12 (ALTO)
|
||||
204;E2_812.11;Alarm Word 12;11;204,ALLARME VENTILATORE 1 (ALTO)
|
||||
205;E2_812.12;Alarm Word 12;12;205,ALLARME VENTILATORE 2 (ALTO)
|
||||
206;E2_812.13;Alarm Word 12;13;206,ALLARME VENTILATORE 3 (ALTO)
|
||||
207;E2_812.14;Alarm Word 12;14;207,ALLARME PROTEZIONE CELLA DI RAFFREDDAMENTO 2
|
||||
208;E2_812.15;Alarm Word 12;15;208,ALLARME FINECORSA TANDEM CONTROLLO ANSA TESSUTO
|
||||
209;E2_813.00;Alarm Word 13;0;209,ALLARME FUNE SICUREZZA / PROTEZIONE RIBALTABILE ANTERIORE
|
||||
210;E2_813.01;Alarm Word 13;1;210,ALLARME INVERTER VENTILATORI INV101A
|
||||
211;E2_813.02;Alarm Word 13;2;211,ALLARME INVERTER VENTILATORI INV103A
|
||||
212;E2_813.03;Alarm Word 13;3;212,ALLARME INVERTER VENTILATORI INV105A
|
||||
213;E2_813.04;Alarm Word 13;4;213,ALLARME INVERTER VENTILATORI INV107A
|
||||
214;E2_813.05;Alarm Word 13;5;214,ALLARME INVERTER VENTILATORI INV109A
|
||||
215;E2_813.06;Alarm Word 13;6;215,ALLARME INVERTER VENTILATORI INV111A
|
||||
216;E2_813.07;Alarm Word 13;7;216,ALLARME DA BANCHETTO DI SPALMATURA
|
||||
217;E2_813.08;Alarm Word 13;8;217,ALLARME DEVICE_NET ADDR. 28
|
||||
218;E2_813.09;Alarm Word 13;9;218,STOP JOG USCITA PER PESO RAGGIUNTO SU CELLA DI CARICO
|
||||
219;E2_813.10;Alarm Word 13;10;219,DOGAL NON PRONTO
|
||||
220;E2_813.11;Alarm Word 13;11;220,ALLARME PROTEZIONE CELLA RAFFREDDAMENTO 91A
|
||||
221;E2_813.12;Alarm Word 13;12;221,MALFUNZIONAMENTO RECUPERO CALORE GRUPPO 1
|
||||
222;E2_813.13;Alarm Word 13;13;222,ALLARME PROTEZIONE SOSTEGNO TESSUTO
|
||||
223;E2_813.14;Alarm Word 13;14;223,TARATURA CAMPI CONICI NON EFFETTUATA!
|
||||
224;E2_813.15;Alarm Word 13;15;224,ALLARME TIMEOUT VITE CAMPO PARALLELO 10
|
||||
225;E2_814.00;Alarm Word 14;0;225,CAMPO PARALLELO 9 ALLARME PROTEZIONE
|
||||
226;E2_814.01;Alarm Word 14;1;226,CAMPO PARALLELO 10 ALLARME PROTEZIONE
|
||||
227;E2_814.02;Alarm Word 14;2;227,CAMPO PARALLELO 11 ALLARME PROTEZIONE
|
||||
228;E2_814.03;Alarm Word 14;3;228,CAMPO PARALLELO 12 ALLARME PROTEZIONE
|
||||
229;E2_814.04;Alarm Word 14;4;229,ALLARME FLUSSOSTATO RECUPERO CALORE 1
|
||||
230;E2_814.05;Alarm Word 14;5;230,ALLARME FLUSSOSTATO RECUPERO CALORE 2
|
||||
231;E2_814.06;Alarm Word 14;6;231,ALLARME FLUSSOSTATO RECUPERO CALORE 3
|
||||
232;E2_814.07;Alarm Word 14;7;232,ALLARME PROTEZIONE VENTILATORE ASCIUGACIMOSSE
|
||||
233;E2_814.08;Alarm Word 14;8;233,ALLARME PROTEZIONE RESISTENZE ASCIUGACIMOSSE
|
||||
234;E2_814.09;Alarm Word 14;9;234,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 1 POMPA 1
|
||||
235;E2_814.10;Alarm Word 14;10;235,ALLARME INCENDIO
|
||||
236;E2_814.11;Alarm Word 14;11;236,ATTENZIONE ! ALLARME PRESENTE SU BANCHETTO DI SPALMATURA
|
||||
237;E2_814.12;Alarm Word 14;12;237,MALFUNZIONAMENTO RECUPERO CALORE GRUPPO 2
|
||||
238;E2_814.13;Alarm Word 14;13;238,ALLARME PROTEZIONE CELLA RAFFREDDAMENTO 91B
|
||||
239;E2_814.14;Alarm Word 14;14;239,ALLARME PROTEZIONE PULISCISPILLI
|
||||
240;E2_814.15;Alarm Word 14;15;240,BATTERIA PLC - LIVELLO BASSO
|
||||
241;E2_815.00;Alarm Word 15;0;241,ALLARME CONTEMPORANEIT? TERMOSTATI SICUREZZA BRUCIATORI
|
||||
242;E2_815.01;Alarm Word 15;1;242,BLOCCO VERSIONE SOFTWARE
|
||||
243;E2_815.02;Alarm Word 15;2;243,SROTOLATORE NON PRONTO
|
||||
244;E2_815.03;Alarm Word 15;3;244,ERRORE DI COMUNICAZIONE PROTOCOL MACRO
|
||||
245;E2_815.04;Alarm Word 15;4;245,ALLARME TAGLIERINA URBAN
|
||||
246;E2_815.05;Alarm Word 15;5;246,FINE TESSUTO IN INGRESSO
|
||||
247;E2_815.06;Alarm Word 15;6;247,ALLARME PROTEZIONE SERVOVENTILAZIONI MOTORI
|
||||
248;E2_815.07;Alarm Word 15;7;248,ALLARME INVERTER ARROTOLATORE TANGENZIALE
|
||||
249;E2_815.08;Alarm Word 15;8;249,ALLARME SPREMITORE 2
|
||||
250;E2_815.09;Alarm Word 15;9;250,ALLARME FS-91ER PLEVA
|
||||
251;E2_815.10;Alarm Word 15;10;251,ALLARME LINEA EMERGENZA ARROTOLATORE
|
||||
252;E2_815.11;Alarm Word 15;11;252,ALLARME FOTOCELLULE ARROTOLATORE
|
||||
253;E2_815.12;Alarm Word 15;12;253,PORTA CASSETTA USCITA RAMOSA APERTA
|
||||
254;E2_815.13;Alarm Word 15;13;254,ALLARME FINECORSA CILINDRO PROTEZIONE ARROTOLATORE ASSIALE
|
||||
255;E2_815.14;Alarm Word 15;14;255,ALLARME PRESSOSTATI GRUPPO VALVOLE USCITA
|
||||
256;E2_815.15;Alarm Word 15;15;256,ARROTOLATORE NON PRONTO
|
||||
257;E2_816.00;Alarm Word 16;0;257,FINECORSA GRUPPO FALDATORE AVANTI
|
||||
258;E2_816.01;Alarm Word 16;1;258,FINECORSA GRUPPO FALDATORE INDIETRO
|
||||
259;E2_816.02;Alarm Word 16;2;259,ALLARME BATTERIA ELETTRICA 1
|
||||
260;E2_816.03;Alarm Word 16;3;260,SOVRATEMPERATURA BATTERIA ELETTRICA 5
|
||||
261;E2_816.04;Alarm Word 16;4;261,ALLARME BATTERIA ELETTRICA 2
|
||||
262;E2_816.05;Alarm Word 16;5;262,RISCALDAMENTO QUADRO SPENTO
|
||||
263;E2_816.06;Alarm Word 16;6;263,SOVRATEMPERATURA BATTERIA ELETTRICA 1
|
||||
264;E2_816.07;Alarm Word 16;7;264,SOVRATEMPERATURA BATTERIA ELETTRICA 2
|
||||
265;E2_816.08;Alarm Word 16;8;265,ALLARME BATTERIA ELETTRICA 3
|
||||
266;E2_816.09;Alarm Word 16;9;266,EMERGENZA DA SPALMATRICE
|
||||
267;E2_816.10;Alarm Word 16;10;267,ALLARME BATTERIA ELETTRICA 4
|
||||
268;E2_816.11;Alarm Word 16;11;268,ALLARME BATTERIA ELETTRICA 5
|
||||
269;E2_816.12;Alarm Word 16;12;269,SOVRATEMPERATURA BATTERIA ELETTRICA 3
|
||||
270;E2_816.13;Alarm Word 16;13;270,SOVRATEMPERATURA BATTERIA ELETTRICA 4
|
||||
271;E2_816.14;Alarm Word 16;14;271,ALLARME IDROSTATO RECUPERO CALORE 1
|
||||
272;E2_816.15;Alarm Word 16;15;272,ALLARME SENSORE LIVELLO RECUPERO CALORE 1 : AGGIUNGERE LIQUIDO !
|
||||
273;E2_817.00;Alarm Word 17;0;273,ALLARME RELE' CONTROLLO FASI
|
||||
274;E2_817.01;Alarm Word 17;1;274,ALLARME DEVICE NET ADDR. 40 - MODULO GRT1-DRT USCITA RAMOSA
|
||||
275;E2_817.02;Alarm Word 17;2;275,ALLARME PRESSOSTATO LINEA ENTRATA MACCHINA
|
||||
276;E2_817.03;Alarm Word 17;3;276,ALLARME PRESSOSTATO LINEA USCITA MACCHINA
|
||||
277;E2_817.04;Alarm Word 17;4;277,CAMPO CANNOCCHIALI 1 BLOCCATO
|
||||
278;E2_817.05;Alarm Word 17;5;278,CAMPO CANNOCCHIALI 2 BLOCCATO
|
||||
279;E2_817.06;Alarm Word 17;6;279,ALLARME DISCONTINUITA' CAMPI PARALLELI
|
||||
280;E2_817.07;Alarm Word 17;7;280,ALLARME INSEGUIMENTO CAMPI PARALLELI - VITE LENTA
|
||||
281;E2_817.08;Alarm Word 17;8;281,ALLARME LIMITE VITI
|
||||
282;E2_817.09;Alarm Word 17;9;282,RAGGIUNTO MASSIMO CARICO SU CELLA DI CARICO
|
||||
283;E2_817.10;Alarm Word 17;10;283,ALLARME PRESSOSTATO ESAUSTORE
|
||||
284;E2_817.11;Alarm Word 17;11;284,EMERGENZA MOVIMENTO TESSUTO
|
||||
285;E2_817.12;Alarm Word 17;12;285,EMERGENZA DA SPREMITORE 1
|
||||
286;E2_817.13;Alarm Word 17;13;286,EMERGENZA DA RADDRIZZATRAMA
|
||||
287;E2_817.14;Alarm Word 17;14;287,EMERGENZA DA SROTOLATORE
|
||||
288;E2_817.15;Alarm Word 17;15;288,EMERGENZA DA ARROTOLATORE
|
||||
289;E2_818.00;Alarm Word 18;0;289,ALLARME SICUREZZA BRUCIATORE 1
|
||||
290;E2_818.01;Alarm Word 18;1;290,ALLARME SICUREZZA BRUCIATORE 2
|
||||
291;E2_818.02;Alarm Word 18;2;291,ALLARME SICUREZZA BRUCIATORE 3
|
||||
292;E2_818.03;Alarm Word 18;3;292,ALLARME SICUREZZA BRUCIATORE 4
|
||||
293;E2_818.04;Alarm Word 18;4;293,ALLARME SICUREZZA BRUCIATORE 5
|
||||
294;E2_818.05;Alarm Word 18;5;294,ALLARME SICUREZZA BRUCIATORE 6
|
||||
295;E2_818.06;Alarm Word 18;6;295,ALLARME SICUREZZA BRUCIATORE 7
|
||||
296;E2_818.07;Alarm Word 18;7;296,ALLARME SICUREZZA BRUCIATORE 8
|
||||
297;E2_818.08;Alarm Word 18;8;297,ALLARME SICUREZZA BRUCIATORE 9
|
||||
298;E2_818.09;Alarm Word 18;9;298,ALLARME SICUREZZA BRUCIATORE 10
|
||||
299;E2_818.10;Alarm Word 18;10;299,ALLARME SICUREZZA BRUCIATORE 11
|
||||
300;E2_818.11;Alarm Word 18;11;300,ALLARME SICUREZZA BRUCIATORE 12
|
||||
301;E2_818.12;Alarm Word 18;12;301,ALLARME BRUCIATORE 1 SPENTO
|
||||
302;E2_818.13;Alarm Word 18;13;302,ALLARME BRUCIATORE 2 SPENTO
|
||||
303;E2_818.14;Alarm Word 18;14;303,ALLARME BRUCIATORE 3 SPENTO
|
||||
304;E2_818.15;Alarm Word 18;15;304,ALLARME BRUCIATORE 4 SPENTO
|
||||
305;E2_819.00;Alarm Word 19;0;305,ALLARME BRUCIATORE 5 SPENTO
|
||||
306;E2_819.01;Alarm Word 19;1;306,ALLARME BRUCIATORE 6 SPENTO
|
||||
307;E2_819.02;Alarm Word 19;2;307,ALLARME BRUCIATORE 7 SPENTO
|
||||
308;E2_819.03;Alarm Word 19;3;308,ALLARME BRUCIATORE 8 SPENTO
|
||||
309;E2_819.04;Alarm Word 19;4;309,ALLARME BRUCIATORE 9 SPENTO
|
||||
310;E2_819.05;Alarm Word 19;5;310,ALLARME BRUCIATORE 10 SPENTO
|
||||
311;E2_819.06;Alarm Word 19;6;311,ALLARME BRUCIATORE 11 SPENTO
|
||||
312;E2_819.07;Alarm Word 19;7;312,ALLARME BRUCIATORE 12 SPENTO
|
||||
313;E2_819.08;Alarm Word 19;8;313,ALLARME SENSORE LIVELLO RECUPERO CALORE 2 : AGGIUNGERE LIQUIDO !
|
||||
314;E2_819.09;Alarm Word 19;9;314,ALLARME DA MIXER
|
||||
315;E2_819.10;Alarm Word 19;10;315,ALLARME PRESSOSTATI LUBRIFICAZIONE
|
||||
316;E2_819.11;Alarm Word 19;11;316,ALLARME ABBATTITORE FUMI
|
||||
317;E2_819.12;Alarm Word 19;12;317,MACCHINA 1 NON IN LINEA
|
||||
318;E2_819.13;Alarm Word 19;13;318,MACCHINA 2 NON IN LINEA
|
||||
319;E2_819.14;Alarm Word 19;14;319,MACCHINA 3 NON IN LINEA
|
||||
320;E2_819.15;Alarm Word 19;15;320,MACCHINA 4 NON IN LINEA
|
||||
321;E2_820.00;Alarm Word 20;0;321,MACCHINA 5 NON IN LINEA
|
||||
322;E2_820.01;Alarm Word 20;1;322,MACCHINA 6 NON IN LINEA
|
||||
323;E2_820.02;Alarm Word 20;2;323,MACCHINA 7 NON IN LINEA
|
||||
324;E2_820.03;Alarm Word 20;3;324,MACCHINA 8 NON IN LINEA
|
||||
325;E2_820.04;Alarm Word 20;4;325,NON STOP NON PRONTO
|
||||
326;E2_820.05;Alarm Word 20;5;326,EMERGENZA DA NON STOP
|
||||
327;E2_820.06;Alarm Word 20;6;327,ALLARME DISCONTINUITA' CAMPO MASTER
|
||||
328;E2_820.07;Alarm Word 20;7;328,ALLARME DISCONTINUITA' CAMPO PARALLELO 1
|
||||
329;E2_820.08;Alarm Word 20;8;329,ALLARME DISCONTINUITA' CAMPO PARALLELO 2
|
||||
330;E2_820.09;Alarm Word 20;9;330,ALLARME DISCONTINUITA' CAMPO PARALLELO 3
|
||||
331;E2_820.10;Alarm Word 20;10;331,ALLARME DISCONTINUITA' CAMPO PARALLELO 4
|
||||
332;E2_820.11;Alarm Word 20;11;332,ALLARME DISCONTINUITA' CAMPO PARALLELO 5
|
||||
333;E2_820.12;Alarm Word 20;12;333,ALLARME DISCONTINUITA' CAMPO PARALLELO 6
|
||||
334;E2_820.13;Alarm Word 20;13;334,ALLARME DISCONTINUITA' CAMPO PARALLELO 7
|
||||
335;E2_820.14;Alarm Word 20;14;335,ALLARME DISCONTINUITA' CAMPO PARALLELO 8
|
||||
336;E2_820.15;Alarm Word 20;15;336,ALLARME DISCONTINUITA' CAMPO PARALLELO 9
|
||||
337;E2_821.00;Alarm Word 21;0;337,ALLARME DISCONTINUITA' CAMPO PARALLELO 10
|
||||
338;E2_821.01;Alarm Word 21;1;338,PROTEZIONI INGRESSO APERTE
|
||||
339;E2_821.02;Alarm Word 21;2;339,PROTEZIONI USCITA APERTE
|
||||
340;E2_821.03;Alarm Word 21;3;340,ALLARME PROTEZIONE ESTRATTORE FUMI 1
|
||||
341;E2_821.04;Alarm Word 21;4;341,ALLARME PROTEZIONE ESTRATTORE FUMI 2
|
||||
342;E2_821.05;Alarm Word 21;5;342,MANCANZA PRESSOSTATO ESTRATTORE FUMI 1
|
||||
343;E2_821.06;Alarm Word 21;6;343,MANCANZA PRESSOSTATO ESTRATTORE FUMI 2
|
||||
344;E2_821.07;Alarm Word 21;7;344,EMERGENZA DA MIXER
|
||||
345;E2_821.08;Alarm Word 21;8;345,EMERGENZA DA SPREMITORE 2
|
||||
346;E2_821.09;Alarm Word 21;9;346,ALLARME PROTEZIONE VENTILATORE RECUPERO CALORE 1
|
||||
347;E2_821.10;Alarm Word 21;10;347,ALLARME PROTEZIONE VENTILATORE RECUPERO CALORE 2
|
||||
348;E2_821.11;Alarm Word 21;11;348,ALLARME MODULO VELOCITA? ZERO CATENA TRASP. TESSUTO
|
||||
349;E2_821.12;Alarm Word 21;12;349,ALLARME RILEVAMENTO TESSUTO SINISTRO USCITA
|
||||
350;E2_821.13;Alarm Word 21;13;350,ALLARME RILEVAMENTO TESSUTO DESTRO USCITA
|
||||
351;E2_821.14;Alarm Word 21;14;351,ALLARME FINECORSA SOLLEVAMENTO CAMPI CONICI
|
||||
352;E2_821.15;Alarm Word 21;15;352,ALLARME IDROSTATO RECUPERO CALORE 2
|
||||
353;E2_822.00;Alarm Word 22;0;353,ALLARME FUNE DI PROTEZIONE IN USCITA
|
||||
354;E2_822.01;Alarm Word 22;1;354,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 1
|
||||
355;E2_822.02;Alarm Word 22;2;355,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 2
|
||||
356;E2_822.03;Alarm Word 22;3;356,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 3
|
||||
357;E2_822.04;Alarm Word 22;4;357,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 4
|
||||
358;E2_822.05;Alarm Word 22;5;358,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 5
|
||||
359;E2_822.06;Alarm Word 22;6;359,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 6
|
||||
360;E2_822.07;Alarm Word 22;7;360,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 7
|
||||
361;E2_822.08;Alarm Word 22;8;361,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 8
|
||||
362;E2_822.09;Alarm Word 22;9;362,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 9
|
||||
363;E2_822.10;Alarm Word 22;10;363,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 10
|
||||
364;E2_822.11;Alarm Word 22;11;364,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 11
|
||||
365;E2_822.12;Alarm Word 22;12;365,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 12
|
||||
366;E2_822.13;Alarm Word 22;13;366,OLIO CATENA - PRESSIONE MINIMA
|
||||
367;E2_822.14;Alarm Word 22;14;367,POMPA OLIO CATENA - ALLARME PROTEZIONE
|
||||
368;E2_822.15;Alarm Word 22;15;368,JBOX INGRESSO - BALLERINO BASSO
|
||||
369;E2_823.00;Alarm Word 23;0;369,JBOX INGRESSO - FINE TESSUTO
|
||||
370;E2_823.01;Alarm Word 23;1;370,JBOX INGRESSO - PIENO
|
||||
371;E2_823.02;Alarm Word 23;2;371,JBOX INGRESSO - BALLERINO ALTO
|
||||
372;E2_823.03;Alarm Word 23;3;372,JBOX INGRESSO - VUOTO
|
||||
373;E2_823.04;Alarm Word 23;4;373,JBOX USCITA - BALLERINO BASSO
|
||||
374;E2_823.05;Alarm Word 23;5;374,JBOX USCITA - FINE TESSUTO
|
||||
375;E2_823.06;Alarm Word 23;6;375,JBOX USCITA - PIENO
|
||||
376;E2_823.07;Alarm Word 23;7;376,JBOX USCITA - BALLERINO ALTO
|
||||
377;E2_823.08;Alarm Word 23;8;377,JBOX USCITA - VUOTO
|
||||
378;E2_823.09;Alarm Word 23;9;378,JBOX USCITA - ALLARME PRESSOSTATO
|
||||
379;E2_823.10;Alarm Word 23;10;379,JBOX ENTRATA - ALLARME PRESSOSTATO
|
||||
380;E2_823.11;Alarm Word 23;11;380,ALLARME PROTEZIONE CARRELLO FALDATORE
|
||||
381;E2_823.12;Alarm Word 23;12;381,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 1
|
||||
382;E2_823.13;Alarm Word 23;13;382,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 2
|
||||
383;E2_823.14;Alarm Word 23;14;383,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 3
|
||||
384;E2_823.15;Alarm Word 23;15;384,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 4
|
||||
385;E2_824.00;Alarm Word 24;0;385,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 5
|
||||
386;E2_824.01;Alarm Word 24;1;386,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 6
|
||||
387;E2_824.02;Alarm Word 24;2;387,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 7
|
||||
388;E2_824.03;Alarm Word 24;3;388,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 8
|
||||
389;E2_824.04;Alarm Word 24;4;389,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 9
|
||||
390;E2_824.05;Alarm Word 24;5;390,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 10
|
||||
391;E2_824.06;Alarm Word 24;6;391,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 11
|
||||
392;E2_824.07;Alarm Word 24;7;392,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 12
|
||||
393;E2_824.08;Alarm Word 24;8;393,ESTRATTORE FUMI RISC. INDIRETTO 1 - ALLARME PROTEZIONE
|
||||
394;E2_824.09;Alarm Word 24;9;394,ESTRATTORE FUMI RISC. INDIRETTO 2 - ALLARME PROTEZIONE
|
||||
395;E2_824.10;Alarm Word 24;10;395,ESTRATTORE FUMI RISC. INDIRETTO 3 - ALLARME PROTEZIONE
|
||||
396;E2_824.11;Alarm Word 24;11;396,ESTRATTORE FUMI RISC. INDIRETTO 4 - ALLARME PROTEZIONE
|
||||
397;E2_824.12;Alarm Word 24;12;397,ESTRATTORE FUMI RISC. INDIRETTO 5 - ALLARME PROTEZIONE
|
||||
398;E2_824.13;Alarm Word 24;13;398,ESTRATTORE FUMI RISC. INDIRETTO 6 - ALLARME PROTEZIONE
|
||||
399;E2_824.14;Alarm Word 24;14;399,TAGLIERINA SINISTRA - FUORI POSIZIONE
|
||||
400;E2_824.15;Alarm Word 24;15;400,TAGLIERINA DESTRA - FUORI POSIZIONE
|
||||
401;E2_825.00;Alarm Word 25;0;401,ALLARME PROTEZIONE CILINDRO CONTRASTO TAGLIERINE
|
||||
402;E2_825.01;Alarm Word 25;1;402,JBOX INGRESSO - TESSUTO INCROCIATO
|
||||
403;E2_825.02;Alarm Word 25;2;403,JBOX USCITA - TESSUTO INCROCIATO
|
||||
404;E2_825.03;Alarm Word 25;3;404,ALLARME DEVICE_NET STAZIONE ADDR.38 - JBOX INGRESSO
|
||||
405;E2_825.04;Alarm Word 25;4;405,ALLARME DEVICE_NET STAZIONE ADDR.39 - JBOX USCITA
|
||||
406;E2_825.05;Alarm Word 25;5;406,JBOX INGRESSO - ALLARME INVERTER
|
||||
407;E2_825.06;Alarm Word 25;6;407,JBOX USCITA - ALLARME INVERTER
|
||||
408;E2_825.07;Alarm Word 25;7;408,ALLARGA/CENTRATORE A/B SU IMBARRAGGIO - ALLARME PROTEZIONE
|
||||
409;E2_825.08;Alarm Word 25;8;409,ALLARME TIMEOUT VITE CAMPO PARALLELO 11
|
||||
410;E2_825.09;Alarm Word 25;9;410,ALLARME TIMEOUT VITE CAMPO PARALLELO 12
|
||||
411;E2_825.10;Alarm Word 25;10;411,FRENO JBOX INGRESSO - ALLARME PROTEZIONE
|
||||
412;E2_825.11;Alarm Word 25;11;412,FRENO JBOX USCITA - ALLARME PROTEZIONE
|
||||
413;E2_825.12;Alarm Word 25;12;413,ALLARME PROTEZIONE FRENO CAMPO CONICO SINISTRO
|
||||
414;E2_825.13;Alarm Word 25;13;414,ALLARME PROTEZIONE FRENO CAMPO CONICO DESTRO
|
||||
415;E2_825.14;Alarm Word 25;14;415,VERIFICA PRESSOSTATO 1 FALLITA
|
||||
416;E2_825.15;Alarm Word 25;15;416,VERIFICA PRESSOSTATO 2 FALLITA
|
||||
417;E2_826.00;Alarm Word 26;0;417,ALLARME TERMOSTATO INTERNO QUADRO
|
||||
418;E2_826.01;Alarm Word 26;1;418,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 1 POMPA 2
|
||||
419;E2_826.02;Alarm Word 26;2;419,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 2 POMPA 2
|
||||
420;E2_826.03;Alarm Word 26;3;420,PROTEZIONE RIBALTABILE INGRESSO
|
||||
421;E2_826.04;Alarm Word 26;4;421,FUNE EMERGENZA INGRESSO
|
||||
422;E2_826.05;Alarm Word 26;5;422,PARATIA SCORREVOLE INGRESSO SINISTRA
|
||||
423;E2_826.06;Alarm Word 26;6;423,PARATIA SCORREVOLE INGRESSO DESTRA
|
||||
424;E2_826.07;Alarm Word 26;7;424,CANCELLO SINISTRO ENTRATA ANTERIORE
|
||||
425;E2_826.08;Alarm Word 26;8;425,CANCELLO SINISTRO ENTRATA POSTERIORE
|
||||
426;E2_826.09;Alarm Word 26;9;426,CANCELLO DESTRO ENTRATA ANTERIORE
|
||||
427;E2_826.10;Alarm Word 26;10;427,CANCELLO DESTRO ENTRATA POSTERIORE
|
||||
428;E2_826.11;Alarm Word 26;11;428,CANCELLO SINISTRO USCITA
|
||||
429;E2_826.12;Alarm Word 26;12;429,CANCELLO DESTRO USCITA
|
||||
430;E2_826.13;Alarm Word 26;13;430,TENSIONATORE FUNE EMERGENZA SINISTRA ZONA FORNO
|
||||
431;E2_826.14;Alarm Word 26;14;431,TENSIONATORE FUNE EMERGENZA DESTRA ZONA FORNO
|
||||
432;E2_826.15;Alarm Word 26;15;432,FUNE EMERGENZA SINISTRA ZONA FORNO
|
||||
433;E2_827.00;Alarm Word 27;0;433,FUNE EMERGENZA DESTRA ZONA FORNO
|
||||
434;E2_827.01;Alarm Word 27;1;434,ALLARME FEEDBACK SCARICO ARIA ENTRATA MACCHINA (1)
|
||||
435;E2_827.02;Alarm Word 27;2;435,ALLARME FEEDBACK SCARICO ARIA ENTRATA MACCHINA (2)
|
||||
436;E2_827.03;Alarm Word 27;3;436,ALLARME FEEDBACK SCARICO ARIA USCITA MACCHINA (1)
|
||||
437;E2_827.04;Alarm Word 27;4;437,ALLARME FEEDBACK SCARICO ARIA USCITA MACCHINA (2)
|
||||
438;E2_827.05;Alarm Word 27;5;438,ALLARME FEEDBACK EMERGENZA GENERALE DA SCARICO ARIA
|
||||
439;E2_827.06;Alarm Word 27;6;439,BYPASS SPORTELLI ARMADIO ATTIVO
|
||||
440;E2_827.07;Alarm Word 27;7;440,TIMEOUT ENCODER CAMPO CONICO SINISTRO
|
||||
441;E2_827.08;Alarm Word 27;8;441,TIMEOUT ENCODER CAMPO CONICO DESTRO
|
||||
442;E2_827.09;Alarm Word 27;9;442,ALLARME BALLERINO ALTO SPREMITORE 1
|
||||
443;E2_827.10;Alarm Word 27;10;443,ALLARME BALLERINO ALTO SPREMITORE 2
|
||||
444;E2_827.11;Alarm Word 27;11;444,
|
||||
445;E2_827.12;Alarm Word 27;12;445,
|
||||
446;E2_827.13;Alarm Word 27;13;446,
|
||||
447;E2_827.14;Alarm Word 27;14;447,
|
||||
448;E2_827.15;Alarm Word 27;15;448,
|
||||
449;E2_828.00;Alarm Word 28;0;449,
|
||||
450;E2_828.01;Alarm Word 28;1;450,
|
||||
451;E2_828.02;Alarm Word 28;2;451,
|
||||
452;E2_828.03;Alarm Word 28;3;452,
|
||||
453;E2_828.04;Alarm Word 28;4;453,
|
||||
454;E2_828.05;Alarm Word 28;5;454,
|
||||
455;E2_828.06;Alarm Word 28;6;455,
|
||||
456;E2_828.07;Alarm Word 28;7;456,
|
||||
457;E2_828.08;Alarm Word 28;8;457,
|
||||
458;E2_828.09;Alarm Word 28;9;458,
|
||||
459;E2_828.10;Alarm Word 28;10;459,
|
||||
460;E2_828.11;Alarm Word 28;11;460,ALLARME PROTEZIONE BARRE ANTISTATICHE
|
||||
461;E2_828.12;Alarm Word 28;12;461,ALLARME PROTEZIONE VENTILAZIONE INTERNO QUADRO
|
||||
462;E2_828.13;Alarm Word 28;13;462,BORDO SENSIBILE
|
||||
463;E2_828.14;Alarm Word 28;14;463,FALDAROTOLATORE_SICUREZZA SX/DX
|
||||
464;E2_828.15;Alarm Word 28;15;464,FALDAROTOLATORE_EMERGENZA TESSUTO
|
||||
465;E2_829.00;Alarm Word 29;0;465,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.1
|
||||
466;E2_829.01;Alarm Word 29;1;466,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.2
|
||||
467;E2_829.02;Alarm Word 29;2;467,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.3
|
||||
468;E2_829.03;Alarm Word 29;3;468,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.4
|
||||
469;E2_829.04;Alarm Word 29;4;469,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.5
|
||||
470;E2_829.05;Alarm Word 29;5;470,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.6
|
||||
471;E2_829.06;Alarm Word 29;6;471,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.7
|
||||
472;E2_829.07;Alarm Word 29;7;472,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.8
|
||||
473;E2_829.08;Alarm Word 29;8;473,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.9
|
||||
474;E2_829.09;Alarm Word 29;9;474,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.10
|
||||
475;E2_829.10;Alarm Word 29;10;475,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.11
|
||||
476;E2_829.11;Alarm Word 29;11;476,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.12
|
||||
477;E2_829.12;Alarm Word 29;12;477,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 1/2
|
||||
478;E2_829.13;Alarm Word 29;13;478,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 3/4
|
||||
479;E2_829.14;Alarm Word 29;14;479,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 5/6
|
||||
480;E2_829.15;Alarm Word 29;15;480,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 7/8
|
||||
481;E2_830.00;Alarm Word 30;0;481,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 9/10
|
||||
482;E2_830.01;Alarm Word 30;1;482,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 1
|
||||
483;E2_830.02;Alarm Word 30;2;483,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 2
|
||||
484;E2_830.03;Alarm Word 30;3;484,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 3
|
||||
485;E2_830.04;Alarm Word 30;4;485,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 4
|
||||
486;E2_830.05;Alarm Word 30;5;486,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 5
|
||||
487;E2_830.06;Alarm Word 30;6;487,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 6
|
||||
488;E2_830.07;Alarm Word 30;7;488,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 7
|
||||
489;E2_830.08;Alarm Word 30;8;489,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 8
|
||||
490;E2_830.09;Alarm Word 30;9;490,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 9
|
||||
491;E2_830.10;Alarm Word 30;10;491,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 10
|
||||
492;E2_830.11;Alarm Word 30;11;492,TRASDUTTORE PRESSIONE BR 1 INTERROTTO
|
||||
493;E2_830.12;Alarm Word 30;12;493,TRASDUTTORE PRESSIONE BR 2 INTERROTTO
|
||||
494;E2_830.13;Alarm Word 30;13;494,TRASDUTTORE PRESSIONE BR 3 INTERROTTO
|
||||
495;E2_830.14;Alarm Word 30;14;495,TRASDUTTORE PRESSIONE BR 4 INTERROTTO
|
||||
496;E2_830.15;Alarm Word 30;15;496,TRASDUTTORE PRESSIONE BR 5 INTERROTTO
|
||||
497;E2_831.00;Alarm Word 31;0;497,TRASDUTTORE PRESSIONE BR 6 INTERROTTO
|
||||
498;E2_831.01;Alarm Word 31;1;498,TRASDUTTORE PRESSIONE BR 7 INTERROTTO
|
||||
499;E2_831.02;Alarm Word 31;2;499,TRASDUTTORE PRESSIONE BR 8 INTERROTTO
|
||||
500;E2_831.03;Alarm Word 31;3;500,TRASDUTTORE PRESSIONE BR 9 INTERROTTO
|
||||
501;E2_831.04;Alarm Word 31;4;501,TRASDUTTORE PRESSIONE BR 10 INTERROTTO
|
||||
502;E2_831.05;Alarm Word 31;5;502,TRASDUTTORE PRESSIONE BR 11 INTERROTTO
|
||||
503;E2_831.06;Alarm Word 31;6;503,TRASDUTTORE PRESSIONE BR 12 INTERROTTO
|
||||
504;E2_831.07;Alarm Word 31;7;504,ERRORE TRASDUTTORE DI PRESSIONE RC1
|
||||
505;E2_831.08;Alarm Word 31;8;505,ERRORE TRASDUTTORE DI PRESSIONE RC2
|
||||
506;E2_831.09;Alarm Word 31;9;506,ALLARME INVERTER RIPRISTINO PRESSIONE GRUPPO 1 RC
|
||||
507;E2_831.10;Alarm Word 31;10;507,ALLARME INVERTER RIPRISTINO PRESSIONE GRUPPO 2 RC
|
||||
508;E2_831.11;Alarm Word 31;11;508,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 11
|
||||
509;E2_831.12;Alarm Word 31;12;509,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 12
|
||||
510;E2_831.13;Alarm Word 31;13;510,ALLARME PRESSOSTATO TAGLIERINE
|
||||
511;E2_831.14;Alarm Word 31;14;511,BALLERINO ALTO - SROTOLATORE - ALLARME
|
||||
512;E2_831.15;Alarm Word 31;15;512,EMERGENZA DA LINEA ENTRATA RAMOSA
|
||||
513;E2_832.00;Alarm Word 32;0;513,LINEA ENTRATA RAMOSA NON PRONTA
|
||||
514;E2_832.01;Alarm Word 32;1;514,EMERGENZA DA LINEA USCITA RAMOSA
|
||||
515;E2_832.02;Alarm Word 32;2;515,LINEA USCITA RAMOSA NON PRONTA
|
||||
516;E2_832.03;Alarm Word 32;3;516,TAGLIERINA CENTRALE FUORI POSIZIONE
|
||||
517;E2_832.04;Alarm Word 32;4;517,TIRACIMOSSE NON PRONTO
|
||||
518;E2_832.05;Alarm Word 32;5;518,JBOX INGRESSO IN EMERGENZA
|
||||
519;E2_832.06;Alarm Word 32;6;519,JBOX INGRESSO NON PRONTO
|
||||
520;E2_832.07;Alarm Word 32;7;520,JBOX USCITA IN EMERGENZA
|
||||
521;E2_832.08;Alarm Word 32;8;521,JBOX USCITA NON PRONTO
|
||||
522;E2_832.09;Alarm Word 32;9;522,ALLARME D-NET 41 RISCALDAMENTO INDIRETTO
|
||||
523;E2_832.10;Alarm Word 32;10;523,SPAZZOLATRICE IN EMERGENZA
|
||||
524;E2_832.11;Alarm Word 32;11;524,SPAZZOLATRICE NON PRONTA
|
||||
525;E2_832.12;Alarm Word 32;12;525,ALLARME FUNE DI SICUREZZA USCITA STACCAPEZZA
|
||||
526;E2_832.13;Alarm Word 32;13;526,ALLARME FUNE DI SICUREZZA USCITA FALDAROTOLATORE
|
||||
527;E2_832.14;Alarm Word 32;14;527,ALLARME FUNE DI SICUREZZA CAMPO CONICO SINISTRO
|
||||
528;E2_832.15;Alarm Word 32;15;528,ALLARME FUNE DI SICUREZZA CAMPO CONICO DESTRO
|
||||
|
||||
|
@@ -1,793 +0,0 @@
|
||||
[
|
||||
{
|
||||
"description": "Alarm Word 0 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 0",
|
||||
"index": 0,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"1,ALLARME INVERTER CATENA TRASP. TESSUTO",
|
||||
"2,ALLARME INVERTER CILINDRO SOVRALIMENTAZIONE SUPERIORE",
|
||||
"3,ALLARME INVERTER CILINDRO SOVRALIMENTAZIONE INFERIORE",
|
||||
"4,ALLARME INVERTER RUOTA SOVRALIMENTAZIONE SINISTRA",
|
||||
"5,ALLARME INVERTER RUOTA SOVRALIMENTAZIONE DESTRA",
|
||||
"6,ALLARME INVERTER STACCAPEZZA",
|
||||
"7,ALLARME INVERTER FALDAROTOLATORE",
|
||||
"8,ALLARME INVERTER FALDERUOLE",
|
||||
"9,ALLARME INVERTER ESAUSTORE 1 ",
|
||||
"10,ALLARME FUNE SICUREZZA USCITA",
|
||||
"11,ALLARME VENTILATORE 1 (BASSO)",
|
||||
"12, ALLARME VENTILATORE 2 (BASSO)",
|
||||
"13,ALLARME F.C. MINIMO CAMPO MASTER",
|
||||
"14,ALLARME F.C. MASSIMO CAMPO MASTER",
|
||||
"15,ALLARME PROTEZIONE TAPPETO INGRESSO",
|
||||
"16,RIFERIMENTO POTENZIOMETRI CAMPI ASSENTE"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 1 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 1",
|
||||
"index": 1,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"17,ALLARME CONDIZIONATORI",
|
||||
"18,EMERGENZA IN CORSO !!!",
|
||||
"19,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 2 POMPA 1",
|
||||
"20,ALLARME POMPA RECUPERO CALORE 3",
|
||||
"21,CONTROLLO UMIDITA' : FUORI CAMPO",
|
||||
"22,ALLARME RILEVATORE ALTEZZA TESSUTO",
|
||||
"23,ALLARME NON RILASCIO TESSUTO SINISTRO",
|
||||
"24,ALLARME NON RILASCIO TESSUTO DESTRO",
|
||||
"25,ALLARME ALIMENTAZIONE 24VAC QUADRO",
|
||||
"26,ALLARME APRICIMOSSE",
|
||||
"27,ALLARME ASCIUGACIMOSSE A INFRAROSSI",
|
||||
"28,ALLARME PROTEZIONE CELLA DI RAFFREDDAMENTO 1",
|
||||
"29,CAMPO PARALLELO 2 ALLARME PROTEZIONE",
|
||||
"30,ALLARME VENTILATORE 3 (BASSO)",
|
||||
"31,ALLARME VENTILATORE 4 (BASSO)",
|
||||
"32,CAMPO PARALLELO 1 ALLARME PROTEZIONE"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 2 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 2",
|
||||
"index": 2,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"33,CAMPO PARALLELO 3 ALLARME PROTEZIONE",
|
||||
"34,RAGGIUNTO MASSIMO CARICO CELLA DI CARICO TAPPETO",
|
||||
"35,ALLARME FALLOPEZZA SINISTRO",
|
||||
"36,ALLARME FALLOPEZZA DESTRO",
|
||||
"37,PARATIE ANTERIORI APERTE",
|
||||
"38,ALLARME AZIONAMENTO CAMPO CONICO",
|
||||
"39,BLOCCO BRUCIATORE 9",
|
||||
"40,CAMPO MASTER ALLARME PROTEZIONE ",
|
||||
"41,ALLARME PRESSOSTATO TENDICATENA SINISTRO",
|
||||
"42,ALLARME PRESSOSTATO TENDICATENA DESTRO",
|
||||
"43,ALLARME MASSIMO ALLUNGAMENTO CATENA",
|
||||
"44,ALLARME TIPO LAVORO USCITA NON SELEZIONATO",
|
||||
"45,ALLARME RADDRIZZATRAMA",
|
||||
"46,ALLARME SPREMITORE 1",
|
||||
"47,BLOCCO BRUCIATORE 10",
|
||||
"48,BLOCCO BRUCIATORE 11"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 3 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 3",
|
||||
"index": 3,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"49,BLOCCO BRUCIATORE 12",
|
||||
"50,BLOCCO BRUCIATORE 1",
|
||||
"51,BLOCCO BRUCIATORE 2",
|
||||
"52,BLOCCO BRUCIATORE 3",
|
||||
"53,BLOCCO BRUCIATORE 4",
|
||||
"54,BIELLE FUORI POSIZIONE",
|
||||
"55,GRUPPO FALDATORE FUORI POSIZIONE",
|
||||
"56,SERIE ARRESTI APERTA",
|
||||
"57,MANCANZA LUBRIFICANTE CATENA TRASP. TESSUTO",
|
||||
"58,ALLARME INVERTER PICCOLO ROTOLO",
|
||||
"59,ALLARME PROTEZIONE ALLARGATORI",
|
||||
"60,ALLARME PROTEZIONE ASPIRACIMOSSE",
|
||||
"61,ALLARME TAGLIACIMOSSE SINISTRA",
|
||||
"62,ALLARME TAGLIACIMOSSE DESTRA",
|
||||
"63,ALLARME INVERTER VENTILATORI INV101",
|
||||
"64,ALLARME INVERTER VENTILATORI INV103"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 4 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 4",
|
||||
"index": 4,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"65,ALLARME TIMEOUT VITE CAMPO MASTER",
|
||||
"66,ALLARME TIMEOUT VITE CAMPO PARALLELO 1",
|
||||
"67,ALLARME TIMEOUT VITE CAMPO PARALLELO 2",
|
||||
"68,ALLARME TIMEOUT VITE CAMPO PARALLELO 3",
|
||||
"69,ALLARME TIMEOUT VITE CAMPO PARALLELO 4",
|
||||
"70,ALLARME TIMEOUT VITE CAMPO PARALLELO 5",
|
||||
"71,ALLARME TIMEOUT VITE CAMPO PARALLELO 6",
|
||||
"72,ALLARME TIMEOUT VITE CAMPO PARALLELO 7",
|
||||
"73,ALLARME TIMEOUT VITE CAMPO PARALLELO 8",
|
||||
"74,ALLARME TIMEOUT VITE CAMPO PARALLELO 9",
|
||||
"75,ALLARME DEVICE_NET ADDR. 32 DA BANCHETTO DI SPALMATURA",
|
||||
"76,ALLARME INVERTER DOGAL ",
|
||||
"77,ALLARME FOTOCELLULA TAPPETO USCITA PIENO",
|
||||
"78,TEMPO DI CICLO PLC SOPRA MASSIMO IMPOSTATO",
|
||||
"79,ERRORE INDIRIZZI SONDE BRUCIATORI",
|
||||
"80,ALLARME VENTILATORE 4 (ALTO)"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 5 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 5",
|
||||
"index": 5,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"81,ALLARME VENTILATORE 5 (ALTO)",
|
||||
"82,ALLARME VENTILATORE 6 (ALTO)",
|
||||
"83,ALLARME VENTILATORE 7 (ALTO)",
|
||||
"84,SONDA BRUCIATORE 1 INTERROTTA",
|
||||
"85,SONDA BRUCIATORE 2 INTERROTTA",
|
||||
"86,SONDA BRUCIATORE 3 INTERROTTA",
|
||||
"87,SONDA BRUCIATORE 4 INTERROTTA",
|
||||
"88,ALLARME DEVICE_NET ADDR. 0",
|
||||
"89,ALLARME DEVICE_NET ADDR. 1",
|
||||
"90,ALLARME DEVICE_NET ADDR. 2",
|
||||
"91,ALLARME DEVICE_NET ADDR. 3",
|
||||
"92,ALLARME DEVICE_NET ADDR. 4",
|
||||
"93,ALLARME DEVICE_NET ADDR. 5",
|
||||
"94,ALLARME DEVICE_NET ADDR. 6",
|
||||
"95,ALLARME DEVICE_NET ADDR. 7",
|
||||
"96,ALLARME DEVICE_NET ADDR. 8"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 6 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 6",
|
||||
"index": 6,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"97,ALLARME DEVICE_NET ADDR. 9",
|
||||
"98,ALLARME DEVICE_NET ADDR. 10",
|
||||
"99,ALLARME DEVICE_NET ADDR. 11",
|
||||
"100,ALLARME DEVICE_NET ADDR. 12",
|
||||
"101,ALLARME DEVICE_NET ADDR. 13",
|
||||
"102,ALLARME DEVICE_NET ADDR. 14",
|
||||
"103,ALLARME DEVICE_NET ADDR. 15",
|
||||
"104,ALLARME DEVICE_NET ADDR. 16",
|
||||
"105,ALLARME DEVICE_NET ADDR. 17",
|
||||
"106,ALLARME DEVICE_NET ADDR. 18",
|
||||
"107,ALLARME DEVICE_NET ADDR. 19",
|
||||
"108,ALLARME DEVICE_NET ADDR. 20",
|
||||
"109,ALLARME DEVICE_NET ADDR. 21",
|
||||
"110,ALLARME DEVICE_NET ADDR. 22",
|
||||
"111,ALLARME DEVICE_NET ADDR. 23",
|
||||
"112,ALLARME DEVICE_NET ADDR. 24"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 7 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 7",
|
||||
"index": 7,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"113,ALLARME DEVICE_NET ADDR. 25",
|
||||
"114,ALLARME DEVICE_NET ADDR. 26",
|
||||
"115,BLOCCO BRUCIATORE 5",
|
||||
"116,BLOCCO BRUCIATORE 6",
|
||||
"117,BLOCCO BRUCIATORE 7",
|
||||
"118,BLOCCO BRUCIATORE 8",
|
||||
"119,SOVRATEMPERATURA BRUCIATORE 1",
|
||||
"120,SOVRATEMPERATURA BRUCIATORE 2",
|
||||
"121,SOVRATEMPERATURA BRUCIATORE 3",
|
||||
"122,SOVRATEMPERATURA BRUCIATORE 4",
|
||||
"123,SOVRATEMPERATURA BRUCIATORE 5",
|
||||
"124,SOVRATEMPERATURA BRUCIATORE 6",
|
||||
"125,SOVRATEMPERATURA BRUCIATORE 7",
|
||||
"126,SOVRATEMPERATURA BRUCIATORE 8",
|
||||
"127,SONDA BRUCIATORE 5 INTERROTTA",
|
||||
"128,SONDA BRUCIATORE 6 INTERROTTA"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 8 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 8",
|
||||
"index": 8,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"129,SONDA BRUCIATORE 7 INTERROTTA",
|
||||
"130,SONDA BRUCIATORE 8 INTERROTTA",
|
||||
"131,SONDA BRUCIATORE 9 INTERROTTA",
|
||||
"132,SONDA BRUCIATORE 10 INTERROTTA",
|
||||
"133,SONDA BRUCIATORE 11 INTERROTTA",
|
||||
"134,SONDA BRUCIATORE 12 INTERROTTA",
|
||||
"135,SOVRATEMPERATURA BRUCIATORE 9",
|
||||
"136,SOVRATEMPERATURA BRUCIATORE 10",
|
||||
"137,SOVRATEMPERATURA BRUCIATORE 11",
|
||||
"138,SOVRATEMPERATURA BRUCIATORE 12",
|
||||
"139,ALLARME INVERTER VENTILATORI INV105",
|
||||
"140,ALLARME INVERTER VENTILATORI INV107",
|
||||
"141,ALLARME INVERTER VENTILATORI INV109",
|
||||
"142,ALLARME INVERTER VENTILATORI INV111",
|
||||
"143,ALLARME VENTILATORE 5 (BASSO)",
|
||||
"144,ALLARME VENTILATORE 6 (BASSO)"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 9 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 9",
|
||||
"index": 9,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"145,ALLARME VENTILATORE 7 (BASSO)",
|
||||
"146,ALLARME VENTILATORE 8 (BASSO)",
|
||||
"147,ALLARME VENTILATORE 9 (BASSO)",
|
||||
"148,ALLARME VENTILATORE 10 (BASSO)",
|
||||
"149,ALLARME VENTILATORE 11 (BASSO)",
|
||||
"150,ALLARME VENTILATORE 12 (BASSO)",
|
||||
"151,ALLARME INVERTER ESAUSTORE 2",
|
||||
"152,CAMPO PARALLELO 4 ALLARME PROTEZIONE",
|
||||
"153,CAMPO PARALLELO 5 ALLARME PROTEZIONE",
|
||||
"154,CAMPO PARALLELO 6 ALLARME PROTEZIONE",
|
||||
"155,CAMPO PARALLELO 7 ALLARME PROTEZIONE",
|
||||
"156,CAMPO PARALLELO 8 ALLARME PROTEZIONE",
|
||||
"157,ALLARME INSEGUIMENTO VITE MASTER AGGIUNTA",
|
||||
"158,ALLARME INVERTER CILINDRO RAFFREDDAMENTO",
|
||||
"159,ALLARME TEMPERATURA ESAUSTORI",
|
||||
"160,ALLARME INVERTER RECUPERO CALORE GRUPPO 1 "
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 10 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 10",
|
||||
"index": 10,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"161,ALLARME FINECORSA SX TAPPETO USCITA",
|
||||
"162,ALLARME FINECORSA DX TAPPETO USCITA",
|
||||
"163,ALLARME INVERTER RECUPERO CALORE GRUPPO 2",
|
||||
"164,ALLARME DEVICE_NET ADDR. 31",
|
||||
"165,ALLARME CENTRATORE USCITA",
|
||||
"166,COMPATTATORE NON PRONTO",
|
||||
"167,ALLARME CONTROLLO PIROMETRI",
|
||||
"168,ALLARME ALLARGATORE SU TAPPETO USCITA",
|
||||
"169,ALLARME CONTROLLO FUMI",
|
||||
"170,ALLARME FINECORSA BALLERINO ALTO",
|
||||
"171,ALLARME FINECORSA BALLERINO BASSO",
|
||||
"172,ALLARME PROTEZIONE ASPIRATORE VAPORIZZO INTENSIVO",
|
||||
"173,ALLARME PROTEZIONE BRUCIATORE 1",
|
||||
"174,ALLARME PROTEZIONE BRUCIATORE 2",
|
||||
"175,ALLARME PROTEZIONE BRUCIATORE 3",
|
||||
"176,ALLARME PROTEZIONE BRUCIATORE 4"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 11 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 11",
|
||||
"index": 11,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"177,ALLARME PROTEZIONE BRUCIATORE 5",
|
||||
"178,ALLARME PROTEZIONE BRUCIATORE 6",
|
||||
"179,ALLARME PROTEZIONE BRUCIATORE 7",
|
||||
"180,ALLARME PROTEZIONE BRUCIATORE 8",
|
||||
"181,ALLARME PROTEZIONE BRUCIATORE 9",
|
||||
"182,ALLARME PROTEZIONE BRUCIATORE 10",
|
||||
"183,ALLARME PROTEZIONE BRUCIATORE 11",
|
||||
"184,ALLARME PROTEZIONE BRUCIATORE 12",
|
||||
"185,TERMOFISSAGGIO O ESSICCAZIONE: TEMPERATURA FUORI CAMPO",
|
||||
"186,TERMOFISSAGGIO O ESSICCAZIONE: VELOCITA' FUORI CAMPO",
|
||||
"187,TERMOFISSAGGIO O ESSICCAZIONE: TEMPO FUORI CAMPO",
|
||||
"188,SISTEMA CAMPI PARALLELI NON TARATO",
|
||||
"189,ALLARME PROTEZIONE VENTOLE BRUCIATORI",
|
||||
"190,CAMPO CONICO SINISTRO SU LIMITE CHIUSURA",
|
||||
"191,CAMPO CONICO SINISTRO SU LIMITE APERTURA",
|
||||
"192,CAMPO CONICO DESTRO SU LIMITE APERTURA"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 12 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 12",
|
||||
"index": 12,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"193,CAMPO CONICO DESTRO SU LIMITE CHIUSURA",
|
||||
"194,FINECORSA CAMPO CONICO DESTRO SU TRAVERSA",
|
||||
"195,FINECORSA CAMPO CONICO SINISTRO SU TRAVERSA",
|
||||
"196,ALLARME PROTEZIONE INVERTER CAMPO CONICO SINISTRO",
|
||||
"197,ALLARME PROTEZIONE INVERTER CAMPO CONICO DESTRO",
|
||||
"198,ALLARME DEVICE_NET ADDR. 27",
|
||||
"199,ALLARME VENTILATORE 8 (ALTO)",
|
||||
"200,ALLARME VENTILATORE 9 (ALTO)",
|
||||
"201,ALLARME VENTILATORE 10 (ALTO)",
|
||||
"202,ALLARME VENTILATORE 11 (ALTO)",
|
||||
"203,ALLARME VENTILATORE 12 (ALTO)",
|
||||
"204,ALLARME VENTILATORE 1 (ALTO)",
|
||||
"205,ALLARME VENTILATORE 2 (ALTO)",
|
||||
"206,ALLARME VENTILATORE 3 (ALTO)",
|
||||
"207,ALLARME PROTEZIONE CELLA DI RAFFREDDAMENTO 2",
|
||||
"208,ALLARME FINECORSA TANDEM CONTROLLO ANSA TESSUTO"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 13 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 13",
|
||||
"index": 13,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"209,ALLARME FUNE SICUREZZA / PROTEZIONE RIBALTABILE ANTERIORE",
|
||||
"210,ALLARME INVERTER VENTILATORI INV101A",
|
||||
"211,ALLARME INVERTER VENTILATORI INV103A",
|
||||
"212,ALLARME INVERTER VENTILATORI INV105A",
|
||||
"213,ALLARME INVERTER VENTILATORI INV107A",
|
||||
"214,ALLARME INVERTER VENTILATORI INV109A",
|
||||
"215,ALLARME INVERTER VENTILATORI INV111A",
|
||||
"216,ALLARME DA BANCHETTO DI SPALMATURA",
|
||||
"217,ALLARME DEVICE_NET ADDR. 28",
|
||||
"218,STOP JOG USCITA PER PESO RAGGIUNTO SU CELLA DI CARICO",
|
||||
"219,DOGAL NON PRONTO",
|
||||
"220,ALLARME PROTEZIONE CELLA RAFFREDDAMENTO 91A",
|
||||
"221,MALFUNZIONAMENTO RECUPERO CALORE GRUPPO 1",
|
||||
"222,ALLARME PROTEZIONE SOSTEGNO TESSUTO",
|
||||
"223,TARATURA CAMPI CONICI NON EFFETTUATA!",
|
||||
"224,ALLARME TIMEOUT VITE CAMPO PARALLELO 10"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 14 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 14",
|
||||
"index": 14,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"225,CAMPO PARALLELO 9 ALLARME PROTEZIONE",
|
||||
"226,CAMPO PARALLELO 10 ALLARME PROTEZIONE",
|
||||
"227,CAMPO PARALLELO 11 ALLARME PROTEZIONE",
|
||||
"228,CAMPO PARALLELO 12 ALLARME PROTEZIONE",
|
||||
"229,ALLARME FLUSSOSTATO RECUPERO CALORE 1",
|
||||
"230,ALLARME FLUSSOSTATO RECUPERO CALORE 2",
|
||||
"231,ALLARME FLUSSOSTATO RECUPERO CALORE 3",
|
||||
"232,ALLARME PROTEZIONE VENTILATORE ASCIUGACIMOSSE",
|
||||
"233,ALLARME PROTEZIONE RESISTENZE ASCIUGACIMOSSE",
|
||||
"234,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 1 POMPA 1 ",
|
||||
"235,ALLARME INCENDIO",
|
||||
"236,ATTENZIONE ! ALLARME PRESENTE SU BANCHETTO DI SPALMATURA",
|
||||
"237,MALFUNZIONAMENTO RECUPERO CALORE GRUPPO 2",
|
||||
"238,ALLARME PROTEZIONE CELLA RAFFREDDAMENTO 91B",
|
||||
"239,ALLARME PROTEZIONE PULISCISPILLI",
|
||||
"240,BATTERIA PLC - LIVELLO BASSO"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 15 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 15",
|
||||
"index": 15,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"241,ALLARME CONTEMPORANEIT? TERMOSTATI SICUREZZA BRUCIATORI",
|
||||
"242,BLOCCO VERSIONE SOFTWARE",
|
||||
"243,SROTOLATORE NON PRONTO",
|
||||
"244,ERRORE DI COMUNICAZIONE PROTOCOL MACRO",
|
||||
"245,ALLARME TAGLIERINA URBAN",
|
||||
"246,FINE TESSUTO IN INGRESSO",
|
||||
"247,ALLARME PROTEZIONE SERVOVENTILAZIONI MOTORI",
|
||||
"248,ALLARME INVERTER ARROTOLATORE TANGENZIALE",
|
||||
"249,ALLARME SPREMITORE 2",
|
||||
"250,ALLARME FS-91ER PLEVA",
|
||||
"251,ALLARME LINEA EMERGENZA ARROTOLATORE",
|
||||
"252,ALLARME FOTOCELLULE ARROTOLATORE",
|
||||
"253,PORTA CASSETTA USCITA RAMOSA APERTA",
|
||||
"254,ALLARME FINECORSA CILINDRO PROTEZIONE ARROTOLATORE ASSIALE",
|
||||
"255,ALLARME PRESSOSTATI GRUPPO VALVOLE USCITA",
|
||||
"256,ARROTOLATORE NON PRONTO"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 16 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 16",
|
||||
"index": 16,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"257,FINECORSA GRUPPO FALDATORE AVANTI",
|
||||
"258,FINECORSA GRUPPO FALDATORE INDIETRO",
|
||||
"259,ALLARME BATTERIA ELETTRICA 1",
|
||||
"260,SOVRATEMPERATURA BATTERIA ELETTRICA 5",
|
||||
"261,ALLARME BATTERIA ELETTRICA 2",
|
||||
"262,RISCALDAMENTO QUADRO SPENTO",
|
||||
"263,SOVRATEMPERATURA BATTERIA ELETTRICA 1",
|
||||
"264,SOVRATEMPERATURA BATTERIA ELETTRICA 2",
|
||||
"265,ALLARME BATTERIA ELETTRICA 3",
|
||||
"266,EMERGENZA DA SPALMATRICE",
|
||||
"267,ALLARME BATTERIA ELETTRICA 4",
|
||||
"268,ALLARME BATTERIA ELETTRICA 5",
|
||||
"269,SOVRATEMPERATURA BATTERIA ELETTRICA 3",
|
||||
"270,SOVRATEMPERATURA BATTERIA ELETTRICA 4",
|
||||
"271,ALLARME IDROSTATO RECUPERO CALORE 1",
|
||||
"272,ALLARME SENSORE LIVELLO RECUPERO CALORE 1 : AGGIUNGERE LIQUIDO !"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 17 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 17",
|
||||
"index": 17,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"273,ALLARME RELE' CONTROLLO FASI",
|
||||
"274,ALLARME DEVICE NET ADDR. 40 - MODULO GRT1-DRT USCITA RAMOSA",
|
||||
"275,ALLARME PRESSOSTATO LINEA ENTRATA MACCHINA",
|
||||
"276,ALLARME PRESSOSTATO LINEA USCITA MACCHINA",
|
||||
"277,CAMPO CANNOCCHIALI 1 BLOCCATO",
|
||||
"278,CAMPO CANNOCCHIALI 2 BLOCCATO",
|
||||
"279,ALLARME DISCONTINUITA' CAMPI PARALLELI",
|
||||
"280,ALLARME INSEGUIMENTO CAMPI PARALLELI - VITE LENTA",
|
||||
"281,ALLARME LIMITE VITI",
|
||||
"282,RAGGIUNTO MASSIMO CARICO SU CELLA DI CARICO",
|
||||
"283,ALLARME PRESSOSTATO ESAUSTORE",
|
||||
"284,EMERGENZA MOVIMENTO TESSUTO",
|
||||
"285,EMERGENZA DA SPREMITORE 1",
|
||||
"286,EMERGENZA DA RADDRIZZATRAMA",
|
||||
"287,EMERGENZA DA SROTOLATORE",
|
||||
"288,EMERGENZA DA ARROTOLATORE"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 18 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 18",
|
||||
"index": 18,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"289,ALLARME SICUREZZA BRUCIATORE 1",
|
||||
"290,ALLARME SICUREZZA BRUCIATORE 2",
|
||||
"291,ALLARME SICUREZZA BRUCIATORE 3",
|
||||
"292,ALLARME SICUREZZA BRUCIATORE 4",
|
||||
"293,ALLARME SICUREZZA BRUCIATORE 5",
|
||||
"294,ALLARME SICUREZZA BRUCIATORE 6",
|
||||
"295,ALLARME SICUREZZA BRUCIATORE 7",
|
||||
"296,ALLARME SICUREZZA BRUCIATORE 8",
|
||||
"297,ALLARME SICUREZZA BRUCIATORE 9",
|
||||
"298,ALLARME SICUREZZA BRUCIATORE 10",
|
||||
"299,ALLARME SICUREZZA BRUCIATORE 11",
|
||||
"300,ALLARME SICUREZZA BRUCIATORE 12",
|
||||
"301,ALLARME BRUCIATORE 1 SPENTO",
|
||||
"302,ALLARME BRUCIATORE 2 SPENTO",
|
||||
"303,ALLARME BRUCIATORE 3 SPENTO",
|
||||
"304,ALLARME BRUCIATORE 4 SPENTO"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 19 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 19",
|
||||
"index": 19,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"305,ALLARME BRUCIATORE 5 SPENTO",
|
||||
"306,ALLARME BRUCIATORE 6 SPENTO",
|
||||
"307,ALLARME BRUCIATORE 7 SPENTO",
|
||||
"308,ALLARME BRUCIATORE 8 SPENTO",
|
||||
"309,ALLARME BRUCIATORE 9 SPENTO",
|
||||
"310,ALLARME BRUCIATORE 10 SPENTO",
|
||||
"311,ALLARME BRUCIATORE 11 SPENTO",
|
||||
"312,ALLARME BRUCIATORE 12 SPENTO",
|
||||
"313,ALLARME SENSORE LIVELLO RECUPERO CALORE 2 : AGGIUNGERE LIQUIDO !",
|
||||
"314,ALLARME DA MIXER",
|
||||
"315,ALLARME PRESSOSTATI LUBRIFICAZIONE",
|
||||
"316,ALLARME ABBATTITORE FUMI",
|
||||
"317,MACCHINA 1 NON IN LINEA",
|
||||
"318,MACCHINA 2 NON IN LINEA",
|
||||
"319,MACCHINA 3 NON IN LINEA",
|
||||
"320,MACCHINA 4 NON IN LINEA"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 20 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 20",
|
||||
"index": 20,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"321,MACCHINA 5 NON IN LINEA",
|
||||
"322,MACCHINA 6 NON IN LINEA",
|
||||
"323,MACCHINA 7 NON IN LINEA",
|
||||
"324,MACCHINA 8 NON IN LINEA",
|
||||
"325,NON STOP NON PRONTO",
|
||||
"326,EMERGENZA DA NON STOP",
|
||||
"327,ALLARME DISCONTINUITA' CAMPO MASTER",
|
||||
"328,ALLARME DISCONTINUITA' CAMPO PARALLELO 1",
|
||||
"329,ALLARME DISCONTINUITA' CAMPO PARALLELO 2",
|
||||
"330,ALLARME DISCONTINUITA' CAMPO PARALLELO 3",
|
||||
"331,ALLARME DISCONTINUITA' CAMPO PARALLELO 4",
|
||||
"332,ALLARME DISCONTINUITA' CAMPO PARALLELO 5",
|
||||
"333,ALLARME DISCONTINUITA' CAMPO PARALLELO 6",
|
||||
"334,ALLARME DISCONTINUITA' CAMPO PARALLELO 7",
|
||||
"335,ALLARME DISCONTINUITA' CAMPO PARALLELO 8",
|
||||
"336,ALLARME DISCONTINUITA' CAMPO PARALLELO 9"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 21 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 21",
|
||||
"index": 21,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"337,ALLARME DISCONTINUITA' CAMPO PARALLELO 10",
|
||||
"338,PROTEZIONI INGRESSO APERTE",
|
||||
"339,PROTEZIONI USCITA APERTE",
|
||||
"340,ALLARME PROTEZIONE ESTRATTORE FUMI 1",
|
||||
"341,ALLARME PROTEZIONE ESTRATTORE FUMI 2",
|
||||
"342,MANCANZA PRESSOSTATO ESTRATTORE FUMI 1",
|
||||
"343,MANCANZA PRESSOSTATO ESTRATTORE FUMI 2",
|
||||
"344,EMERGENZA DA MIXER",
|
||||
"345,EMERGENZA DA SPREMITORE 2",
|
||||
"346,ALLARME PROTEZIONE VENTILATORE RECUPERO CALORE 1",
|
||||
"347,ALLARME PROTEZIONE VENTILATORE RECUPERO CALORE 2",
|
||||
"348,ALLARME MODULO VELOCITA? ZERO CATENA TRASP. TESSUTO",
|
||||
"349,ALLARME RILEVAMENTO TESSUTO SINISTRO USCITA",
|
||||
"350,ALLARME RILEVAMENTO TESSUTO DESTRO USCITA",
|
||||
"351,ALLARME FINECORSA SOLLEVAMENTO CAMPI CONICI",
|
||||
"352,ALLARME IDROSTATO RECUPERO CALORE 2"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 22 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 22",
|
||||
"index": 22,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"353,ALLARME FUNE DI PROTEZIONE IN USCITA",
|
||||
"354,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 1",
|
||||
"355,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 2",
|
||||
"356,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 3",
|
||||
"357,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 4",
|
||||
"358,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 5",
|
||||
"359,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 6",
|
||||
"360,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 7",
|
||||
"361,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 8",
|
||||
"362,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 9",
|
||||
"363,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 10",
|
||||
"364,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 11",
|
||||
"365,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 12",
|
||||
"366,OLIO CATENA - PRESSIONE MINIMA",
|
||||
"367,POMPA OLIO CATENA - ALLARME PROTEZIONE",
|
||||
"368,JBOX INGRESSO - BALLERINO BASSO"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 23 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 23",
|
||||
"index": 23,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"369,JBOX INGRESSO - FINE TESSUTO",
|
||||
"370,JBOX INGRESSO - PIENO",
|
||||
"371,JBOX INGRESSO - BALLERINO ALTO",
|
||||
"372,JBOX INGRESSO - VUOTO",
|
||||
"373,JBOX USCITA - BALLERINO BASSO",
|
||||
"374,JBOX USCITA - FINE TESSUTO",
|
||||
"375,JBOX USCITA - PIENO",
|
||||
"376,JBOX USCITA - BALLERINO ALTO",
|
||||
"377,JBOX USCITA - VUOTO",
|
||||
"378,JBOX USCITA - ALLARME PRESSOSTATO",
|
||||
"379,JBOX ENTRATA - ALLARME PRESSOSTATO",
|
||||
"380,ALLARME PROTEZIONE CARRELLO FALDATORE",
|
||||
"381,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 1",
|
||||
"382,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 2",
|
||||
"383,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 3",
|
||||
"384,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 4"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 24 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 24",
|
||||
"index": 24,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"385,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 5",
|
||||
"386,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 6",
|
||||
"387,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 7",
|
||||
"388,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 8",
|
||||
"389,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 9",
|
||||
"390,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 10",
|
||||
"391,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 11",
|
||||
"392,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 12",
|
||||
"393,ESTRATTORE FUMI RISC. INDIRETTO 1 - ALLARME PROTEZIONE",
|
||||
"394,ESTRATTORE FUMI RISC. INDIRETTO 2 - ALLARME PROTEZIONE",
|
||||
"395,ESTRATTORE FUMI RISC. INDIRETTO 3 - ALLARME PROTEZIONE",
|
||||
"396,ESTRATTORE FUMI RISC. INDIRETTO 4 - ALLARME PROTEZIONE",
|
||||
"397,ESTRATTORE FUMI RISC. INDIRETTO 5 - ALLARME PROTEZIONE",
|
||||
"398,ESTRATTORE FUMI RISC. INDIRETTO 6 - ALLARME PROTEZIONE",
|
||||
"399,TAGLIERINA SINISTRA - FUORI POSIZIONE",
|
||||
"400,TAGLIERINA DESTRA - FUORI POSIZIONE"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 25 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 25",
|
||||
"index": 25,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"401,ALLARME PROTEZIONE CILINDRO CONTRASTO TAGLIERINE",
|
||||
"402,JBOX INGRESSO - TESSUTO INCROCIATO",
|
||||
"403,JBOX USCITA - TESSUTO INCROCIATO",
|
||||
"404,ALLARME DEVICE_NET STAZIONE ADDR.38 - JBOX INGRESSO",
|
||||
"405,ALLARME DEVICE_NET STAZIONE ADDR.39 - JBOX USCITA",
|
||||
"406,JBOX INGRESSO - ALLARME INVERTER",
|
||||
"407,JBOX USCITA - ALLARME INVERTER",
|
||||
"408,ALLARGA/CENTRATORE A/B SU IMBARRAGGIO - ALLARME PROTEZIONE",
|
||||
"409,ALLARME TIMEOUT VITE CAMPO PARALLELO 11",
|
||||
"410,ALLARME TIMEOUT VITE CAMPO PARALLELO 12",
|
||||
"411,FRENO JBOX INGRESSO - ALLARME PROTEZIONE",
|
||||
"412,FRENO JBOX USCITA - ALLARME PROTEZIONE",
|
||||
"413,ALLARME PROTEZIONE FRENO CAMPO CONICO SINISTRO",
|
||||
"414,ALLARME PROTEZIONE FRENO CAMPO CONICO DESTRO",
|
||||
"415,VERIFICA PRESSOSTATO 1 FALLITA",
|
||||
"416,VERIFICA PRESSOSTATO 2 FALLITA"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 26 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 26",
|
||||
"index": 26,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"417,ALLARME TERMOSTATO INTERNO QUADRO",
|
||||
"418,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 1 POMPA 2",
|
||||
"419,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 2 POMPA 2",
|
||||
"420,PROTEZIONE RIBALTABILE INGRESSO",
|
||||
"421,FUNE EMERGENZA INGRESSO",
|
||||
"422,PARATIA SCORREVOLE INGRESSO SINISTRA",
|
||||
"423,PARATIA SCORREVOLE INGRESSO DESTRA",
|
||||
"424,CANCELLO SINISTRO ENTRATA ANTERIORE",
|
||||
"425,CANCELLO SINISTRO ENTRATA POSTERIORE",
|
||||
"426,CANCELLO DESTRO ENTRATA ANTERIORE",
|
||||
"427,CANCELLO DESTRO ENTRATA POSTERIORE",
|
||||
"428,CANCELLO SINISTRO USCITA",
|
||||
"429,CANCELLO DESTRO USCITA",
|
||||
"430,TENSIONATORE FUNE EMERGENZA SINISTRA ZONA FORNO",
|
||||
"431,TENSIONATORE FUNE EMERGENZA DESTRA ZONA FORNO",
|
||||
"432,FUNE EMERGENZA SINISTRA ZONA FORNO"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 27 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 27",
|
||||
"index": 27,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"433,FUNE EMERGENZA DESTRA ZONA FORNO",
|
||||
"434,ALLARME FEEDBACK SCARICO ARIA ENTRATA MACCHINA (1)",
|
||||
"435,ALLARME FEEDBACK SCARICO ARIA ENTRATA MACCHINA (2)",
|
||||
"436,ALLARME FEEDBACK SCARICO ARIA USCITA MACCHINA (1)",
|
||||
"437,ALLARME FEEDBACK SCARICO ARIA USCITA MACCHINA (2)",
|
||||
"438,ALLARME FEEDBACK EMERGENZA GENERALE DA SCARICO ARIA",
|
||||
"439,BYPASS SPORTELLI ARMADIO ATTIVO",
|
||||
"440,TIMEOUT ENCODER CAMPO CONICO SINISTRO",
|
||||
"441,TIMEOUT ENCODER CAMPO CONICO DESTRO",
|
||||
"442,ALLARME BALLERINO ALTO SPREMITORE 1",
|
||||
"443,ALLARME BALLERINO ALTO SPREMITORE 2",
|
||||
"444,",
|
||||
"445,",
|
||||
"446,",
|
||||
"447,",
|
||||
"448,"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 28 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 28",
|
||||
"index": 28,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"449,",
|
||||
"450,",
|
||||
"451,",
|
||||
"452,",
|
||||
"453,",
|
||||
"454,",
|
||||
"455,",
|
||||
"456,",
|
||||
"457,",
|
||||
"458,",
|
||||
"459,",
|
||||
"460,ALLARME PROTEZIONE BARRE ANTISTATICHE",
|
||||
"461,ALLARME PROTEZIONE VENTILAZIONE INTERNO QUADRO",
|
||||
"462,BORDO SENSIBILE ",
|
||||
"463,FALDAROTOLATORE_SICUREZZA SX/DX ",
|
||||
"464,FALDAROTOLATORE_EMERGENZA TESSUTO "
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 29 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 29",
|
||||
"index": 29,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"465,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.1",
|
||||
"466,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.2",
|
||||
"467,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.3",
|
||||
"468,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.4",
|
||||
"469,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.5",
|
||||
"470,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.6",
|
||||
"471,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.7",
|
||||
"472,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.8",
|
||||
"473,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.9",
|
||||
"474,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.10",
|
||||
"475,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.11",
|
||||
"476,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.12",
|
||||
"477,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 1/2",
|
||||
"478,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 3/4",
|
||||
"479,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 5/6",
|
||||
"480,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 7/8"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Alarm Word 30 ",
|
||||
"tipoMem": "Byte",
|
||||
"memAddr": "Alarm Word 30",
|
||||
"index": 30,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"481,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 9/10",
|
||||
"482,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 1",
|
||||
"483,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 2",
|
||||
"484,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 3",
|
||||
"485,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 4",
|
||||
-11
@@ -1,11 +0,0 @@
|
||||
# ToDo's aperti
|
||||
## ALL
|
||||
- verifica disattivazione WDST da IOB vari
|
||||
- riorganizzazione GLOBALE degli IOB x folder del tipo iob (OPC-UA, ModBus, Siemens...)
|
||||
|
||||
## IMI REMOSA
|
||||
|
||||
Da completare:
|
||||
- lantek: capire come rendono il link tra dati PODL e part program
|
||||
- check stato dati IMI altri impianto (sembrano "vuotini")
|
||||
|
||||
BIN
Binary file not shown.
Binary file not shown.
@@ -13,7 +13,7 @@ PORT=8193
|
||||
GETPRGNAME=true
|
||||
|
||||
[SERVER]
|
||||
MPIP=192.168.111.104
|
||||
MPIP=192.168.0.113
|
||||
MPURL=/MP/IO
|
||||
CMDBASE=/IOB/input/
|
||||
CMDFLOG=/IOB/flog/
|
||||
|
||||
@@ -13,7 +13,7 @@ PORT=8193
|
||||
GETPRGNAME=true
|
||||
|
||||
[SERVER]
|
||||
MPIP=192.168.111.104
|
||||
MPIP=192.168.0.113
|
||||
MPURL=/MP/IO
|
||||
CMDBASE=/IOB/input/
|
||||
CMDFLOG=/IOB/flog/
|
||||
|
||||
@@ -33,12 +33,7 @@
|
||||
public int IdxODL { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// DataType in output del file da processare (default Record Giacenze Giacovelli)
|
||||
/// </summary>
|
||||
public OutDataType ReturnDataType { get; set; } = OutDataType.RegGiacenze;
|
||||
|
||||
/// <summary>
|
||||
/// Parametri per processing file: indica in quale NUMERO colonna (INT) ci sia un valore
|
||||
/// Parametri per processing file string --> int
|
||||
/// </summary>
|
||||
public Dictionary<string, int> ProcessParamInt { get; set; } = new Dictionary<string, int>();
|
||||
|
||||
@@ -57,21 +52,6 @@
|
||||
/// </summary>
|
||||
public string RedisOut { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// Porta Redis salvataggio
|
||||
/// </summary>
|
||||
public int RedisPort { get; set; } = 6379;
|
||||
|
||||
/// <summary>
|
||||
/// Indirizzo Redis server
|
||||
/// </summary>
|
||||
public string RedisServer { get; set; } = "localhost";
|
||||
|
||||
/// <summary>
|
||||
/// Valore TTL chiavi salvate in Redis (secondi)) - 0 = non scade
|
||||
/// </summary>
|
||||
public int RedisTTL { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Modalità ritorno risutlati
|
||||
/// </summary>
|
||||
|
||||
@@ -20,14 +20,6 @@ namespace EgwCApp.Core
|
||||
ND,
|
||||
IcoelBatch,
|
||||
IcoelVarInfo,
|
||||
RegGiacenze,
|
||||
TaglioUstd
|
||||
}
|
||||
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
public enum OutDataType
|
||||
{
|
||||
ParamTaglioUstd,
|
||||
RegGiacenze
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using StackExchange.Redis;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
@@ -9,147 +8,25 @@ namespace EgwCApp.Core
|
||||
{
|
||||
public class RedisMan
|
||||
{
|
||||
#region Public Constructors
|
||||
|
||||
protected string connString = "";
|
||||
protected string servAddr = "";
|
||||
protected int servPort = 0;
|
||||
protected int redisDb = 0;
|
||||
public RedisMan(string server, int port, int db)
|
||||
{
|
||||
servAddr = server;
|
||||
servPort = port;
|
||||
redisDb = db;
|
||||
connString = $"{servAddr}:{servPort},abortConnect=false,ssl=false";
|
||||
connRedis = ConnectionMultiplexer.Connect(connString);
|
||||
connString = $"{servAddr}:{servPort},db={redisDb},abortConnect=false,ssl=false";
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Public Properties
|
||||
|
||||
/// <summary>
|
||||
/// Oggetto DB REDIS corrente
|
||||
/// </summary>
|
||||
public IDatabase cache
|
||||
public bool writeData(string redKey, string rawData)
|
||||
{
|
||||
get
|
||||
{
|
||||
IDatabase answ;
|
||||
// se già valorizzato uso oggetto private...
|
||||
if (_currDB != null)
|
||||
{
|
||||
answ = _currDB;
|
||||
}
|
||||
else
|
||||
{
|
||||
// init DB
|
||||
answ = connRedis.GetDatabase(redisDb);
|
||||
_currDB = answ;
|
||||
}
|
||||
// restituisco oggetto DB
|
||||
return answ;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Oggetto statico connessione redis
|
||||
/// </summary>
|
||||
public ConnectionMultiplexer connRedis { get; set; }
|
||||
|
||||
#endregion Public Properties
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce una chiave salvata in RedisCache
|
||||
/// </summary>
|
||||
/// <param name="chiave"></param>
|
||||
/// <returns></returns>
|
||||
public string getRSV(string chiave)
|
||||
public string getRSV(string redKey)
|
||||
{
|
||||
string answ = "";
|
||||
try
|
||||
{
|
||||
answ = cache.StringGet(chiave);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
#if false
|
||||
Logging.Instance.Info($"getRSV {exc}");
|
||||
#endif
|
||||
}
|
||||
return answ;
|
||||
return "";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Salva una chiave in RedisCache
|
||||
/// </summary>
|
||||
/// <param name="chiave"></param>
|
||||
/// <param name="valore"></param>
|
||||
/// <returns></returns>
|
||||
public bool setRSV(string chiave, string valore)
|
||||
{
|
||||
bool answ = false;
|
||||
try
|
||||
{
|
||||
cache.StringSet(chiave, valore);
|
||||
answ = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
#if false
|
||||
Logging.Instance.Error($"setRSV {exc}");
|
||||
#endif
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Salva una chiave in RedisCache
|
||||
/// </summary>
|
||||
/// <param name="chiave"></param>
|
||||
/// <param name="valore"></param>
|
||||
/// <param name="TTL_sec">in secondi</param>
|
||||
/// <returns></returns>
|
||||
public bool setRSV(string chiave, string valore, int TTL_sec)
|
||||
{
|
||||
bool answ = false;
|
||||
try
|
||||
{
|
||||
TimeSpan expT = new TimeSpan(0, 0, TTL_sec);
|
||||
// salvo con expyry...
|
||||
cache.StringSet(chiave, valore, expT);
|
||||
answ = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
#if false
|
||||
Logging.Instance.Error($"setRSV {exc}");
|
||||
#endif
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Protected Fields
|
||||
|
||||
protected int redisDb = 0;
|
||||
protected string servAddr = "";
|
||||
protected int servPort = 0;
|
||||
|
||||
#endregion Protected Fields
|
||||
|
||||
#region Private Fields
|
||||
|
||||
private string connString = "";
|
||||
|
||||
#endregion Private Fields
|
||||
|
||||
#region Private Properties
|
||||
|
||||
/// <summary>
|
||||
/// Oggetto currentDb REDIS locale
|
||||
/// </summary>
|
||||
private IDatabase _currDB { get; set; }
|
||||
|
||||
#endregion Private Properties
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
namespace EgwCApp.Core
|
||||
{
|
||||
public class UstdData
|
||||
{
|
||||
#region Public Classes
|
||||
|
||||
public class CutterParam
|
||||
{
|
||||
#region Public Properties
|
||||
/// <summary>
|
||||
/// Codice articolo
|
||||
/// </summary>
|
||||
public string Codice { get; set; } = "ND";
|
||||
|
||||
/// <summary>
|
||||
/// Serie Articolo
|
||||
/// </summary>
|
||||
public string Serie { get; set; } = "NA";
|
||||
/// <summary>
|
||||
/// Lunghezza pezzo da realizzare
|
||||
/// </summary>
|
||||
public double LungPezzo { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// Quota uscita alama
|
||||
/// </summary>
|
||||
public double QuotaUscita { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// Lunghezza della barra di partenza
|
||||
/// </summary>
|
||||
public double LungBarra { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// Altezza pezzo
|
||||
/// </summary>
|
||||
public double Altezza { get; set; } = 0;
|
||||
|
||||
#endregion Public Properties
|
||||
}
|
||||
|
||||
#endregion Public Classes
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
using EgwCApp.Core;
|
||||
using Newtonsoft.Json;
|
||||
using static EgwCApp.Core.UstdData;
|
||||
using static EgwCApp.Core.WharehouseData;
|
||||
|
||||
namespace EgwCApp.ExcImport
|
||||
@@ -83,7 +82,7 @@ namespace EgwCApp.ExcImport
|
||||
break;
|
||||
|
||||
case ImportType.Excel:
|
||||
fileReturnData = processExcelImport(taskConfig.FileInPath, taskConfig.ReturnDataType);
|
||||
fileReturnData = processExcelImport(taskConfig.FileInPath);
|
||||
answ = true;
|
||||
break;
|
||||
|
||||
@@ -114,18 +113,6 @@ namespace EgwCApp.ExcImport
|
||||
break;
|
||||
|
||||
case ReturnMode.Redis:
|
||||
// salvo in Redis!
|
||||
string rKey = taskConfig.RedisOut;
|
||||
RedisMan redMan = new RedisMan(taskConfig.RedisServer, taskConfig.RedisPort, taskConfig.RedisDB);
|
||||
// salvo!
|
||||
if (taskConfig.RedisTTL > 0)
|
||||
{
|
||||
redMan.setRSV(rKey, fileReturnData, taskConfig.RedisTTL);
|
||||
}
|
||||
else
|
||||
{
|
||||
redMan.setRSV(rKey, fileReturnData);
|
||||
}
|
||||
break;
|
||||
|
||||
case ReturnMode.File:
|
||||
@@ -154,16 +141,14 @@ namespace EgwCApp.ExcImport
|
||||
{
|
||||
if (!string.IsNullOrEmpty(taskConfig.ArchiveDir))
|
||||
{
|
||||
// folder archivio con dataora...
|
||||
string folderArch = Path.Combine(taskConfig.ArchiveDir, $"{DateTime.Now:yyyyMMdd_HHmmss}");
|
||||
// verifico cartella archivio
|
||||
if (!Directory.Exists(folderArch))
|
||||
if (!Directory.Exists(taskConfig.ArchiveDir))
|
||||
{
|
||||
Directory.CreateDirectory(folderArch);
|
||||
Directory.CreateDirectory(taskConfig.ArchiveDir);
|
||||
}
|
||||
// sposto file
|
||||
string fName = Path.GetFileName(taskConfig.FileInPath);
|
||||
File.Move(taskConfig.FileInPath, Path.Combine(folderArch, fName), true);
|
||||
File.Move(taskConfig.FileInPath, Path.Combine(taskConfig.ArchiveDir, fName), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -233,33 +218,11 @@ namespace EgwCApp.ExcImport
|
||||
/// </summary>
|
||||
/// <param name="fileItem"></param>
|
||||
/// <returns></returns>
|
||||
private string processExcelImport(string fileItem, OutDataType outReq = OutDataType.RegGiacenze)
|
||||
private string processExcelImport(string fileItem)
|
||||
{
|
||||
string outVal = "";
|
||||
switch (outReq)
|
||||
{
|
||||
case OutDataType.ParamTaglioUstd:
|
||||
outVal = getParTaglioUstdJson(fileItem, true);
|
||||
break;
|
||||
case OutDataType.RegGiacenze:
|
||||
default:
|
||||
outVal = getRegGiacJson(fileItem);
|
||||
break;
|
||||
}
|
||||
return outVal;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Processa e restituisce un oggetto lista giacenze serializzato
|
||||
/// </summary>
|
||||
/// <param name="fileItem">Nome file excel</param>
|
||||
/// <param name="doIndent">Output indentato</param>
|
||||
/// <returns></returns>
|
||||
private string getRegGiacJson(string fileItem, bool doIndent = false)
|
||||
{
|
||||
int numErr = 0;
|
||||
string outVal = "";
|
||||
// test procedura di import files excel (default Giacovelli...)
|
||||
// test procedura di import files excel x Giacovelli...
|
||||
var currExcel = new ExcelMan(fileItem);
|
||||
// creo lista dati in formato RegGiacenze...
|
||||
Dictionary<string, BatchRec> listaGiac = new Dictionary<string, BatchRec>();
|
||||
@@ -324,7 +287,7 @@ namespace EgwCApp.ExcImport
|
||||
}
|
||||
else if (checkEmptyDdt || checkEmptyDate)
|
||||
{
|
||||
//lgTrace($"SKIP linea vuota | i: {i} | codice: {codice} | date: {serie} | prod: {prod}");
|
||||
//lgTrace($"SKIP linea vuota | i: {i} | ddt: {ddt} | date: {sDate} | prod: {prod}");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -396,8 +359,7 @@ namespace EgwCApp.ExcImport
|
||||
rCounter++;
|
||||
}
|
||||
// serializzo e restituisco file JSON...
|
||||
Formatting fMode = doIndent ? Formatting.Indented : Formatting.None;
|
||||
var serVal = JsonConvert.SerializeObject(list2Send, fMode);
|
||||
var serVal = JsonConvert.SerializeObject(list2Send);
|
||||
if (serVal != null && !string.IsNullOrEmpty(serVal))
|
||||
{
|
||||
outVal = serVal;
|
||||
@@ -406,166 +368,6 @@ namespace EgwCApp.ExcImport
|
||||
return outVal;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Processa e restituisce un oggetto parametri taglio serializzato
|
||||
/// </summary>
|
||||
/// <param name="fileItem">Nome file excel</param>
|
||||
/// <param name="doIndent">Output indentato</param>
|
||||
/// <returns>Restituisce un serializzato formato Dictionary<string, CutterParam></returns>
|
||||
private string getParTaglioUstdJson(string fileItem, bool doIndent = false)
|
||||
{
|
||||
int numErr = 0;
|
||||
string outVal = "";
|
||||
// test procedura di import files excel (default Giacovelli...)
|
||||
var currExcel = new ExcelMan(fileItem);
|
||||
// creo lista dati in formato ParametriTaglioUSTD...
|
||||
Dictionary<string, CutterParam> listaParams = new Dictionary<string, CutterParam>();
|
||||
var dtSet = currExcel.getDataSet();
|
||||
if (dtSet != null && dtSet.Tables != null && dtSet.Tables.Count > 0)
|
||||
{
|
||||
string nomeFile = Path.GetFileName(fileItem);
|
||||
nomeFile = nomeFile.Substring(0, nomeFile.LastIndexOf("."));
|
||||
var elSheet = dtSet.Tables;
|
||||
int idxTab = 0;
|
||||
// cerco lo sheet corretto se > 1
|
||||
if (dtSet.Tables.Count > 1)
|
||||
{
|
||||
bool found = false;
|
||||
for (int i = 0; i < dtSet.Tables.Count; i++)
|
||||
{
|
||||
if (nomeFile.Contains(dtSet.Tables[i].TableName))
|
||||
{
|
||||
idxTab = i;
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
// controllo parametro opzionale...
|
||||
if (!found && taskConfig != null && !string.IsNullOrEmpty(taskConfig.TargetName))
|
||||
{
|
||||
if (dtSet.Tables[i].TableName == taskConfig.TargetName)
|
||||
{
|
||||
idxTab = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
var tabella = dtSet.Tables[idxTab];
|
||||
int numRighe = tabella.Rows.Count;
|
||||
int idxODL = taskConfig != null ? taskConfig.IdxODL : 0;
|
||||
for (int i = 0; i < numRighe; i++)
|
||||
{
|
||||
// voglio che ci sia setup x params
|
||||
if (taskConfig != null && taskConfig.ProcessParamInt != null && taskConfig.ProcessParamInt.Count > 5)
|
||||
{
|
||||
// procedo se errori < 20%...
|
||||
if (numErr < numRighe / 5)
|
||||
{
|
||||
try
|
||||
{
|
||||
double lungPezzo = 0;
|
||||
double quotaUscita = 0;
|
||||
double lungBarra = 0;
|
||||
double altezza = 0;
|
||||
var riga = tabella.Rows[i];
|
||||
if (riga != null)
|
||||
{
|
||||
string codice = getCellVal(riga, taskConfig.ProcessParamInt["Codice"]);
|
||||
string serie = getCellVal(riga, taskConfig.ProcessParamInt["Serie"]);
|
||||
string sLungPezzo = getCellVal(riga, taskConfig.ProcessParamInt["LungPezzo"]);
|
||||
string sQuotaUscita = getCellVal(riga, taskConfig.ProcessParamInt["QuotaUscita"]);
|
||||
string sLungBarra = getCellVal(riga, taskConfig.ProcessParamInt["LungBarra"]);
|
||||
string sAltezza = getCellVal(riga, taskConfig.ProcessParamInt["Altezza"]);
|
||||
|
||||
// verifiche x import: header avrà codice e serie con nome "codice" e "serie" --> SKIP!
|
||||
bool chkHeaderKo = (codice.ToLower() == "codice" || serie.ToLower() == "serie");
|
||||
bool chkEmptyLP = (string.IsNullOrEmpty(sLungPezzo) || sLungPezzo.Length < 2);
|
||||
bool chkEmptyQU = (string.IsNullOrEmpty(sQuotaUscita) || sQuotaUscita.Length < 2);
|
||||
bool chkEmptyLB = (string.IsNullOrEmpty(sLungBarra) || sLungBarra.Length < 2);
|
||||
bool chkEmptyA = (string.IsNullOrEmpty(sAltezza) || sAltezza.Length < 2);
|
||||
if (chkHeaderKo)
|
||||
{
|
||||
//lgTrace($"SKIP header");
|
||||
}
|
||||
else if (chkEmptyLP || chkEmptyQU || chkEmptyLB || chkEmptyA)
|
||||
{
|
||||
//lgTrace($"SKIP linea vuota | i: {i} | codice: {codice} | date: {serie} | prod: {prod}");
|
||||
}
|
||||
else
|
||||
{
|
||||
// conversione valori double
|
||||
bool bLP = double.TryParse(sLungPezzo, out lungPezzo);
|
||||
bool bQU = double.TryParse(sQuotaUscita, out quotaUscita);
|
||||
bool bLB = double.TryParse(sLungBarra, out lungBarra);
|
||||
bool bA = double.TryParse(sAltezza, out altezza);
|
||||
|
||||
// verifico di avere dati per proseguire...
|
||||
bool chkConvert = bLP && bQU && bLB && bA;
|
||||
if (chkConvert)
|
||||
{
|
||||
CutterParam newRow = new CutterParam()
|
||||
{
|
||||
Codice = codice,
|
||||
Serie = serie,
|
||||
LungPezzo = lungPezzo,
|
||||
QuotaUscita = quotaUscita,
|
||||
LungBarra = lungBarra,
|
||||
Altezza = altezza
|
||||
};
|
||||
// verifico: se manca aggiungo
|
||||
if (!listaParams.ContainsKey(codice))
|
||||
{
|
||||
listaParams.Add(codice, newRow);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//lgError($"Errore verifica identità riga | prod: {prod} | variety: {variety} | suppl: {suppl}");
|
||||
numErr++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
numErr++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// serializzo direttamente la listaParams x velocizzare poi ricerca da dictionary
|
||||
if (listaParams.Count > 0)
|
||||
{
|
||||
#if false
|
||||
// converto in una nuova lista...
|
||||
int rCounter = 1;
|
||||
Dictionary<int, CutterParam> list2Send = new Dictionary<int, CutterParam>();
|
||||
foreach (var item in listaParams)
|
||||
{
|
||||
list2Send.Add(rCounter, item.Value);
|
||||
rCounter++;
|
||||
}
|
||||
// serializzo e restituisco file JSON...
|
||||
Formatting fMode = doIndent ? Formatting.Indented : Formatting.None;
|
||||
var serVal = JsonConvert.SerializeObject(list2Send, fMode);
|
||||
if (serVal != null && !string.IsNullOrEmpty(serVal))
|
||||
{
|
||||
outVal = serVal;
|
||||
}
|
||||
#endif
|
||||
// serializzo e restituisco file JSON...
|
||||
Formatting fMode = doIndent ? Formatting.Indented : Formatting.None;
|
||||
var serVal = JsonConvert.SerializeObject(listaParams, fMode);
|
||||
if (serVal != null && !string.IsNullOrEmpty(serVal))
|
||||
{
|
||||
outVal = serVal;
|
||||
}
|
||||
}
|
||||
return outVal;
|
||||
}
|
||||
|
||||
|
||||
#endregion Private Methods
|
||||
}
|
||||
}
|
||||
@@ -5,10 +5,10 @@
|
||||
// $0: Path ConfigFile file per esecuzione
|
||||
|
||||
using EgwCApp.ExcImport;
|
||||
using System.Diagnostics;
|
||||
|
||||
string separator = "--------------------------------------";
|
||||
string fileName = "";
|
||||
|
||||
// controllo args, se mancassero o incompleti mostro help
|
||||
if (args.Length < 1)
|
||||
{
|
||||
@@ -17,22 +17,18 @@ if (args.Length < 1)
|
||||
Console.WriteLine("- v.0.0.0.0 | @Egalware 2022+");
|
||||
Console.WriteLine(separator);
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("Mancano parametri per esecuzione:");
|
||||
Console.WriteLine("");
|
||||
Console.WriteLine("$0: ConfigFile da impiegare");
|
||||
|
||||
// provo a processare testConf...
|
||||
fileName = "testConf.json";
|
||||
Console.WriteLine("Mancano parametri per esecuzione:");
|
||||
Console.WriteLine("$0: ConfigFile da impiegare");
|
||||
Console.WriteLine("");
|
||||
Console.WriteLine($"verrà usato {fileName}");
|
||||
}
|
||||
else
|
||||
{
|
||||
fileName = args[0];
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
Stopwatch sw = new Stopwatch();
|
||||
sw.Start();
|
||||
#endif
|
||||
// ora processo se ho filename valido...
|
||||
if (!string.IsNullOrEmpty(fileName))
|
||||
{
|
||||
@@ -62,8 +58,4 @@ if (!string.IsNullOrEmpty(fileName))
|
||||
{
|
||||
Console.WriteLine("Errore file non trovato!");
|
||||
}
|
||||
}
|
||||
#if DEBUG
|
||||
sw.Stop();
|
||||
Console.WriteLine($"Proc time: {sw.ElapsedMilliseconds}ms");
|
||||
#endif
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Any CPU</Platform>
|
||||
<PublishDir>bin\Release\net6.0\win-x64\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<_TargetId>Folder</_TargetId>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
||||
<SelfContained>false</SelfContained>
|
||||
<PublishSingleFile>true</PublishSingleFile>
|
||||
<PublishReadyToRun>false</PublishReadyToRun>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -1,23 +1,25 @@
|
||||
{
|
||||
"ArchiveDir": "",
|
||||
"ConvertDir": "C:\\temp\\Taglierina\\convert",
|
||||
"FileInPath": "C:\\temp\\Taglierina\\FileTaglierina.xlsx",
|
||||
"FileOutPath": "FileTaglierina.json",
|
||||
"IdxODL": 0,
|
||||
"ArchiveDir": "C:\\temp\\import\\archive",
|
||||
"ConvertDir": "C:\\temp\\import\\convert",
|
||||
"FileInPath": "C:\\temp\\import\\01.12.xlsx",
|
||||
"FileOutPath": "01.12.json",
|
||||
"IdxODL": 987654321,
|
||||
"ProcessParamInt": {
|
||||
"Codice": 0,
|
||||
"Serie": 1,
|
||||
"LungPezzo": 4,
|
||||
"QuotaUscita": 5,
|
||||
"LungBarra": 6,
|
||||
"Altezza": 7
|
||||
"Product": 3,
|
||||
"Variety": 9,
|
||||
"Supplier": 8,
|
||||
"ExtDoc": 2,
|
||||
"DateRif": 14,
|
||||
"QtyTot": 22,
|
||||
"NumPack": 21,
|
||||
"NumPed": 17,
|
||||
"PackPed": 18,
|
||||
"PesoPack": 20
|
||||
},
|
||||
"ProcessParamStr": {},
|
||||
"RedisDB": 10,
|
||||
"RedisOut": "IOB-WIN:Conf:ParamsUSTD",
|
||||
"RedisTTL": 36000,
|
||||
"Return": "Redis",
|
||||
"ReturnDataType": "ParamTaglioUstd",
|
||||
"TargetName": "Ricette",
|
||||
"RedisDB": 0,
|
||||
"RedisOut": "",
|
||||
"Return": "File",
|
||||
"TargetName": "DB Loco",
|
||||
"Type": "Excel"
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
"ArchiveDir": "",
|
||||
"ConvertDir": "C:\\temp\\Taglierina\\convert",
|
||||
"FileInPath": "C:\\temp\\Taglierina\\FileTaglierina.xlsx",
|
||||
"FileOutPath": "FileTaglierina.json",
|
||||
"IdxODL": 0,
|
||||
"ProcessParamInt": {
|
||||
"Codice": 0,
|
||||
"Serie": 1,
|
||||
"LungPezzo": 4,
|
||||
"QuotaUscita": 5,
|
||||
"LungBarra": 6,
|
||||
"Altezza": 7
|
||||
},
|
||||
"ProcessParamStr": {},
|
||||
"RedisDB": 0,
|
||||
"RedisOut": "",
|
||||
"Return": "Console",
|
||||
"ReturnDataType": "ParamTaglioUstd",
|
||||
"TargetName": "Ricette",
|
||||
"Type": "Excel"
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
"ArchiveDir": "C:\\temp\\Taglierina\\archive",
|
||||
"ConvertDir": "C:\\temp\\Taglierina\\convert",
|
||||
"FileInPath": "C:\\temp\\Taglierina\\FileTaglierina.xlsx",
|
||||
"FileOutPath": "FileTaglierina.json",
|
||||
"IdxODL": 0,
|
||||
"ProcessParamInt": {
|
||||
"Codice": 0,
|
||||
"Serie": 1,
|
||||
"LungPezzo": 4,
|
||||
"QuotaUscita": 5,
|
||||
"LungBarra": 6,
|
||||
"Altezza": 7
|
||||
},
|
||||
"ProcessParamStr": {},
|
||||
"RedisDB": 0,
|
||||
"RedisOut": "",
|
||||
"Return": "File",
|
||||
"ReturnDataType": "ParamTaglioUstd",
|
||||
"TargetName": "Ricette",
|
||||
"Type": "Excel"
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
{
|
||||
"ArchiveDir": "",
|
||||
"ConvertDir": "C:\\temp\\Taglierina\\convert",
|
||||
"FileInPath": "C:\\temp\\Taglierina\\FileTaglierina.xlsx",
|
||||
"FileOutPath": "FileTaglierina.json",
|
||||
"IdxODL": 0,
|
||||
"ProcessParamInt": {
|
||||
"Codice": 0,
|
||||
"Serie": 1,
|
||||
"LungPezzo": 4,
|
||||
"QuotaUscita": 5,
|
||||
"LungBarra": 6,
|
||||
"Altezza": 7
|
||||
},
|
||||
"ProcessParamStr": {},
|
||||
"RedisDB": 10,
|
||||
"RedisOut": "IOB-WIN:Conf:ParamsUSTD",
|
||||
"RedisTTL": 36000,
|
||||
"Return": "Redis",
|
||||
"ReturnDataType": "ParamTaglioUstd",
|
||||
"TargetName": "Ricette",
|
||||
"Type": "Excel"
|
||||
}
|
||||
@@ -13,7 +13,7 @@ namespace EgwCApp.Testing
|
||||
this.confFileName = "conf.json";
|
||||
this.baseDir = toolDir;
|
||||
this.exeName = exeFileName;
|
||||
appPath = Path.Combine(baseDir, exeName);
|
||||
appPath = $"./{baseDir}/{exeName}";
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
@@ -29,7 +29,7 @@ string rawData = "";
|
||||
|
||||
|
||||
// svuoto eventuali conf vecchi
|
||||
var listaConf = Directory.GetFiles(Directory.GetCurrentDirectory(), "conf_*.json");
|
||||
var listaConf = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.json");
|
||||
if (listaConf != null && listaConf.Count() > 0)
|
||||
{
|
||||
foreach (var file2del in listaConf)
|
||||
|
||||
Binary file not shown.
@@ -1,23 +0,0 @@
|
||||
{
|
||||
"ArchiveDir": "",
|
||||
"ConvertDir": "C:\\temp\\Taglierina\\convert",
|
||||
"FileInPath": "C:\\temp\\Taglierina\\FileTaglierina.xlsx",
|
||||
"FileOutPath": "FileTaglierina.json",
|
||||
"IdxODL": 0,
|
||||
"ProcessParamInt": {
|
||||
"Codice": 0,
|
||||
"Serie": 1,
|
||||
"LungPezzo": 4,
|
||||
"QuotaUscita": 5,
|
||||
"LungBarra": 6,
|
||||
"Altezza": 7
|
||||
},
|
||||
"ProcessParamStr": {},
|
||||
"RedisDB": 10,
|
||||
"RedisOut": "IOB-WIN:Conf:ParamsUSTD",
|
||||
"RedisTTL": 36000,
|
||||
"Return": "Redis",
|
||||
"ReturnDataType": "ParamTaglioUstd",
|
||||
"TargetName": "Ricette",
|
||||
"Type": "Excel"
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.2.32516.85
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EgwCApp.Core", "EgwCApp.Core\EgwCApp.Core.csproj", "{DF02D478-2309-48B8-BF0D-90B02327AF02}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EgwCApp.XmlProc", "EgwCApp.XmlProc\EgwCApp.XmlProc.csproj", "{64BC5889-BE30-489A-B78F-8B3EE08819CB}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EgwCApp.XmlTesting", "EgwCApp.XmlTesting\EgwCApp.XmlTesting.csproj", "{52D72303-ACAB-4289-8856-0F56A50474FC}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{DF02D478-2309-48B8-BF0D-90B02327AF02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{DF02D478-2309-48B8-BF0D-90B02327AF02}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{DF02D478-2309-48B8-BF0D-90B02327AF02}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{DF02D478-2309-48B8-BF0D-90B02327AF02}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{64BC5889-BE30-489A-B78F-8B3EE08819CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{64BC5889-BE30-489A-B78F-8B3EE08819CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{64BC5889-BE30-489A-B78F-8B3EE08819CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{64BC5889-BE30-489A-B78F-8B3EE08819CB}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{52D72303-ACAB-4289-8856-0F56A50474FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{52D72303-ACAB-4289-8856-0F56A50474FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{52D72303-ACAB-4289-8856-0F56A50474FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{52D72303-ACAB-4289-8856-0F56A50474FC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {2AF3181F-288A-47D5-8087-2AB660476D85}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -1,20 +0,0 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\EgwCApp.Core\EgwCApp.Core.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Update="testConf.json">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -1,378 +0,0 @@
|
||||
using EgwCApp.Core;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using static EgwCApp.Core.WharehouseData;
|
||||
|
||||
namespace EgwCApp.XmlProc
|
||||
{
|
||||
public class ImportProc
|
||||
{
|
||||
#region Public Constructors
|
||||
|
||||
/// <summary>
|
||||
/// Init oggetto per import
|
||||
/// </summary>
|
||||
/// <param name="confFileName"></param>
|
||||
public ImportProc(string confFileName)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(confFileName))
|
||||
{
|
||||
fileConfName = confFileName;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Decodifica configurazione
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool decodeConfig()
|
||||
{
|
||||
bool answ = false;
|
||||
if (!string.IsNullOrEmpty(fileConfName))
|
||||
{
|
||||
// deserializzo config
|
||||
if (!File.Exists(fileConfName))
|
||||
{
|
||||
Console.WriteLine($"Error: ConfigFile not found | {fileConfName}");
|
||||
}
|
||||
else
|
||||
{
|
||||
string rawData = File.ReadAllText(fileConfName);
|
||||
// se ho contenuto procedo
|
||||
if (string.IsNullOrEmpty(rawData))
|
||||
{
|
||||
Console.WriteLine($"Error: ConfigFile empty! | {fileConfName}");
|
||||
}
|
||||
else
|
||||
{
|
||||
// deserializzo
|
||||
taskConfig = JsonConvert.DeserializeObject<ConfigFile>(rawData);
|
||||
answ = taskConfig != null;
|
||||
}
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Esegue import (se possibile)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool doProcess()
|
||||
{
|
||||
bool answ = false;
|
||||
if (taskConfig != null)
|
||||
{
|
||||
// verifico esista il file...
|
||||
if (string.IsNullOrEmpty(taskConfig.FileInPath) && File.Exists(taskConfig.FileInPath))
|
||||
{
|
||||
// manca file ingresso!!! esco!
|
||||
}
|
||||
else
|
||||
{
|
||||
// verifico il tipo di process necessario...
|
||||
switch (taskConfig.Type)
|
||||
{
|
||||
case ImportType.CSV:
|
||||
fileReturnData = File.ReadAllText(taskConfig.FileInPath);
|
||||
answ = true;
|
||||
break;
|
||||
|
||||
case ImportType.Excel:
|
||||
fileReturnData = processExcelImport(taskConfig.FileInPath);
|
||||
answ = true;
|
||||
break;
|
||||
|
||||
case ImportType.ND:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Esecuzione ritorno informazioni secondo configurazione...
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool doReturn()
|
||||
{
|
||||
bool answ = false;
|
||||
if (taskConfig != null)
|
||||
{
|
||||
// verifico il tipo di return necessario...
|
||||
switch (taskConfig.Return)
|
||||
{
|
||||
case ReturnMode.Console:
|
||||
Console.WriteLine(fileReturnData);
|
||||
answ = true;
|
||||
break;
|
||||
|
||||
case ReturnMode.Redis:
|
||||
break;
|
||||
|
||||
case ReturnMode.File:
|
||||
// verifico path ci sia... sennò creo
|
||||
string outPath = string.IsNullOrEmpty(taskConfig.FileOutPath) ? "FileOut.txt" : taskConfig.FileOutPath;
|
||||
// verifico se vadano salvati in una folder differente...
|
||||
if (!string.IsNullOrEmpty(taskConfig.ConvertDir))
|
||||
{
|
||||
if (!Directory.Exists(taskConfig.ConvertDir))
|
||||
{
|
||||
Directory.CreateDirectory(taskConfig.ConvertDir);
|
||||
}
|
||||
outPath = Path.Combine(taskConfig.ConvertDir, Path.GetFileName(outPath));
|
||||
}
|
||||
// salvo il file!
|
||||
File.WriteAllText(outPath, fileReturnData);
|
||||
answ = true;
|
||||
break;
|
||||
|
||||
case ReturnMode.ND:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
// se fatto eventualmente archivio
|
||||
if (answ)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(taskConfig.ArchiveDir))
|
||||
{
|
||||
// verifico cartella archivio
|
||||
if (!Directory.Exists(taskConfig.ArchiveDir))
|
||||
{
|
||||
Directory.CreateDirectory(taskConfig.ArchiveDir);
|
||||
}
|
||||
// sposto file
|
||||
string fName = Path.GetFileName(taskConfig.FileInPath);
|
||||
File.Move(taskConfig.FileInPath, Path.Combine(taskConfig.ArchiveDir, fName), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Protected Properties
|
||||
|
||||
/// <summary>
|
||||
/// Nome del file config da processare
|
||||
/// </summary>
|
||||
protected string fileConfName { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// Contenuto del file da restituire come return data (serializzato)
|
||||
/// </summary>
|
||||
protected string fileReturnData { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// Configurazione del task da eseguire
|
||||
/// </summary>
|
||||
protected ConfigFile? taskConfig { get; set; } = new ConfigFile();
|
||||
|
||||
#endregion Protected Properties
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
/// <summary>
|
||||
/// Estrae da una riga l'i-esimo elemento
|
||||
/// </summary>
|
||||
/// <param name="riga"></param>
|
||||
/// <param name="col"></param>
|
||||
/// <returns></returns>
|
||||
protected string getCellVal(System.Data.DataRow? riga, int col)
|
||||
{
|
||||
string answ = "";
|
||||
if (riga != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
answ = $"{riga.ItemArray[col]}".Trim();
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Cleanup stringa x impiego tipo ident da char dubbi
|
||||
/// </summary>
|
||||
/// <param name="origData"></param>
|
||||
/// <returns></returns>
|
||||
protected string strFixId(string origData)
|
||||
{
|
||||
return origData.Replace(".", "").Replace(" ", "_");
|
||||
}
|
||||
|
||||
#endregion Protected Methods
|
||||
|
||||
#region Private Methods
|
||||
|
||||
/// <summary>
|
||||
/// Importa un file excel e restituisce una
|
||||
/// </summary>
|
||||
/// <param name="fileItem"></param>
|
||||
/// <returns></returns>
|
||||
private string processExcelImport(string fileItem)
|
||||
{
|
||||
string outVal = "";
|
||||
int numErr = 0;
|
||||
// test procedura di import files excel x Giacovelli...
|
||||
var currExcel = new ExcelMan(fileItem);
|
||||
// creo lista dati in formato RegGiacenze...
|
||||
Dictionary<string, BatchRec> listaGiac = new Dictionary<string, BatchRec>();
|
||||
var dtSet = currExcel.getDataSet();
|
||||
if (dtSet != null && dtSet.Tables != null && dtSet.Tables.Count > 0)
|
||||
{
|
||||
string nomeFile = Path.GetFileName(fileItem);
|
||||
nomeFile = nomeFile.Substring(0, nomeFile.LastIndexOf("."));
|
||||
var elSheet = dtSet.Tables;
|
||||
int idxTab = 0;
|
||||
// cerco lo sheet corretto se > 1
|
||||
if (dtSet.Tables.Count > 1)
|
||||
{
|
||||
bool found = false;
|
||||
for (int i = 0; i < dtSet.Tables.Count; i++)
|
||||
{
|
||||
if (nomeFile.Contains(dtSet.Tables[i].TableName))
|
||||
{
|
||||
idxTab = i;
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
// controllo parametro opzionale...
|
||||
if (!found && taskConfig != null && !string.IsNullOrEmpty(taskConfig.TargetName))
|
||||
{
|
||||
if (dtSet.Tables[i].TableName == taskConfig.TargetName)
|
||||
{
|
||||
idxTab = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
var tabella = dtSet.Tables[idxTab];
|
||||
int numRighe = tabella.Rows.Count;
|
||||
int idxODL = taskConfig != null ? taskConfig.IdxODL : 0;
|
||||
for (int i = 0; i < numRighe; i++)
|
||||
{
|
||||
if (taskConfig != null && taskConfig.ProcessParamInt != null && taskConfig.ProcessParamInt.Count > 5)
|
||||
{
|
||||
if (numErr < numRighe / 5)
|
||||
{
|
||||
try
|
||||
{
|
||||
// variabili di appoggio...
|
||||
DateTime dtRif = DateTime.Today;
|
||||
double qtyTot = 0;
|
||||
int numPack = 0;
|
||||
var riga = tabella.Rows[i];
|
||||
if (riga != null)
|
||||
{
|
||||
string ddt = getCellVal(riga, taskConfig.ProcessParamInt["ExtDoc"]);
|
||||
string sDate = getCellVal(riga, taskConfig.ProcessParamInt["DateRif"]);
|
||||
string prod = getCellVal(riga, taskConfig.ProcessParamInt["Product"]);
|
||||
// verifiche x import: header, data e DDT (vuoti o "-") --> SKIP!
|
||||
bool checkHeaderKo = (ddt == "DDT" || prod == "PRODOTTO");
|
||||
bool checkEmptyDdt = (string.IsNullOrEmpty(ddt) || ddt == "-");
|
||||
bool checkEmptyDate = (string.IsNullOrEmpty(sDate) || sDate == "-");
|
||||
if (checkHeaderKo)
|
||||
{
|
||||
//lgTrace($"SKIP header");
|
||||
}
|
||||
else if (checkEmptyDdt || checkEmptyDate)
|
||||
{
|
||||
//lgTrace($"SKIP linea vuota | i: {i} | ddt: {ddt} | date: {sDate} | prod: {prod}");
|
||||
}
|
||||
else
|
||||
{
|
||||
string variety = getCellVal(riga, taskConfig.ProcessParamInt["Variety"]);
|
||||
string suppl = getCellVal(riga, taskConfig.ProcessParamInt["Supplier"]);
|
||||
string sQty = getCellVal(riga, taskConfig.ProcessParamInt["QtyTot"]);
|
||||
string sNum = getCellVal(riga, taskConfig.ProcessParamInt["NumPack"]);
|
||||
string numPed = getCellVal(riga, taskConfig.ProcessParamInt["NumPed"]);
|
||||
string packPed = getCellVal(riga, taskConfig.ProcessParamInt["PackPed"]);
|
||||
string pesoPack = getCellVal(riga, taskConfig.ProcessParamInt["PesoPack"]);
|
||||
DateTime.TryParse(sDate, out dtRif);
|
||||
int.TryParse(sNum, out numPack);
|
||||
double.TryParse(sQty, out qtyTot);
|
||||
string identRG = ddt.Length > 2 ? $"{strFixId(ddt)}.{strFixId(prod)}.{strFixId(variety)}.{strFixId(suppl)}" : $"{dtRif:yyyyMMdd}.{strFixId(prod)}.{strFixId(variety)}.{strFixId(suppl)}";
|
||||
string notes = $"{numPed}x{packPed}x{pesoPack}";
|
||||
// verifico di avere dati per proseguire...
|
||||
bool checkIdent = !string.IsNullOrEmpty($"{prod}{variety}{suppl}");
|
||||
if (checkIdent)
|
||||
{
|
||||
BatchRec newRow = new BatchRec()
|
||||
{
|
||||
IdxODL = idxODL,
|
||||
IdentRG = identRG,
|
||||
DateRif = dtRif,
|
||||
ExtDoc = ddt,
|
||||
Product = prod,
|
||||
Variety = variety,
|
||||
Supplier = suppl,
|
||||
NumPack = numPack,
|
||||
QtyTot = qtyTot,
|
||||
Notes = notes
|
||||
};
|
||||
// verifico: se manca aggiungo
|
||||
if (!listaGiac.ContainsKey(identRG))
|
||||
{
|
||||
listaGiac.Add(identRG, newRow);
|
||||
}
|
||||
else
|
||||
{
|
||||
// altrimenti aggiorno giacenza con valori numerici
|
||||
listaGiac[identRG].NumPack += newRow.NumPack;
|
||||
listaGiac[identRG].QtyTot += newRow.QtyTot;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//lgError($"Errore verifica identità riga | prod: {prod} | variety: {variety} | suppl: {suppl}");
|
||||
numErr++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
numErr++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (listaGiac.Count > 0)
|
||||
{
|
||||
// converto in una nuova lista...
|
||||
int rCounter = 1;
|
||||
Dictionary<int, BatchRec> list2Send = new Dictionary<int, BatchRec>();
|
||||
foreach (var item in listaGiac)
|
||||
{
|
||||
list2Send.Add(rCounter, item.Value);
|
||||
rCounter++;
|
||||
}
|
||||
// serializzo e restituisco file JSON...
|
||||
var serVal = JsonConvert.SerializeObject(list2Send);
|
||||
if (serVal != null && !string.IsNullOrEmpty(serVal))
|
||||
{
|
||||
outVal = serVal;
|
||||
}
|
||||
}
|
||||
return outVal;
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
}
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
// See https://aka.ms/new-console-template for more information
|
||||
|
||||
// ExcImport: Excel Importer, per IobWin in logica lettura Giacenze
|
||||
// parametri:
|
||||
// $0: Path ConfigFile file per esecuzione
|
||||
|
||||
|
||||
using EgwCApp.XmlProc;
|
||||
|
||||
string separator = "--------------------------------------";
|
||||
string fileName = "";
|
||||
|
||||
// controllo args, se mancassero o incompleti mostro help
|
||||
if (args.Length < 1)
|
||||
{
|
||||
Console.WriteLine(separator);
|
||||
Console.WriteLine("- ExcelFileImporter - Core 6.0");
|
||||
Console.WriteLine("- v.0.0.0.0 | @Egalware 2022+");
|
||||
Console.WriteLine(separator);
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("Mancano parametri per esecuzione:");
|
||||
Console.WriteLine("");
|
||||
Console.WriteLine("$0: ConfigFile da impiegare");
|
||||
|
||||
// provo a processare testConf...
|
||||
fileName = "testConf.json";
|
||||
}
|
||||
else
|
||||
{
|
||||
fileName = args[0];
|
||||
}
|
||||
|
||||
// ora processo se ho filename valido...
|
||||
if (!string.IsNullOrEmpty(fileName))
|
||||
{
|
||||
// verifico se ho file...
|
||||
if (File.Exists(fileName))
|
||||
{
|
||||
ImportProc importObj = new ImportProc(fileName);
|
||||
bool stepOk = importObj.decodeConfig();
|
||||
if (stepOk)
|
||||
{
|
||||
stepOk = importObj.doProcess();
|
||||
if (!stepOk)
|
||||
{
|
||||
Console.WriteLine("Errore in processing file");
|
||||
}
|
||||
else
|
||||
{
|
||||
importObj.doReturn();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("Errore in processing config file");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("Errore file non trovato!");
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Any CPU</Platform>
|
||||
<PublishDir>bin\Release\net6.0\win-x64\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<_TargetId>Folder</_TargetId>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
||||
<SelfContained>false</SelfContained>
|
||||
<PublishSingleFile>true</PublishSingleFile>
|
||||
<PublishReadyToRun>false</PublishReadyToRun>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -1,4 +0,0 @@
|
||||
@echo off
|
||||
|
||||
REM compilo in publish
|
||||
dotnet publish EgwCApp.ExcImport.csproj -p:PublishSingleFile=true -r win-x64 -c Release --self-contained false
|
||||
@@ -1,25 +0,0 @@
|
||||
{
|
||||
"ArchiveDir": "C:\\temp\\import\\archive",
|
||||
"ConvertDir": "C:\\temp\\import\\convert",
|
||||
"FileInPath": "C:\\temp\\import\\01.12.xlsx",
|
||||
"FileOutPath": "01.12.json",
|
||||
"IdxODL": 987654321,
|
||||
"ProcessParamInt": {
|
||||
"Product": 3,
|
||||
"Variety": 9,
|
||||
"Supplier": 8,
|
||||
"ExtDoc": 2,
|
||||
"DateRif": 14,
|
||||
"QtyTot": 22,
|
||||
"NumPack": 21,
|
||||
"NumPed": 17,
|
||||
"PackPed": 18,
|
||||
"PesoPack": 20
|
||||
},
|
||||
"ProcessParamStr": {},
|
||||
"RedisDB": 0,
|
||||
"RedisOut": "",
|
||||
"Return": "File",
|
||||
"TargetName": "DB Loco",
|
||||
"Type": "Excel"
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"FilePath": "C:\\Temp\\test.log",
|
||||
"ProcessParams": {},
|
||||
"Return": "Console",
|
||||
"Type": "Excel"
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
{
|
||||
"ArchiveDir": "C:\\temp\\import\\archive",
|
||||
"ConvertDir": "C:\\temp\\import\\convert",
|
||||
"FileInPath": "C:\\temp\\import\\01.12.xlsx",
|
||||
"FileOutPath": "01.12.json",
|
||||
"IdxODL": 987654321,
|
||||
"ProcessParamInt": {
|
||||
"Product": 3,
|
||||
"Variety": 9,
|
||||
"Supplier": 8,
|
||||
"ExtDoc": 2,
|
||||
"DateRif": 14,
|
||||
"QtyTot": 22,
|
||||
"NumPack": 21,
|
||||
"NumPed": 17,
|
||||
"PackPed": 18,
|
||||
"PesoPack": 20
|
||||
},
|
||||
"ProcessParamStr": {},
|
||||
"RedisDB": 0,
|
||||
"RedisOut": "",
|
||||
"Return": "File",
|
||||
"TargetName": "DB Loco",
|
||||
"Type": "Excel"
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
echo ------------ Parametri compilazione ------------
|
||||
echo OutDir: $(OutDir)
|
||||
echo Configuration: $(ConfigurationName)
|
||||
echo ProjectDir: $(ProjectDir)
|
||||
echo AssemblyName: $(AssemblyName)
|
||||
echo TargetDir: $(TargetDir)
|
||||
echo ------------ Parametri compilazione ------------
|
||||
|
||||
preBuild.bat $(SolutionDir)EgwCApp.ExcImport\EgwCApp.ExcImport.csproj $(SolutionDir)EgwCApp.ExcImport\bin\Release\net6.0\publish\win-x64\ $(ProjectDir)Utils
|
||||
@@ -1,21 +0,0 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\EgwCApp.Core\EgwCApp.Core.csproj" />
|
||||
<ProjectReference Include="..\EgwCApp.XmlProc\EgwCApp.XmlProc.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Update="Tools\ExcImport.exe">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -1,120 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using EgwCApp.Core;
|
||||
using Newtonsoft.Json;
|
||||
using System.Diagnostics;
|
||||
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace EgwCApp.XmlTesting
|
||||
{
|
||||
public class FileProcMan
|
||||
{
|
||||
#region Public Constructors
|
||||
|
||||
public FileProcMan(string toolDir, string exeFileName)
|
||||
{
|
||||
this.confFileName = "conf.json";
|
||||
this.baseDir = toolDir;
|
||||
this.exeName = exeFileName;
|
||||
appPath = $"./{baseDir}/{exeName}";
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Processa il singolo file e riporta tempo esecuzione
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public TimeSpan doProcess(string fPath)
|
||||
{
|
||||
TimeSpan outVal = new TimeSpan();
|
||||
Stopwatch sw = new Stopwatch();
|
||||
// preparo file conf
|
||||
createConfFile(fPath);
|
||||
// avvio processing
|
||||
Console.WriteLine("calling ext app with args:");
|
||||
Console.WriteLine($"{appPath} {confFileName}");
|
||||
Console.WriteLine();
|
||||
|
||||
ProcessStartInfo psi = new ProcessStartInfo
|
||||
{
|
||||
FileName = appPath,
|
||||
Arguments = $"{confFileName}",
|
||||
WindowStyle = ProcessWindowStyle.Minimized,
|
||||
//WindowStyle = ProcessWindowStyle.Hidden,
|
||||
UseShellExecute = false,
|
||||
//CreateNoWindow = true,
|
||||
RedirectStandardOutput = true,
|
||||
RedirectStandardInput = true,
|
||||
};
|
||||
|
||||
sw.Start();
|
||||
|
||||
Process p = Process.Start(psi);
|
||||
|
||||
string q = "";
|
||||
while (!p.HasExited)
|
||||
{
|
||||
q += p.StandardOutput.ReadToEnd();
|
||||
}
|
||||
|
||||
sw.Stop();
|
||||
outVal = sw.Elapsed;
|
||||
|
||||
return outVal;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Protected Fields
|
||||
|
||||
protected string appPath = "";
|
||||
protected string baseDir = "";
|
||||
protected string confFileName = "";
|
||||
protected string exeName = "";
|
||||
|
||||
#endregion Protected Fields
|
||||
|
||||
#region Private Methods
|
||||
|
||||
private void createConfFile(string item)
|
||||
{
|
||||
Dictionary<string, int> importParams = new Dictionary<string, int>();
|
||||
importParams.Add("Product", 3);
|
||||
importParams.Add("Variety", 9);
|
||||
importParams.Add("Supplier", 8);
|
||||
importParams.Add("ExtDoc", 2);
|
||||
importParams.Add("DateRif", 14);
|
||||
importParams.Add("QtyTot", 22);
|
||||
importParams.Add("NumPack", 21);
|
||||
importParams.Add("NumPed", 17);
|
||||
importParams.Add("PackPed", 18);
|
||||
importParams.Add("PesoPack", 20);
|
||||
// calcolo nome file conf specifico
|
||||
string outFileName = Path.GetFileName(item).Replace("xlsx", "json");
|
||||
confFileName = $"conf_{outFileName}";
|
||||
// calcolo outFIleName
|
||||
var newConf = new ConfigFile()
|
||||
{
|
||||
ArchiveDir = @"C:\temp\import\archive\",
|
||||
ConvertDir = @"C:\temp\import\convert\",
|
||||
Type = ImportType.Excel,
|
||||
FileInPath = item,
|
||||
FileOutPath = outFileName,
|
||||
Return = ReturnMode.File,
|
||||
ProcessParamInt = importParams,
|
||||
TargetName = "DB Loco"
|
||||
};
|
||||
// serializzo e salvo!
|
||||
var rawData = JsonConvert.SerializeObject(newConf, Formatting.Indented);
|
||||
File.WriteAllText(confFileName, rawData);
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
}
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
// See https://aka.ms/new-console-template for more information
|
||||
|
||||
using EgwCApp.Core;
|
||||
using System.Diagnostics;
|
||||
using Newtonsoft.Json;
|
||||
using EgwCApp.XmlTesting;
|
||||
|
||||
Dictionary<string, TimeSpan> statsColl = new Dictionary<string, TimeSpan>();
|
||||
Stopwatch sw = new Stopwatch();
|
||||
|
||||
string separator = "--------------------------------------";
|
||||
Console.WriteLine(separator);
|
||||
Console.WriteLine("Console Test Application");
|
||||
Console.WriteLine(separator);
|
||||
Console.WriteLine();
|
||||
|
||||
// creo il file di configurazione...
|
||||
string fileName = "conf.json";
|
||||
ConfigFile newConf = new ConfigFile();
|
||||
string rawData = "";
|
||||
|
||||
// test CSV
|
||||
//newConf = new ConfigFile()
|
||||
//{
|
||||
// Type = ImportType.CSV,
|
||||
// FileInPath = @"C:\Temp\test.log",
|
||||
// Return = ReturnMode.Console
|
||||
//};
|
||||
|
||||
|
||||
// svuoto eventuali conf vecchi
|
||||
var listaConf = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.json");
|
||||
if (listaConf != null && listaConf.Count() > 0)
|
||||
{
|
||||
foreach (var file2del in listaConf)
|
||||
{
|
||||
File.Delete(file2del);
|
||||
}
|
||||
}
|
||||
// cerco file xlsx e ciclo...
|
||||
var listaFiles = Directory.GetFiles(@"C:\temp\import\", "*.xlsx");
|
||||
if (listaFiles != null && listaFiles.Count() > 0)
|
||||
{
|
||||
FileProcMan fpm = new FileProcMan("Tools", "ExcImport.exe");
|
||||
foreach (var item in listaFiles)
|
||||
{
|
||||
TimeSpan timeElaps = fpm.doProcess(item);
|
||||
|
||||
statsColl.Add($"Ext prog executed for {item}", timeElaps);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Console.WriteLine(separator);
|
||||
Console.WriteLine("press enter to proceed...");
|
||||
|
||||
Console.ReadLine();
|
||||
|
||||
foreach (var item in statsColl)
|
||||
{
|
||||
Console.WriteLine($"{item.Key} {item.Value.TotalMilliseconds} ms");
|
||||
}
|
||||
//Console.WriteLine($"Display executed in {timeElaps.TotalMilliseconds} ms");
|
||||
|
||||
Console.ReadLine();
|
||||
Binary file not shown.
@@ -1,6 +0,0 @@
|
||||
@echo off
|
||||
|
||||
REM recupero versione compilata
|
||||
ROBOCOPY %1 %2 *.exe /MIR
|
||||
|
||||
echo Eseguito restore CApp!
|
||||
@@ -0,0 +1,31 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 16
|
||||
VisualStudioVersion = 16.0.32901.82
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EgwProxy.Ftp.Test", "EgwProxy.Ftp.Test\EgwProxy.Ftp.Test.csproj", "{A655A6AC-5997-46F9-9752-8C621B80516C}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EgwProxy.Ftp", "EgwProxy.Ftp\EgwProxy.Ftp.csproj", "{35D95ED8-E48A-434D-A305-A83E48C8FC6F}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{A655A6AC-5997-46F9-9752-8C621B80516C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{A655A6AC-5997-46F9-9752-8C621B80516C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A655A6AC-5997-46F9-9752-8C621B80516C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{A655A6AC-5997-46F9-9752-8C621B80516C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{35D95ED8-E48A-434D-A305-A83E48C8FC6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{35D95ED8-E48A-434D-A305-A83E48C8FC6F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{35D95ED8-E48A-434D-A305-A83E48C8FC6F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{35D95ED8-E48A-434D-A305-A83E48C8FC6F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {E2472E21-58D3-4EAD-BC4A-BC3915B18BEF}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
|
||||
<metadata>
|
||||
<id>EgwProxy.Ftp</id>
|
||||
<version>#version#</version>
|
||||
<title>EgwProxy.Ftp</title>
|
||||
<authors>Samuele E. Locatelli, EgalWare</authors>
|
||||
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
||||
<license type="expression">MIT</license>
|
||||
<description>Libreria per comunicazione con server Ftp (IOB-WIN-NEXT) - beta/unstable</description>
|
||||
<releaseNotes>#releaseNotes#</releaseNotes>
|
||||
<copyright>#copyright#</copyright>
|
||||
<tags>EgwProxy.Ftp EgwProxy Ftp</tags>
|
||||
<dependencies>
|
||||
<group>
|
||||
<dependency id="FluentFTP" version="41.0.0" />
|
||||
<dependency id="Microsoft.Extensions.Logging.Abstractions" version="2.1.0" />
|
||||
</group>
|
||||
</dependencies>
|
||||
</metadata>
|
||||
<files>
|
||||
<file src="EgwProxy.Ftp\bin\Debug\EgwProxy*.dll" target="lib" />
|
||||
<file src="EgwProxy.Ftp\bin\Debug\EgwProxy*.config" target="lib" />
|
||||
<file src="EgwProxy.Ftp\bin\Debug\EgwProxy*.pdb" target="lib" />
|
||||
</files>
|
||||
</package>
|
||||
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
|
||||
<metadata>
|
||||
<id>EgwProxy.Ftp</id>
|
||||
<version>#version#</version>
|
||||
<title>EgwProxy.Ftp</title>
|
||||
<authors>Samuele E. Locatelli, EgalWare</authors>
|
||||
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
||||
<license type="expression">MIT</license>
|
||||
<description>Libreria per comunicazione con server Ftp (IOB-WIN-NEXT)</description>
|
||||
<releaseNotes>#releaseNotes#</releaseNotes>
|
||||
<copyright>#copyright#</copyright>
|
||||
<tags>EgwProxy.Ftp EgwProxy Ftp</tags>
|
||||
<dependencies>
|
||||
<dependency id="FluentFTP" version="41.0.0" />
|
||||
<dependency id="Microsoft.Extensions.Logging.Abstractions" version="2.1.0" />
|
||||
</dependencies>
|
||||
</metadata>
|
||||
<files>
|
||||
<file src="EgwProxy.Ftp\bin\Release\EgwProxy*.dll" target="lib" />
|
||||
<file src="EgwProxy.Ftp\bin\Release\EgwProxy*.config" target="lib" />
|
||||
</files>
|
||||
</package>
|
||||
@@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
|
||||
</startup>
|
||||
<appSettings>
|
||||
<add key="testFile" value="conf/testSetup.json" />
|
||||
<add key="server" value="ftp.steamware.net" />
|
||||
<add key="userName" value="testftpuser" />
|
||||
<add key="passwd" value="we4reFromB3rghem!" />
|
||||
<add key="rawCert" value="" />
|
||||
<add key="skipCert" value="true" />
|
||||
<add key="ClientSettingsProvider.ServiceUri" value="" />
|
||||
</appSettings>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Text.Encodings.Web" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.5.1" newVersion="4.0.5.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
<system.web>
|
||||
<membership defaultProvider="ClientAuthenticationMembershipProvider">
|
||||
<providers>
|
||||
<add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" />
|
||||
</providers>
|
||||
</membership>
|
||||
<roleManager defaultProvider="ClientRoleProvider" enabled="true">
|
||||
<providers>
|
||||
<add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" />
|
||||
</providers>
|
||||
</roleManager>
|
||||
</system.web>
|
||||
</configuration>
|
||||
@@ -0,0 +1,84 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{A655A6AC-5997-46F9-9752-8C621B80516C}</ProjectGuid>
|
||||
<OutputType>Exe</OutputType>
|
||||
<RootNamespace>EgwProxy.Ftp.Test</RootNamespace>
|
||||
<AssemblyName>EgwProxy.Ftp.Test</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="FluentFTP, Version=41.0.0.0, Culture=neutral, PublicKeyToken=f4af092b1d8df44f, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\FluentFTP.41.0.0\lib\net462\FluentFTP.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Extensions.Logging.Abstractions, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Extensions.Logging.Abstractions.2.1.0\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Web.Extensions" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="TestSetup.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
<None Include="conf\testSetup.json">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="conf\.placeholder" />
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="test\FileProva.txt">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="temp\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\EgwProxy.Ftp\EgwProxy.Ftp.csproj">
|
||||
<Project>{35d95ed8-e48a-434d-a305-a83e48c8fc6f}</Project>
|
||||
<Name>EgwProxy.Ftp</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
@@ -0,0 +1,374 @@
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Configuration;
|
||||
using System.IO;
|
||||
using static System.Net.Mime.MediaTypeNames;
|
||||
|
||||
namespace EgwProxy.Ftp.Test
|
||||
{
|
||||
internal class Program
|
||||
{
|
||||
#region Protected Methods
|
||||
|
||||
/// <summary>
|
||||
/// legge conf in formato stringa
|
||||
/// </summary>
|
||||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
protected static string ReadSetting(string key)
|
||||
{
|
||||
string answ = "";
|
||||
try
|
||||
{
|
||||
answ = $"{ConfigurationManager.AppSettings[key]}" ?? "";
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Console.Write("Eccezione in ReadSettings");
|
||||
Console.Write(exc.Message);
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
#endregion Protected Methods
|
||||
|
||||
#region Private Fields
|
||||
|
||||
/// <summary>
|
||||
/// Helper separatore dash
|
||||
/// </summary>
|
||||
private const string separator = "------------------------";
|
||||
|
||||
#endregion Private Fields
|
||||
|
||||
#region Private Methods
|
||||
|
||||
/// <summary>
|
||||
/// Programma principale
|
||||
/// </summary>
|
||||
/// <param name="args"></param>
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
Console.WriteLine(separator);
|
||||
Console.WriteLine("Test FTP Client");
|
||||
Console.WriteLine(separator);
|
||||
Console.WriteLine();
|
||||
string exePath = System.Reflection.Assembly.GetExecutingAssembly().Location;
|
||||
string BaseDirectory = System.IO.Path.GetDirectoryName(exePath);
|
||||
string testFile = Path.Combine(BaseDirectory, ReadSetting("testFile"));
|
||||
Manager ftpClient = new Manager("", "", "", "", false);
|
||||
if (!string.IsNullOrEmpty(testFile))
|
||||
{
|
||||
Console.WriteLine(separator);
|
||||
Console.WriteLine($"Mode json ({testFile})");
|
||||
Console.WriteLine(separator);
|
||||
Console.WriteLine();
|
||||
if (File.Exists(testFile))
|
||||
{
|
||||
var rawData = File.ReadAllText(testFile);
|
||||
if (!string.IsNullOrEmpty(rawData))
|
||||
{
|
||||
TestSetup testConf = new TestSetup();
|
||||
try
|
||||
{
|
||||
testConf = JsonConvert.DeserializeObject<TestSetup>(rawData);
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
// setup server
|
||||
ftpClient = new Manager(testConf.server, testConf.user, testConf.password, testConf.rawCert, testConf.skipCert);
|
||||
serverTest(ftpClient);
|
||||
|
||||
// eseguo per ogni step
|
||||
foreach (var item in testConf.steps)
|
||||
{
|
||||
Console.WriteLine($"------ Step {item.id} | {item.description} ------");
|
||||
string esitoStep = "";
|
||||
switch (item.action)
|
||||
{
|
||||
case stepType.checkDir:
|
||||
if (item.paramList != null && item.paramList.Count > 0)
|
||||
{
|
||||
string dir2check = item.paramList[0];
|
||||
var dirCheckExists = ftpClient.dirExists(dir2check);
|
||||
esitoStep = dirCheckExists ? $"Directory {dir2check} found!" : $"Directory {dir2check} NOT found!";
|
||||
}
|
||||
else
|
||||
{
|
||||
esitoStep = "Error: missing parameter!";
|
||||
}
|
||||
break;
|
||||
|
||||
case stepType.checkFile:
|
||||
if (item.paramList != null && item.paramList.Count > 0)
|
||||
{
|
||||
string file2check = item.paramList[0];
|
||||
var dirCheckExists = ftpClient.fileExists(file2check);
|
||||
esitoStep = dirCheckExists ? $"File {file2check} found!" : $"File {file2check} NOT found!";
|
||||
}
|
||||
else
|
||||
{
|
||||
esitoStep = "Error: missing parameter!";
|
||||
}
|
||||
break;
|
||||
|
||||
case stepType.createDir:
|
||||
if (item.paramList != null && item.paramList.Count > 0)
|
||||
{
|
||||
string dir2check = item.paramList[0];
|
||||
var preTest = ftpClient.dirExists(dir2check);
|
||||
if (preTest)
|
||||
{
|
||||
esitoStep = "Error: Folder already exists!";
|
||||
}
|
||||
else
|
||||
{
|
||||
var dirCreate = ftpClient.createDir(dir2check);
|
||||
esitoStep = dirCreate ? $"Directory {dir2check} created!" : $"Error: {dir2check} NOT created!";
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
esitoStep = "Error: missing parameter!";
|
||||
}
|
||||
break;
|
||||
|
||||
case stepType.delDir:
|
||||
if (item.paramList != null && item.paramList.Count > 0)
|
||||
{
|
||||
string dir2check = item.paramList[0];
|
||||
var preTest = ftpClient.dirExists(dir2check);
|
||||
if (preTest)
|
||||
{
|
||||
var dirDelete = ftpClient.deleteDir(dir2check);
|
||||
esitoStep = dirDelete ? $"Directory {dir2check} deleted!" : $"Error: {dir2check} NOT deleted!";
|
||||
}
|
||||
else
|
||||
{
|
||||
esitoStep = "Error: Folder doesn't exists, delete not possible!";
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
esitoStep = "Error: missing parameter!";
|
||||
}
|
||||
break;
|
||||
|
||||
case stepType.delFile:
|
||||
if (item.paramList != null && item.paramList.Count > 0)
|
||||
{
|
||||
string file2check = item.paramList[0];
|
||||
var preTest = ftpClient.fileExists(file2check);
|
||||
if (preTest)
|
||||
{
|
||||
var dirDelete = ftpClient.deleteFile(file2check);
|
||||
esitoStep = dirDelete ? $"File {file2check} deleted!" : $"Error: {file2check} NOT deleted!";
|
||||
}
|
||||
else
|
||||
{
|
||||
esitoStep = "Error: File doesn't exists, delete not possible!";
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
esitoStep = "Error: missing parameter!";
|
||||
}
|
||||
break;
|
||||
|
||||
case stepType.downloadDir:
|
||||
if (item.paramList != null && item.paramList.Count > 1)
|
||||
{
|
||||
string dir2check = item.paramList[0];
|
||||
string localDir = Path.Combine(BaseDirectory, item.paramList[1]);
|
||||
var preTest = ftpClient.dirExists(dir2check);
|
||||
if (preTest)
|
||||
{
|
||||
var dirDelete = ftpClient.getDir(localDir, dir2check);
|
||||
esitoStep = dirDelete ? $"Directory {dir2check} downloaded!" : $"Error: {dir2check} NOT downloaded!";
|
||||
}
|
||||
else
|
||||
{
|
||||
esitoStep = "Error: Folder doesn't exists, download not possible!";
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
esitoStep = "Error: missing parameters!";
|
||||
}
|
||||
break;
|
||||
|
||||
case stepType.downloadFile:
|
||||
if (item.paramList != null && item.paramList.Count > 1)
|
||||
{
|
||||
string dir2check = item.paramList[0];
|
||||
string localDir = Path.Combine(BaseDirectory, item.paramList[1]);
|
||||
var preTest = ftpClient.dirExists(dir2check);
|
||||
if (preTest)
|
||||
{
|
||||
var dirDelete = ftpClient.getDir(localDir, dir2check);
|
||||
esitoStep = dirDelete ? $"Directory {dir2check} downloaded!" : $"Error: {dir2check} NOT downloaded!";
|
||||
}
|
||||
else
|
||||
{
|
||||
esitoStep = "Error: Folder doesn't exists, download not possible!";
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
esitoStep = "Error: missing parameters!";
|
||||
}
|
||||
break;
|
||||
|
||||
case stepType.uploadDir:
|
||||
if (item.paramList != null && item.paramList.Count > 1)
|
||||
{
|
||||
string remoteDir = item.paramList[0];
|
||||
string localDir = Path.Combine(BaseDirectory, item.paramList[1]);
|
||||
var dirUploaded = ftpClient.sendDir(localDir, remoteDir);
|
||||
esitoStep = dirUploaded ? $"Directory {remoteDir} uploaded!" : $"Error: {remoteDir} NOT uploaded!";
|
||||
}
|
||||
else
|
||||
{
|
||||
esitoStep = "Error: missing parameters!";
|
||||
}
|
||||
break;
|
||||
|
||||
case stepType.uploadFile:
|
||||
if (item.paramList != null && item.paramList.Count > 1)
|
||||
{
|
||||
string remotePath = item.paramList[0];
|
||||
string localPath = Path.Combine(BaseDirectory, item.paramList[1]);
|
||||
var fileUploaded = ftpClient.sendFile(localPath, remotePath);
|
||||
esitoStep = fileUploaded ? $"File {remotePath} uploaded!" : $"Error: {remotePath} NOT uploaded!";
|
||||
}
|
||||
else
|
||||
{
|
||||
esitoStep = "Error: missing parameters!";
|
||||
}
|
||||
break;
|
||||
|
||||
case stepType.listContent:
|
||||
if (item.paramList != null && item.paramList.Count > 0)
|
||||
{
|
||||
string remoteDir = item.paramList[0];
|
||||
var preTest = ftpClient.dirExists(remoteDir);
|
||||
if (preTest)
|
||||
{
|
||||
var listResult = ftpClient.listDir(remoteDir, false);
|
||||
Console.WriteLine($"Content of dir {remoteDir}:");
|
||||
foreach (var itemList in listResult)
|
||||
{
|
||||
Console.WriteLine(itemList);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
esitoStep = "Error: Folder doesn't exists, list not possible!";
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
esitoStep = "Error: missing parameter!";
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Console.WriteLine(esitoStep);
|
||||
Console.WriteLine($"------ Done Step {item.id} ------");
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("Press a key to continue...");
|
||||
Console.ReadKey();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// test base su server steamware
|
||||
else
|
||||
{
|
||||
Console.WriteLine(separator);
|
||||
Console.WriteLine("Mode: base");
|
||||
Console.WriteLine(separator);
|
||||
Console.WriteLine();
|
||||
|
||||
string sSkipCert = ReadSetting("skipCert");
|
||||
bool skipCert = false;
|
||||
bool.TryParse(sSkipCert, out skipCert);
|
||||
ftpClient = new Manager(ReadSetting("server"), ReadSetting("userName"), ReadSetting("passwd"), ReadSetting("rawCert"), skipCert);
|
||||
serverTest(ftpClient);
|
||||
|
||||
Console.WriteLine("--- Folder ---");
|
||||
var testExists = ftpClient.dirExists($"data/test_folder");
|
||||
if (testExists)
|
||||
{
|
||||
Console.WriteLine("Folder already exists!");
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("--- Create folder ---");
|
||||
var testCreate = ftpClient.createDir($"data/test_folder");
|
||||
Console.WriteLine();
|
||||
}
|
||||
|
||||
Console.WriteLine("Contenuto folder remota: ");
|
||||
var folderContent = ftpClient.listDir("data/", true);
|
||||
foreach (var item in folderContent)
|
||||
{
|
||||
Console.WriteLine(item);
|
||||
}
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("Premere un tasto x continuare...");
|
||||
Console.ReadKey();
|
||||
|
||||
Console.WriteLine("--- Upload file ---");
|
||||
ftpClient.sendFile("test/FileProva.txt", "data/test_folder/FileProva.txt");
|
||||
Console.WriteLine("Contenuto folder remota: ");
|
||||
folderContent = ftpClient.listDir("data/", true);
|
||||
foreach (var item in folderContent)
|
||||
{
|
||||
Console.WriteLine(item);
|
||||
}
|
||||
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("Premere un tasto x continuare...");
|
||||
Console.ReadKey();
|
||||
|
||||
Console.WriteLine("--- Download File ---");
|
||||
|
||||
ftpClient.getFile("test/FileProva_02.txt", "data/test_folder/FileProva.txt");
|
||||
Console.WriteLine("Contenuto folder remota: ");
|
||||
folderContent = ftpClient.listDir("data/", true);
|
||||
foreach (var item in folderContent)
|
||||
{
|
||||
Console.WriteLine(item);
|
||||
}
|
||||
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("Premere un tasto x continuare...");
|
||||
Console.ReadKey();
|
||||
}
|
||||
}
|
||||
|
||||
private static void serverTest(Manager ftpClient)
|
||||
{
|
||||
Console.WriteLine(separator);
|
||||
var testServer = ftpClient.serverOk();
|
||||
Console.WriteLine($"Test connessione: esito {testServer}");
|
||||
var srvType = ftpClient.serverType();
|
||||
Console.WriteLine($"Server: {srvType}");
|
||||
Console.WriteLine(separator);
|
||||
Console.WriteLine();
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("EgwProxy.Ftp.Test")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("EgwProxy.Ftp.Test")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2022")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("a655a6ac-5997-46f9-9752-8c621b80516c")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// 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("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
@@ -0,0 +1,42 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace EgwProxy.Ftp.Test
|
||||
{
|
||||
public class TestSetup
|
||||
{
|
||||
public string server { get; set; } = "";
|
||||
public string user { get; set; } = "";
|
||||
public string password { get; set; } = "";
|
||||
public string rawCert { get; set; } = "";
|
||||
public bool skipCert { get; set; } = false;
|
||||
public List<singleStep> steps { get; set; }
|
||||
}
|
||||
|
||||
public class singleStep
|
||||
{
|
||||
public string id { get; set; } = "00";
|
||||
public string description { get; set; } = "00";
|
||||
public stepType action { get; set; } = stepType.checkDir;
|
||||
|
||||
public List<string> paramList { get; set; } = new List<string>();
|
||||
}
|
||||
|
||||
public enum stepType
|
||||
{
|
||||
checkDir,
|
||||
checkFile,
|
||||
createDir,
|
||||
delDir,
|
||||
delFile,
|
||||
downloadDir,
|
||||
downloadFile,
|
||||
uploadDir,
|
||||
uploadFile,
|
||||
listContent
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"server": "ftp.steamware.net",
|
||||
"user": "testftpuser",
|
||||
"password": "we4reFromB3rghem!",
|
||||
"rawCert": "",
|
||||
"skipCert": true,
|
||||
"steps": [
|
||||
{
|
||||
"id": "01",
|
||||
"description": "Test base directory",
|
||||
"action": "checkDir",
|
||||
"paramList": [
|
||||
"data/"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "02",
|
||||
"description": "Create directory",
|
||||
"action": "createDir",
|
||||
"paramList": [
|
||||
"data/test_directory"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "03",
|
||||
"description": "Upload File",
|
||||
"action": "uploadFile",
|
||||
"paramList": [
|
||||
"data/test_directory/FileProva.txt",
|
||||
"test/FileProva.txt"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "04",
|
||||
"description": "Browse Directory",
|
||||
"action": "listContent",
|
||||
"paramList": [
|
||||
"data/test_directory/"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "05",
|
||||
"description": "Upload File",
|
||||
"action": "uploadFile",
|
||||
"paramList": [
|
||||
"data/test_directory/FileProva_02.txt",
|
||||
"test/FileProva.txt"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "06",
|
||||
"description": "Browse Directory",
|
||||
"action": "listContent",
|
||||
"paramList": [
|
||||
"data/test_directory/"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "07",
|
||||
"description": "Download Directory",
|
||||
"action": "downloadDir",
|
||||
"paramList": [
|
||||
"data/test_directory/",
|
||||
"temp/mirror"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "08",
|
||||
"description": "Delete Remote Directory",
|
||||
"action": "delDir",
|
||||
"paramList": [
|
||||
"data/test_directory/"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="FluentFTP" version="41.0.0" targetFramework="net462" />
|
||||
<package id="Microsoft.Extensions.Logging.Abstractions" version="2.1.0" targetFramework="net462" />
|
||||
<package id="Newtonsoft.Json" version="13.0.1" targetFramework="net462" />
|
||||
</packages>
|
||||
@@ -0,0 +1 @@
|
||||
File di prova
|
||||
@@ -0,0 +1,57 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{35D95ED8-E48A-434D-A305-A83E48C8FC6F}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>EgwProxy.Ftp</RootNamespace>
|
||||
<AssemblyName>EgwProxy.Ftp</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="FluentFTP, Version=41.0.0.0, Culture=neutral, PublicKeyToken=f4af092b1d8df44f, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\FluentFTP.41.0.0\lib\net462\FluentFTP.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Extensions.Logging.Abstractions, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Extensions.Logging.Abstractions.2.1.0\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Manager.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
@@ -0,0 +1,325 @@
|
||||
using FluentFTP;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net.Security;
|
||||
|
||||
namespace EgwProxy.Ftp
|
||||
{
|
||||
/// <summary>
|
||||
/// Client per operazioni FTP, basato su FluentFTP: https://github.com/robinrodricks/FluentFTP/wiki/Quick-Start-Example
|
||||
/// </summary>
|
||||
public class Manager
|
||||
{
|
||||
#region Public Constructors
|
||||
|
||||
/// <summary>
|
||||
/// Inizializzazione di oggetto per comunicazione FTP
|
||||
/// </summary>
|
||||
/// <param name="server"></param>
|
||||
/// <param name="userName"></param>
|
||||
/// <param name="passwd"></param>
|
||||
/// <param name="rawCert"></param>
|
||||
/// <param name="skipCert"></param>
|
||||
public Manager(string server, string userName, string passwd, string rawCert, bool skipCert)
|
||||
{
|
||||
_server = server;
|
||||
_userName = userName;
|
||||
_passwd = passwd;
|
||||
_skipCert = skipCert;
|
||||
_rawCert = rawCert;
|
||||
if (!string.IsNullOrEmpty(server))
|
||||
{
|
||||
// se ho user/pwd è autenticato...
|
||||
if (!string.IsNullOrEmpty(userName) && !string.IsNullOrEmpty(passwd))
|
||||
{
|
||||
client = new FtpClient(server, userName, passwd);
|
||||
}
|
||||
//.. altrimenti anonimo...
|
||||
else
|
||||
{
|
||||
client = new FtpClient(server);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Creazione directory remota
|
||||
/// </summary>
|
||||
/// <param name="remoteDir">Nome directory remota da creare (ad es: @"/public_html/videos")</param>
|
||||
public bool createDir(string remoteDir)
|
||||
{
|
||||
tryConnect();
|
||||
// upload della folder + files, cancellazione extra files = mirroring
|
||||
bool answ = client.CreateDirectory(remoteDir);
|
||||
// chiudo!
|
||||
client.Disconnect();
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Eliminazionedirectory remota
|
||||
/// </summary>
|
||||
/// <param name="remoteDir">Nome directory remota da eliminare</param>
|
||||
public bool deleteDir(string remoteDir)
|
||||
{
|
||||
tryConnect();
|
||||
bool answ = false;
|
||||
try
|
||||
{
|
||||
// Elimina folder
|
||||
client.DeleteDirectory(remoteDir);
|
||||
answ = true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
// chiudo!
|
||||
client.Disconnect();
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Eliminazionedirectory remota
|
||||
/// </summary>
|
||||
/// <param name="remoteFile">Nome file remoto da eliminare</param>
|
||||
public bool deleteFile(string remoteFile)
|
||||
{
|
||||
tryConnect();
|
||||
bool answ = false;
|
||||
try
|
||||
{
|
||||
// Elimina folder
|
||||
client.DeleteFile(remoteFile);
|
||||
answ = true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
// chiudo!
|
||||
client.Disconnect();
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Verifica esistenza directory su server FTP remoto
|
||||
/// </summary>
|
||||
/// <param name="remotePath">Percorso remoto da testare (ad es "/htdocs/extras/")</param>
|
||||
/// <returns></returns>
|
||||
public bool dirExists(string remotePath)
|
||||
{
|
||||
tryConnect();
|
||||
bool answ = client.DirectoryExists(remotePath);
|
||||
// chiudo!
|
||||
client.Disconnect();
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Verifica esistenza file su server FTP remoto
|
||||
/// </summary>
|
||||
/// <param name="remotePath">Percorso remoto da testare (ad es "/htdocs/big2.txt")</param>
|
||||
/// <returns></returns>
|
||||
public bool fileExists(string remotePath)
|
||||
{
|
||||
tryConnect();
|
||||
bool answ = client.FileExists(remotePath);
|
||||
// chiudo!
|
||||
client.Disconnect();
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Scaricamento intera directory, modalità MIRROR
|
||||
/// </summary>
|
||||
/// <param name="dirPath">Path directory da inviare (ad es:@"C:\website\videos\")</param>
|
||||
/// <param name="remoteDir">Nome remoto file per caricamento (ad es: @"/public_html/videos")</param>
|
||||
public bool getDir(string dirPath, string remoteDir)
|
||||
{
|
||||
bool answ = false;
|
||||
tryConnect();
|
||||
try
|
||||
{
|
||||
// upload della folder + files, cancellazione extra files = mirroring
|
||||
var result = client.DownloadDirectory(dirPath, remoteDir, FtpFolderSyncMode.Mirror);
|
||||
answ = (result != null && result.Count > 0);
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
// chiudo!
|
||||
client.Disconnect();
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Download singolo file
|
||||
/// </summary>
|
||||
/// <param name="fileName">Path locale del file da inviare (ad es: @"C:\MyVideo.mp4")</param>
|
||||
/// <param name="remoteName">NOme remoto file per caricamento (ad es: "/htdocs/MyVideo.mp4")</param>
|
||||
public bool getFile(string fileName, string remoteName)
|
||||
{
|
||||
bool answ = false;
|
||||
tryConnect();
|
||||
// effettuo caricamento puntuale
|
||||
var result = client.DownloadFile(fileName, remoteName);
|
||||
answ = result == FtpStatus.Success;
|
||||
// chiudo!
|
||||
client.Disconnect();
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Mostra contenuto directory remota
|
||||
/// </summary>
|
||||
/// <param name="remoteDir">Nome directory remota da leggere (ad es: @"/public_html/videos")</param>
|
||||
/// <param name="recurse">Indica se fare search ricorsivo</param>
|
||||
public List<string> listDir(string remoteDir, bool recurse)
|
||||
{
|
||||
tryConnect();
|
||||
// upload della folder + files, cancellazione extra files = mirroring
|
||||
FtpListItem[] dirContent;
|
||||
if (recurse)
|
||||
{
|
||||
dirContent = client.GetListing(remoteDir, FtpListOption.Recursive);
|
||||
}
|
||||
else
|
||||
{
|
||||
dirContent = client.GetListing(remoteDir);
|
||||
}
|
||||
client.Disconnect();
|
||||
var answ = dirContent.Select(x => $"{x.Type} - {x.Name}").ToList();
|
||||
// chiudo!
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Caricamento intera directory, modalità MIRROR
|
||||
/// </summary>
|
||||
/// <param name="dirPath">Path directory da inviare (ad es:@"C:\website\videos\")</param>
|
||||
/// <param name="remoteDir">Nome remoto file per caricamento (ad es: @"/public_html/videos")</param>
|
||||
public bool sendDir(string dirPath, string remoteDir)
|
||||
{
|
||||
bool answ = false;
|
||||
tryConnect();
|
||||
// upload della folder + files, cancellazione extra files = mirroring
|
||||
var result = client.UploadDirectory(dirPath, remoteDir, FtpFolderSyncMode.Mirror);
|
||||
answ = (result != null && result.Count > 0);
|
||||
// chiudo!
|
||||
client.Disconnect();
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Caricamento singolo file
|
||||
/// </summary>
|
||||
/// <param name="fileName">Path locale del file da inviare (ad es: @"C:\MyVideo.mp4")</param>
|
||||
/// <param name="remoteName">NOme remoto file per caricamento (ad es: "/htdocs/MyVideo.mp4")</param>
|
||||
public bool sendFile(string fileName, string remoteName)
|
||||
{
|
||||
bool answ = false;
|
||||
tryConnect();
|
||||
// effettuo caricamento puntuale
|
||||
var result = client.UploadFile(fileName, remoteName);
|
||||
answ = result == FtpStatus.Success;
|
||||
// se insuccesso --> controllo se ci sia file...
|
||||
if (!answ)
|
||||
{
|
||||
answ = fileExists(remoteName);
|
||||
}
|
||||
// chiudo!
|
||||
client.Disconnect();
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Verifica connessione con server FTP remoto
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool serverOk()
|
||||
{
|
||||
tryConnect();
|
||||
bool answ = client.IsConnected;
|
||||
// chiudo!
|
||||
client.Disconnect();
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce tipo server remoto
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string serverType()
|
||||
{
|
||||
tryConnect();
|
||||
FtpServer srvType = client.ServerType;
|
||||
// chiudo!
|
||||
client.Disconnect();
|
||||
return $"{srvType}";
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Protected Fields
|
||||
|
||||
protected bool _skipCert = false;
|
||||
|
||||
#endregion Protected Fields
|
||||
|
||||
#region Protected Properties
|
||||
|
||||
protected string _passwd { get; set; } = "";
|
||||
|
||||
protected string _rawCert { get; set; } = "";
|
||||
protected string _server { get; set; } = "";
|
||||
|
||||
protected string _userName { get; set; } = "";
|
||||
|
||||
#endregion Protected Properties
|
||||
|
||||
#region Private Properties
|
||||
|
||||
private FtpClient client { get; set; }
|
||||
|
||||
#endregion Private Properties
|
||||
|
||||
#region Private Methods
|
||||
|
||||
private void Client_ValidateCertificate(FluentFTP.Client.BaseClient.BaseFtpClient control, FtpSslValidationEventArgs e)
|
||||
{
|
||||
if (e.PolicyErrors == SslPolicyErrors.None || _skipCert || e.Certificate.GetRawCertDataString() == _rawCert)
|
||||
{
|
||||
e.Accept = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine($"{e.PolicyErrors}");
|
||||
Console.WriteLine($"Cert:{Environment.NewLine}{e.Certificate}");
|
||||
Console.WriteLine($"RawString:{Environment.NewLine}{e.Certificate.GetRawCertDataString()}");
|
||||
throw new Exception($"{e.PolicyErrors}{Environment.NewLine}{e.Certificate.GetRawCertDataString()}");
|
||||
}
|
||||
}
|
||||
|
||||
private void tryConnect()
|
||||
{
|
||||
// connect to the server and automatically detect working FTP settings
|
||||
if (!client.IsConnected)
|
||||
{
|
||||
var profiles = client.AutoDetect();
|
||||
#if false
|
||||
// if any profiles are found, print the code to the console
|
||||
if (profiles.Count > 0)
|
||||
{
|
||||
var code = profiles[0].ToCode();
|
||||
Console.WriteLine(code);
|
||||
}
|
||||
#endif
|
||||
client.ValidateCertificate += Client_ValidateCertificate;
|
||||
client.AutoConnect();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("EgwProxy.Ftp")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("EgwProxy.Ftp")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2022")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("35d95ed8-e48a-434d-a305-a83e48c8fc6f")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// 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("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"metadata": [
|
||||
{
|
||||
"src": [
|
||||
{
|
||||
"files": [
|
||||
"*.csproj",
|
||||
"*.vbproj"
|
||||
],
|
||||
"cwd": ".",
|
||||
"exclude": [
|
||||
"**/obj/**",
|
||||
"**/bin/**",
|
||||
"_site/**"
|
||||
]
|
||||
}
|
||||
],
|
||||
"dest": "obj/api"
|
||||
}
|
||||
],
|
||||
"build": {
|
||||
"content": [
|
||||
{
|
||||
"files": [
|
||||
"api/**.yml"
|
||||
],
|
||||
"cwd": "obj"
|
||||
},
|
||||
{
|
||||
"files": [
|
||||
"api/*.md",
|
||||
"articles/**.md",
|
||||
"toc.yml",
|
||||
"*.md"
|
||||
],
|
||||
"exclude": [
|
||||
"obj/**",
|
||||
"_site/**"
|
||||
]
|
||||
}
|
||||
],
|
||||
"resource": [
|
||||
{
|
||||
"files": [
|
||||
"images/**"
|
||||
],
|
||||
"exclude": [
|
||||
"obj/**",
|
||||
"_site/**"
|
||||
]
|
||||
}
|
||||
],
|
||||
"overwrite": [
|
||||
{
|
||||
"files": [
|
||||
"apidoc/**.md"
|
||||
],
|
||||
"exclude": [
|
||||
"obj/**",
|
||||
"_site/**"
|
||||
]
|
||||
}
|
||||
],
|
||||
"dest": "_site",
|
||||
"template": [
|
||||
"default"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
# EgwProxy.Ftp Library
|
||||
|
||||
Documentazione relativa alla libreria di interfaccia via FTP con server generici.
|
||||
|
||||
Disponibile in forma di pacchetto nuget sul repo aziendale nexus.steamware.net: i pacchetti sono disponibili all'indirizzo
|
||||
|
||||
https://nexus.steamware.net/#browse/browse:nuget-hosted
|
||||
|
||||
Vedere la sezione Articles per maggiori informazioni sulle definizioni, l'impiego ed esempi.
|
||||
|
||||
## Articles
|
||||
|
||||
Per maggiori dettagli, definizioni e demo funzionamento si rimanda alla sezione Articles
|
||||
|
||||
## Api
|
||||
|
||||
Per ogni dettaglio e riferimento alla libreria si rimanda alla sezione Api Documentation
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="FluentFTP" version="41.0.0" targetFramework="net462" />
|
||||
<package id="Microsoft.Extensions.Logging.Abstractions" version="2.1.0" targetFramework="net462" />
|
||||
</packages>
|
||||
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<configSections>
|
||||
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
|
||||
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
||||
</configSections>
|
||||
<entityFramework>
|
||||
<providers>
|
||||
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
|
||||
</providers>
|
||||
</entityFramework>
|
||||
<connectionStrings>
|
||||
<add name="EntrataFrontiera" connectionString="data source=192.168.137.10\sqlexpress;initial catalog=frontiera;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
|
||||
<add name="ExportIcoel" connectionString="data source=192.168.137.10\sqlexpress;initial catalog=IcoelExport;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
|
||||
<add name="TrackerLotti" connectionString="data source=192.168.250.250\sqlexpress;initial catalog=TrackerLotti3;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
|
||||
<add name="SyncState" connectionString="data source=localhost\sqlexpress;initial catalog=MoonPro_ISF;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
|
||||
</connectionStrings>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Text.Encodings.Web" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.5.1" newVersion="4.0.5.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
@@ -0,0 +1,132 @@
|
||||
using NLog;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
/*------------------------------------------------
|
||||
* Aggiunto fix come da link seguente:
|
||||
*
|
||||
* https://stackoverflow.com/questions/14033193/entity-framework-provider-type-could-not-be-loaded
|
||||
*
|
||||
* I solved this by adding an using stament on top of my DBContext class, like so:
|
||||
* using SqlProviderServices= System.Data.Entity.SqlServer.SqlProviderServices;
|
||||
*
|
||||
*/
|
||||
|
||||
namespace EgwProxy.Icoel.DataLayer.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// Controller accesso dati DB vari x ICOEL
|
||||
/// </summary>
|
||||
public class DbController : IDisposable
|
||||
{
|
||||
#if false
|
||||
private static EntrataDbContext dbEntrataCtx;
|
||||
private static ExportDbContext dbExportCtx;
|
||||
private static TrackerDbContext dbTrackerCtx;
|
||||
#endif
|
||||
|
||||
#region Public Constructors
|
||||
|
||||
/// <summary>
|
||||
/// Avvio dell'oggetto gestione DB con stringa di connessione specifica
|
||||
/// </summary>
|
||||
/// <param name="connSyncState">Connessione DB locale di SYNC</param>
|
||||
public DbController(string connSyncState)
|
||||
{
|
||||
dbSyncStateCtx = new SyncStateDbContext(connSyncState);
|
||||
Log.Info("Avviata classe dbSyncStateCtx");
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Recupera la tab di CurrData corrente
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public List<DatabaseModels.CurrDataModel> CurrDataGetAll()
|
||||
{
|
||||
List<DatabaseModels.CurrDataModel> dbResult = new List<DatabaseModels.CurrDataModel>();
|
||||
|
||||
dbResult = dbSyncStateCtx
|
||||
.DbSetCurrData
|
||||
.ToList();
|
||||
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Dispose classe
|
||||
/// </summary>
|
||||
public void Dispose()
|
||||
{
|
||||
// Clear database context
|
||||
#if false
|
||||
dbEntrataCtx.Dispose();
|
||||
dbExportCtx.Dispose();
|
||||
dbTrackerCtx.Dispose();
|
||||
#endif
|
||||
dbSyncStateCtx.Dispose();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Esegue una volta la stored di ImportAll (x recupero dati da DB esterni) e poi
|
||||
/// restitusice in output la tab di SyncState x verificare lo stato
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public List<DatabaseModels.SyncStateModel> SyncStateDoExportAll()
|
||||
{
|
||||
List<DatabaseModels.SyncStateModel> dbResult = new List<DatabaseModels.SyncStateModel>();
|
||||
|
||||
dbResult = dbSyncStateCtx
|
||||
.Database
|
||||
.SqlQuery<DatabaseModels.SyncStateModel>("EXEC stp_ExportAll")
|
||||
.ToList();
|
||||
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Esegue una volta la stored di ImportAll (x recupero dati da DB esterni) e poi
|
||||
/// restitusice in output la tab di SyncState x verificare lo stato
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public List<DatabaseModels.SyncStateModel> SyncStateDoImportAll()
|
||||
{
|
||||
List<DatabaseModels.SyncStateModel> dbResult = new List<DatabaseModels.SyncStateModel>();
|
||||
|
||||
dbResult = dbSyncStateCtx
|
||||
.Database
|
||||
.SqlQuery<DatabaseModels.SyncStateModel>("EXEC stp_ImportAll")
|
||||
.ToList();
|
||||
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// recupera la tab di SyncState corrente
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public List<DatabaseModels.SyncStateModel> SyncStateGetAll()
|
||||
{
|
||||
List<DatabaseModels.SyncStateModel> dbResult = new List<DatabaseModels.SyncStateModel>();
|
||||
|
||||
dbResult = dbSyncStateCtx
|
||||
.DbSetSyncState
|
||||
.ToList();
|
||||
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Private Fields
|
||||
|
||||
private static SyncStateDbContext dbSyncStateCtx;
|
||||
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
#endregion Private Fields
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Data.Entity.Spatial;
|
||||
|
||||
namespace EgwProxy.Icoel.DataLayer.DatabaseModels
|
||||
{
|
||||
|
||||
[Table("CurrData")]
|
||||
public partial class CurrDataModel
|
||||
{
|
||||
[Key]
|
||||
[StringLength(50)]
|
||||
public string Topic { get; set; }
|
||||
|
||||
public decimal CurrVal { get; set; } = 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Data.Entity.Spatial;
|
||||
|
||||
namespace EgwProxy.Icoel.DataLayer.DatabaseModels
|
||||
{
|
||||
|
||||
[Table("DettagliConferimentoMES")]
|
||||
public partial class DettConferimentoModel
|
||||
{
|
||||
[Key]
|
||||
[Column(Order = 0)]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
public long PackId { get; set; }
|
||||
|
||||
[Key]
|
||||
[Column(Order = 1)]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
public long FillingId { get; set; }
|
||||
|
||||
[Key]
|
||||
[Column(Order = 2)]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
public int FilligRow { get; set; }
|
||||
|
||||
[Key]
|
||||
[Column(Order = 3)]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
public long ScaricoId { get; set; }
|
||||
|
||||
public string CODBARRE { get; set; }
|
||||
|
||||
public string CODICE_FORNITORE { get; set; }
|
||||
|
||||
public string NOME_FORNITORE { get; set; }
|
||||
|
||||
public string CODICE_PRODOTTO { get; set; }
|
||||
|
||||
public string DESCRIZIONE_PRODOTTO { get; set; }
|
||||
|
||||
public string CODICE_PRODOTTO_GREZZO { get; set; }
|
||||
|
||||
public string DESCRIZIONE_PRODOTTO_GREZZO { get; set; }
|
||||
|
||||
public string SIGLA_LOTTO { get; set; }
|
||||
|
||||
public string NUMERO_LOTTO { get; set; }
|
||||
|
||||
public string DATA_ENTRATA { get; set; }
|
||||
|
||||
public string QUANTITA_ENTRATA { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Data.Entity.Spatial;
|
||||
|
||||
namespace EgwProxy.Icoel.DataLayer.DatabaseModels
|
||||
{
|
||||
|
||||
[Table("DettagliConfezioniMES")]
|
||||
public partial class DettConfezioniModel
|
||||
{
|
||||
[Key]
|
||||
[Column("Pack Id", Order = 0)]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
public long Pack_Id { get; set; }
|
||||
|
||||
[StringLength(50)]
|
||||
public string EAN { get; set; }
|
||||
|
||||
[Key]
|
||||
[Column("Batch Id", Order = 1)]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
public long Batch_Id { get; set; }
|
||||
|
||||
public string BatchName { get; set; }
|
||||
|
||||
[Key]
|
||||
[Column(Order = 2)]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
public int Lane1SizerBatchId { get; set; }
|
||||
|
||||
[Key]
|
||||
[Column(Order = 3)]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
public int Lane2SizerBatchId { get; set; }
|
||||
|
||||
[Key]
|
||||
[Column("End Time", Order = 4, TypeName = "datetime2")]
|
||||
public DateTime End_Time { get; set; }
|
||||
|
||||
[Key]
|
||||
[Column(Order = 5)]
|
||||
public Guid SizerProductGUID { get; set; }
|
||||
|
||||
[Column("Product Name")]
|
||||
public string Product_Name { get; set; }
|
||||
|
||||
[Key]
|
||||
[Column(Order = 6)]
|
||||
public Guid SizerPackGUID { get; set; }
|
||||
|
||||
[Column("Pack Name")]
|
||||
[StringLength(50)]
|
||||
public string Pack_Name { get; set; }
|
||||
|
||||
[Key]
|
||||
[Column(Order = 7)]
|
||||
public decimal PesoDecigram { get; set; }
|
||||
|
||||
[StringLength(10)]
|
||||
public string FillingMode { get; set; }
|
||||
|
||||
[Key]
|
||||
[Column(Order = 8)]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
public int Quantity { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Data.Entity.Spatial;
|
||||
|
||||
namespace EgwProxy.Icoel.DataLayer.DatabaseModels
|
||||
{
|
||||
|
||||
[Table("ENTRATACILIEGIE")]
|
||||
public partial class EntrataModel
|
||||
{
|
||||
[Key]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
public long ID_CHIAVE { get; set; }
|
||||
|
||||
[StringLength(20)]
|
||||
public string CODBARRE { get; set; }
|
||||
|
||||
public double? CODICE_FORNITORE { get; set; }
|
||||
|
||||
[StringLength(5)]
|
||||
public string CODICE_LUOGO_PRODUZIONE { get; set; }
|
||||
|
||||
[StringLength(50)]
|
||||
public string NOME_FORNITORE { get; set; }
|
||||
|
||||
[StringLength(50)]
|
||||
public string INDIRIZZO_FORNITORE { get; set; }
|
||||
|
||||
[StringLength(50)]
|
||||
public string COMUNE_FORNITORE { get; set; }
|
||||
|
||||
[StringLength(50)]
|
||||
public string NOME_LUOGO_PRODUZIONE { get; set; }
|
||||
|
||||
[StringLength(50)]
|
||||
public string INDIRIZZO_LUOGO_PRODUZIONE { get; set; }
|
||||
|
||||
[StringLength(50)]
|
||||
public string COMUNE_LUOGO_PRODUZIONE { get; set; }
|
||||
|
||||
[StringLength(10)]
|
||||
public string CODICE_PRODOTTO { get; set; }
|
||||
|
||||
[StringLength(50)]
|
||||
public string DESCRIZIONE_PRODOTTO { get; set; }
|
||||
|
||||
[StringLength(10)]
|
||||
public string CODICE_PRODOTTO_GREZZO { get; set; }
|
||||
|
||||
[StringLength(50)]
|
||||
public string DESCRIZIONE_PRODOTTO_GREZZO { get; set; }
|
||||
|
||||
[StringLength(50)]
|
||||
public string SIGLA_LOTTO { get; set; }
|
||||
|
||||
[StringLength(10)]
|
||||
public string NUMERO_LOTTO { get; set; }
|
||||
|
||||
[Column(TypeName = "datetime2")]
|
||||
public DateTime? DATA_ENTRATA { get; set; }
|
||||
|
||||
public double? QUANTITA_ENTRATA { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Data.Entity.Spatial;
|
||||
|
||||
namespace EgwProxy.Icoel.DataLayer.DatabaseModels
|
||||
{
|
||||
|
||||
[Table("ProductsTotals")]
|
||||
public partial class ProductsTotalsModel
|
||||
{
|
||||
[Key]
|
||||
[Column(Order = 0)]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
public int SizerBatchId { get; set; }
|
||||
|
||||
[Key]
|
||||
[Column(Order = 1)]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
public int Index { get; set; }
|
||||
|
||||
public string Nome { get; set; }
|
||||
|
||||
public string Qualities { get; set; }
|
||||
|
||||
public string Grado { get; set; }
|
||||
|
||||
public string Calibro { get; set; }
|
||||
|
||||
public int NumeroFrutti { get; set; }
|
||||
|
||||
public string Decigrammi { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Data.Entity.Spatial;
|
||||
|
||||
namespace EgwProxy.Icoel.DataLayer.DatabaseModels
|
||||
{
|
||||
|
||||
[Table("SyncState")]
|
||||
public partial class SyncStateModel
|
||||
{
|
||||
[Key]
|
||||
[StringLength(50)]
|
||||
public string TableName { get; set; }
|
||||
|
||||
public long LastIdx { get; set; }
|
||||
|
||||
public long LastIdxIn { get; set; }
|
||||
|
||||
public long LastIdxOut { get; set; }
|
||||
|
||||
public long NumRec { get; set; }
|
||||
|
||||
public long NumRecIn { get; set; }
|
||||
|
||||
public long NumRecOut { get; set; }
|
||||
|
||||
public DateTime LastUpdate { get; set; } = DateTime.Today;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace EgwProxy.Icoel.DataLayer
|
||||
{
|
||||
public static class DbConfig
|
||||
{
|
||||
#region Public Fields
|
||||
|
||||
public static string DATABASE_NAME = "EgtBwDb";
|
||||
|
||||
public static int DATABASE_PROCESS_TIMEOUT = 5;
|
||||
public static string DATABASE_PWD = "viacremasca";
|
||||
|
||||
// Database config
|
||||
public static string DATABASE_SERV = "127.0.0.1";
|
||||
|
||||
public static string DATABASE_USER = "EgtUser";
|
||||
|
||||
#endregion Public Fields
|
||||
|
||||
#region Public Properties
|
||||
|
||||
/// <summary>
|
||||
/// DB Connection string per azioni amministrative
|
||||
/// </summary>
|
||||
public static string ADMIN_CONNECTION_STRING { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// DB Connection string
|
||||
/// </summary>
|
||||
public static string CONNECTION_STRING { get; set; } = "";
|
||||
|
||||
#endregion Public Properties
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Metodo di init standard per DB in rete con Master_Key
|
||||
/// </summary>
|
||||
/// <param name="server">Indirizzo del server (tipicamente indirizzo di rete)</param>
|
||||
/// <param name="nKey">Numero chiave</param>
|
||||
/// <param name="sKey">Codice/pwd associato a chaive</param>
|
||||
/// <param name="masterKey">Numero di chiave master con cui è creato il DB</param>
|
||||
public static void InitDb(string server, string nKey, string sKey, string masterKey = "")
|
||||
{
|
||||
// se nulla metto amster come nKey...
|
||||
masterKey = string.IsNullOrEmpty(masterKey) ? nKey : masterKey;
|
||||
DATABASE_SERV = server;
|
||||
DATABASE_NAME = $"EgtBwDb_{masterKey}";
|
||||
DATABASE_USER = $"user_{nKey}";
|
||||
DATABASE_PWD = $"pwd_{sKey}";
|
||||
CONNECTION_STRING = $"server={DATABASE_SERV};port=3306;database={DATABASE_NAME};uid={DATABASE_USER};pwd={DATABASE_PWD};sslmode=None";
|
||||
// stringa admin con utente root egalware...
|
||||
ADMIN_CONNECTION_STRING = $"server={DATABASE_SERV};port=3306;database=mysql;uid=root;pwd=Egalware_24068!;sslmode=None;CHARSET=utf8";
|
||||
}
|
||||
|
||||
#if false
|
||||
public static bool CheckUser(string nKey, string sKey, bool isNetwork)
|
||||
{
|
||||
// esecuzione script di install locale
|
||||
return Controllers.DbController.man.checkCreateUser(DATABASE_USER, DATABASE_PWD, isNetwork);
|
||||
}
|
||||
#endif
|
||||
|
||||
#endregion Public Methods
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,192 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.props" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{E36544CB-D699-48D8-9F81-C2758E7C7D19}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>EgwProxy.Icoel.DataLayer</RootNamespace>
|
||||
<AssemblyName>EgwProxy.Icoel.DataLayer</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
<TargetFrameworkProfile />
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Azure.Core, Version=1.6.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Azure.Core.1.6.0\lib\net461\Azure.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Azure.Identity, Version=1.3.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Azure.Identity.1.3.0\lib\netstandard2.0\Azure.Identity.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.1.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Data.SqlClient, Version=4.1.0.0, Culture=neutral, PublicKeyToken=23ec7fc2d6eaa4a5, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Data.SqlClient.4.1.1\lib\net461\Microsoft.Data.SqlClient.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Identity.Client, Version=4.22.0.0, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Identity.Client.4.22.0\lib\net461\Microsoft.Identity.Client.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Identity.Client.Extensions.Msal, Version=2.16.5.0, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Identity.Client.Extensions.Msal.2.16.5\lib\net45\Microsoft.Identity.Client.Extensions.Msal.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.IdentityModel.JsonWebTokens, Version=6.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.IdentityModel.JsonWebTokens.6.8.0\lib\net461\Microsoft.IdentityModel.JsonWebTokens.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.IdentityModel.Logging, Version=6.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.IdentityModel.Logging.6.8.0\lib\net461\Microsoft.IdentityModel.Logging.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.IdentityModel.Protocols, Version=6.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.IdentityModel.Protocols.6.8.0\lib\net461\Microsoft.IdentityModel.Protocols.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect, Version=6.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.IdentityModel.Protocols.OpenIdConnect.6.8.0\lib\net461\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.IdentityModel.Tokens, Version=6.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.IdentityModel.Tokens.6.8.0\lib\net461\Microsoft.IdentityModel.Tokens.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NLog.4.7.9\lib\net45\NLog.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Configuration.ConfigurationManager, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Configuration.ConfigurationManager.5.0.0\lib\net461\System.Configuration.ConfigurationManager.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data.OracleClient" />
|
||||
<Reference Include="System.Diagnostics.DiagnosticSource, Version=4.0.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Diagnostics.DiagnosticSource.4.6.0\lib\net46\System.Diagnostics.DiagnosticSource.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.IdentityModel" />
|
||||
<Reference Include="System.IdentityModel.Tokens.Jwt, Version=6.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IdentityModel.Tokens.Jwt.6.8.0\lib\net461\System.IdentityModel.Tokens.Jwt.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.4.3.0\lib\net462\System.IO.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.IO.Compression, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Compression.4.1.0\lib\net46\System.IO.Compression.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Net" />
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.5.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.6.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.Serialization" />
|
||||
<Reference Include="System.Security" />
|
||||
<Reference Include="System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.AccessControl.5.0.0\lib\net461\System.Security.AccessControl.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Security.Cryptography.Algorithms, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net461\System.Security.Cryptography.Algorithms.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Security.Cryptography.ProtectedData, Version=4.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Cryptography.ProtectedData.4.5.0\lib\net461\System.Security.Cryptography.ProtectedData.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Permissions.5.0.0\lib\net461\System.Security.Permissions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Security.Principal.Windows, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Principal.Windows.5.0.0\lib\net461\System.Security.Principal.Windows.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.ServiceModel" />
|
||||
<Reference Include="System.ServiceProcess" />
|
||||
<Reference Include="System.Text.Encodings.Web, Version=4.0.5.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Text.Encodings.Web.4.7.2\lib\net461\System.Text.Encodings.Web.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Text.Json, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Text.Json.4.6.0\lib\net461\System.Text.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.2\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Transactions" />
|
||||
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="WindowsBase" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Controllers\DbController.cs" />
|
||||
<Compile Include="DatabaseModels\EntrataModel.cs" />
|
||||
<Compile Include="DatabaseModels\DettConferimentoModel.cs" />
|
||||
<Compile Include="DatabaseModels\DettConfezioniModel.cs" />
|
||||
<Compile Include="DatabaseModels\CurrDataModel.cs" />
|
||||
<Compile Include="EntrataDbContext.cs" />
|
||||
<Compile Include="ExportDbContext.cs" />
|
||||
<Compile Include="DatabaseModels\ProductsTotalsModel.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="DatabaseModels\SyncStateModel.cs" />
|
||||
<Compile Include="SyncStateDbContext.cs" />
|
||||
<Compile Include="TrackerDbContext.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.targets" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\Microsoft.Data.SqlClient.SNI.4.0.1\build\net46\Microsoft.Data.SqlClient.SNI.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Data.SqlClient.SNI.4.0.1\build\net46\Microsoft.Data.SqlClient.SNI.targets'))" />
|
||||
</Target>
|
||||
<Import Project="..\packages\Microsoft.Data.SqlClient.SNI.4.0.1\build\net46\Microsoft.Data.SqlClient.SNI.targets" Condition="Exists('..\packages\Microsoft.Data.SqlClient.SNI.4.0.1\build\net46\Microsoft.Data.SqlClient.SNI.targets')" />
|
||||
</Project>
|
||||
@@ -0,0 +1,46 @@
|
||||
using EgwProxy.Icoel.DataLayer.DatabaseModels;
|
||||
using NLog;
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Data.Entity;
|
||||
using System.Linq;
|
||||
using SqlProviderServices = System.Data.Entity.SqlServer.SqlProviderServices;
|
||||
|
||||
namespace EgwProxy.Icoel.DataLayer
|
||||
{
|
||||
/// <summary>
|
||||
/// Classe per accesso dati accettazione merce Agrimatica (via ICOEL)
|
||||
/// </summary>
|
||||
public partial class EntrataDbContext : DbContext
|
||||
{
|
||||
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
/// <summary>
|
||||
/// Costruttore implicito
|
||||
/// </summary>
|
||||
public EntrataDbContext() : base("name=EntrataFrontiera")
|
||||
{
|
||||
Log.Info("Init 01 EntrataDbContext - DONE");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Costruttore da connectionString
|
||||
/// </summary>
|
||||
/// <param name="connectionString"></param>
|
||||
public EntrataDbContext(string connectionString) : base(connectionString)
|
||||
{
|
||||
Log.Info("Init 02 EntrataDbContext - DONE");
|
||||
}
|
||||
/// <summary>
|
||||
/// DbSet record entrata merce
|
||||
/// </summary>
|
||||
public virtual DbSet<EntrataModel> DbSetEntrataMerce { get; set; }
|
||||
|
||||
protected override void OnModelCreating(DbModelBuilder modelBuilder)
|
||||
{
|
||||
modelBuilder.Entity<EntrataModel>()
|
||||
.Property(e => e.DATA_ENTRATA)
|
||||
.HasPrecision(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
using EgwProxy.Icoel.DataLayer.DatabaseModels;
|
||||
using NLog;
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Data.Entity;
|
||||
using System.Linq;
|
||||
using SqlProviderServices = System.Data.Entity.SqlServer.SqlProviderServices;
|
||||
|
||||
namespace EgwProxy.Icoel.DataLayer
|
||||
{
|
||||
/// <summary>
|
||||
/// Classe per accesso dati Tacker ICOEL
|
||||
/// </summary>
|
||||
public partial class ExportDbContext : DbContext
|
||||
{
|
||||
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
/// <summary>
|
||||
/// Costruttore implicito
|
||||
/// </summary>
|
||||
public ExportDbContext() : base("name=ExportIcoel")
|
||||
{
|
||||
Log.Info("Init 01 ExportDbContext - DONE");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Costruttore da connectionString
|
||||
/// </summary>
|
||||
/// <param name="connectionString"></param>
|
||||
public ExportDbContext(string connectionString) : base(connectionString)
|
||||
{
|
||||
Log.Info("Init 02 ExportDbContext - DONE");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// DbSet dati prodotti
|
||||
/// </summary>
|
||||
public virtual DbSet<ProductsTotalsModel> DbSetProductsTotals { get; set; }
|
||||
|
||||
protected override void OnModelCreating(DbModelBuilder modelBuilder)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace EgwProxy.Icoel.DataLayer
|
||||
{
|
||||
public class MainDbContext : DbContext
|
||||
{
|
||||
#region Private Fields
|
||||
|
||||
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
#endregion Private Fields
|
||||
|
||||
#region Public Constructors
|
||||
|
||||
// Il contesto è stato configurato per utilizzare una stringa di connessione 'BBMModel' dal file di configurazione
|
||||
// dell'applicazione (App.config o Web.config). Per impostazione predefinita, la stringa di connessione è destinata al
|
||||
// database 'BBMModel' nell'istanza di LocalDb.
|
||||
//
|
||||
// Per destinarla a un database o un provider di database differente, modificare la stringa di connessione 'BBMModel'
|
||||
// nel file di configurazione dell'applicazione.
|
||||
[Obsolete("This constructor should never be used directly, and is only needed to generate entityframework stuff. Connection string can be adapted as pleased.")]
|
||||
//public DatabaseContext() : base("BBMModel")
|
||||
public MainDbContext() : base("Data Source=SQLSTEAM;Initial Catalog=SHERPA.BBM;User ID=sa;Password=keyhammer;integrated security=False;MultipleActiveResultSets=True;App=EntityFramework")
|
||||
{
|
||||
}
|
||||
|
||||
public MainDbContext(string connectionString) : base(connectionString)
|
||||
{
|
||||
Log.Info($"init MainDbContext - start");
|
||||
|
||||
try
|
||||
{
|
||||
Database.CreateIfNotExists();
|
||||
Log.Error("CreateIfNotExists - DONE");
|
||||
|
||||
//Database.SetInitializer(new MigrateDatabaseToLatestVersion<StratonLocalizerDatabase, Migrations.Configuration>());
|
||||
Database.SetInitializer<MainDbContext>(null);
|
||||
Database.Initialize(false);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione in fase init MainDbContext, connectionString: {connectionString}{Environment.NewLine}{exc}");
|
||||
}
|
||||
Log.Error("init MainDbContext - DONE");
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
// Aggiungere DbSet per ogni tipo di entità che si desidera includere nel modello. Per ulteriori informazioni
|
||||
// sulla configurazione e sull'utilizzo di un modello Code, vedere http://go.microsoft.com/fwlink/?LinkId=390109.
|
||||
|
||||
#region Public Properties
|
||||
|
||||
public virtual DbSet<DatabaseModels.BasketsModel> DbSetBaskets { get; set; }
|
||||
public virtual DbSet<DatabaseModels.CompanyModel> DbSetCompanies { get; set; }
|
||||
public virtual DbSet<DatabaseModels.FluxCountersModel> DbSetCounters { get; set; }
|
||||
public virtual DbSet<DatabaseModels.CustomersModel> DbSetCustomers { get; set; }
|
||||
public virtual DbSet<DatabaseModels.DocsModel> DbSetDocs { get; set; }
|
||||
|
||||
public virtual DbSet<DatabaseModels.Fatt2DocModel> DbSetFatt2Doc { get; set; }
|
||||
|
||||
public virtual DbSet<DatabaseModels.ItemsModel> DbSetItems { get; set; }
|
||||
|
||||
public virtual DbSet<DatabaseModels.NegotiationsModel> DbSetNegotiations { get; set; }
|
||||
|
||||
public virtual DbSet<DatabaseModels.ResourcesModel> DbSetResources { get; set; }
|
||||
|
||||
#endregion Public Properties
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
protected override void OnModelCreating(DbModelBuilder modelBuilder)
|
||||
{
|
||||
base.OnModelCreating(modelBuilder);
|
||||
|
||||
// Precision attribute for decimals
|
||||
Precision.ConfigureModelBuilder(modelBuilder);
|
||||
}
|
||||
|
||||
#endregion Protected Methods
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// Le informazioni generali relative a un assembly sono controllate dal seguente
|
||||
// set di attributi. Modificare i valori di questi attributi per modificare le informazioni
|
||||
// associate a un assembly.
|
||||
[assembly: AssemblyTitle("EgwProxy.Icoel.DataLayer")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("EgwProxy.Icoel.DataLayer")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2022")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Se si imposta ComVisible su false, i tipi in questo assembly non saranno visibili
|
||||
// ai componenti COM. Se è necessario accedere a un tipo in questo assembly da
|
||||
// COM, impostare su true l'attributo ComVisible per tale tipo.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// Se il progetto viene esposto a COM, il GUID seguente verrà utilizzato come ID della libreria dei tipi
|
||||
[assembly: Guid("e36544cb-d699-48d8-9f81-c2758e7c7d19")]
|
||||
|
||||
// Le informazioni sulla versione di un assembly sono costituite dai seguenti quattro valori:
|
||||
//
|
||||
// Versione principale
|
||||
// Versione secondaria
|
||||
// Numero di build
|
||||
// Revisione
|
||||
//
|
||||
// È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build
|
||||
// usando l'asterisco '*' come illustrato di seguito:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
@@ -0,0 +1,48 @@
|
||||
using EgwProxy.Icoel.DataLayer.DatabaseModels;
|
||||
using NLog;
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Data.Entity;
|
||||
using System.Linq;
|
||||
|
||||
namespace EgwProxy.Icoel.DataLayer
|
||||
{
|
||||
/// <summary>
|
||||
/// Classe per accesso dati SyncState del DB
|
||||
/// </summary>
|
||||
public partial class SyncStateDbContext : DbContext
|
||||
{
|
||||
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
/// <summary>
|
||||
/// Costruttore implicito
|
||||
/// </summary>
|
||||
public SyncStateDbContext() : base("name=SyncState")
|
||||
{
|
||||
Log.Info("Init 01 SyncStateDbContext - DONE");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Costruttore da connectionString
|
||||
/// </summary>
|
||||
/// <param name="connectionString"></param>
|
||||
public SyncStateDbContext(string connectionString) : base(connectionString)
|
||||
{
|
||||
Log.Info("Init 02 SyncStateDbContext - DONE");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// DbSet dei dati stato sync DB esterni <--> locale
|
||||
/// </summary>
|
||||
public virtual DbSet<SyncStateModel> DbSetSyncState { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// DbSet CurrData
|
||||
/// </summary>
|
||||
public virtual DbSet<CurrDataModel> DbSetCurrData { get; set; }
|
||||
|
||||
protected override void OnModelCreating(DbModelBuilder modelBuilder)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
using EgwProxy.Icoel.DataLayer.DatabaseModels;
|
||||
using NLog;
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Data.Entity;
|
||||
using System.Linq;
|
||||
using SqlProviderServices = System.Data.Entity.SqlServer.SqlProviderServices;
|
||||
|
||||
namespace EgwProxy.Icoel.DataLayer
|
||||
{
|
||||
/// <summary>
|
||||
/// Classe per accesso dati Tacker ICOEL
|
||||
/// </summary>
|
||||
public partial class TrackerDbContext : DbContext
|
||||
{
|
||||
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
/// <summary>
|
||||
/// Costruttore implicito
|
||||
/// </summary>
|
||||
public TrackerDbContext() : base("name=TrackerLotti")
|
||||
{
|
||||
Log.Info("Init 01 TrackerDbContext - DONE");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Costruttore da connectionString
|
||||
/// </summary>
|
||||
/// <param name="connectionString"></param>
|
||||
public TrackerDbContext(string connectionString) : base(connectionString)
|
||||
{
|
||||
Log.Info("Init 02 TrackerDbContext - DONE");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// DbSet dai dati conferimento <--> pack di uscita
|
||||
/// </summary>
|
||||
public virtual DbSet<DettConferimentoModel> DbSetConferimento { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// DbSet dai dati conferimento <--> confezioni
|
||||
/// </summary>
|
||||
public virtual DbSet<DettConfezioniModel> DbSetConfezioni { get; set; }
|
||||
|
||||
protected override void OnModelCreating(DbModelBuilder modelBuilder)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Azure.Core" version="1.6.0" targetFramework="net462" />
|
||||
<package id="Azure.Identity" version="1.3.0" targetFramework="net462" />
|
||||
<package id="EntityFramework" version="6.4.4" targetFramework="net462" />
|
||||
<package id="Microsoft.Bcl.AsyncInterfaces" version="1.0.0" targetFramework="net462" />
|
||||
<package id="Microsoft.Data.SqlClient" version="4.1.1" targetFramework="net462" />
|
||||
<package id="Microsoft.Data.SqlClient.SNI" version="4.0.1" targetFramework="net462" />
|
||||
<package id="Microsoft.Identity.Client" version="4.22.0" targetFramework="net462" />
|
||||
<package id="Microsoft.Identity.Client.Extensions.Msal" version="2.16.5" targetFramework="net462" />
|
||||
<package id="Microsoft.IdentityModel.JsonWebTokens" version="6.8.0" targetFramework="net462" />
|
||||
<package id="Microsoft.IdentityModel.Logging" version="6.8.0" targetFramework="net462" />
|
||||
<package id="Microsoft.IdentityModel.Protocols" version="6.8.0" targetFramework="net462" />
|
||||
<package id="Microsoft.IdentityModel.Protocols.OpenIdConnect" version="6.8.0" targetFramework="net462" />
|
||||
<package id="Microsoft.IdentityModel.Tokens" version="6.8.0" targetFramework="net462" />
|
||||
<package id="NLog" version="4.7.9" targetFramework="net462" />
|
||||
<package id="System.Buffers" version="4.5.1" targetFramework="net462" />
|
||||
<package id="System.Configuration.ConfigurationManager" version="5.0.0" targetFramework="net462" />
|
||||
<package id="System.Diagnostics.DiagnosticSource" version="4.6.0" targetFramework="net462" />
|
||||
<package id="System.IdentityModel.Tokens.Jwt" version="6.8.0" targetFramework="net462" />
|
||||
<package id="System.IO" version="4.3.0" targetFramework="net462" />
|
||||
<package id="System.IO.Compression" version="4.1.0" targetFramework="net462" />
|
||||
<package id="System.Memory" version="4.5.4" targetFramework="net462" />
|
||||
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net462" />
|
||||
<package id="System.Runtime.CompilerServices.Unsafe" version="4.6.0" targetFramework="net462" />
|
||||
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net462" />
|
||||
<package id="System.Security.AccessControl" version="5.0.0" targetFramework="net462" />
|
||||
<package id="System.Security.Cryptography.Algorithms" version="4.3.1" targetFramework="net462" />
|
||||
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net462" />
|
||||
<package id="System.Security.Cryptography.ProtectedData" version="4.5.0" targetFramework="net462" />
|
||||
<package id="System.Security.Permissions" version="5.0.0" targetFramework="net462" />
|
||||
<package id="System.Security.Principal.Windows" version="5.0.0" targetFramework="net462" />
|
||||
<package id="System.Text.Encodings.Web" version="4.7.2" targetFramework="net462" />
|
||||
<package id="System.Text.Json" version="4.6.0" targetFramework="net462" />
|
||||
<package id="System.Threading.Tasks.Extensions" version="4.5.2" targetFramework="net462" />
|
||||
<package id="System.ValueTuple" version="4.5.0" targetFramework="net462" />
|
||||
</packages>
|
||||
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<package >
|
||||
<metadata>
|
||||
<id>EgwProxy.Icoel</id>
|
||||
<version>#version#</version>
|
||||
<title>EgwProxy.Icoel</title>
|
||||
<authors>Samuele E. Locatelli, EgalWare</authors>
|
||||
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
||||
<license type="expression">MIT</license>
|
||||
<description>Libreria per comunicazione con SOAP API del sizer di Icoel (IOB-WIN-NEXT) - beta/unstable</description>
|
||||
<releaseNotes>#releaseNotes#</releaseNotes>
|
||||
<copyright>#copyright#</copyright>
|
||||
<tags>EgwProxy.Icoel EgwProxy Icoel</tags>
|
||||
<dependencies>
|
||||
<dependency id="NLog" version="4.7.9" />
|
||||
<dependency id="EntityFramework" version="6.4.4" />
|
||||
</dependencies>
|
||||
</metadata>
|
||||
<files>
|
||||
<file src="EgwProxy.Icoel\bin\Debug\EgwProxy*.dll" target="lib" />
|
||||
<file src="EgwProxy.Icoel\bin\Debug\EgwProxy*.config" target="lib" />
|
||||
<file src="EgwProxy.Icoel\bin\Debug\EgwProxy*.pdb" target="lib" />
|
||||
</files>
|
||||
</package>
|
||||
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<package >
|
||||
<metadata>
|
||||
<id>EgwProxy.Icoel</id>
|
||||
<version>#version#</version>
|
||||
<title>EgwProxy.Icoel</title>
|
||||
<authors>Samuele E. Locatelli, EgalWare</authors>
|
||||
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
||||
<license type="expression">MIT</license>
|
||||
<description>Libreria per comunicazione con SOAP API del sizer di Icoel (IOB-WIN-NEXT)</description>
|
||||
<releaseNotes>#releaseNotes#</releaseNotes>
|
||||
<copyright>#copyright#</copyright>
|
||||
<tags>EgwProxy.Icoel EgwProxy Icoel</tags>
|
||||
<dependencies>
|
||||
<dependency id="NLog" version="4.7.9" />
|
||||
<dependency id="EntityFramework" version="6.4.4" />
|
||||
</dependencies>
|
||||
</metadata>
|
||||
<files>
|
||||
<file src="EgwProxy.Icoel\bin\Release\EgwProxy*.dll" target="lib" />
|
||||
<file src="EgwProxy.Icoel\bin\Release\EgwProxy*.config" target="lib" />
|
||||
</files>
|
||||
</package>
|
||||
@@ -0,0 +1,77 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<configSections>
|
||||
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
|
||||
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
||||
</configSections>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
|
||||
</startup>
|
||||
<entityFramework>
|
||||
<providers>
|
||||
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
|
||||
</providers>
|
||||
</entityFramework>
|
||||
<appSettings>
|
||||
<add key="IndirizzoIpSizer" value="192.168.137.50" />
|
||||
<add key="SizerTcpPort" value="8001" />
|
||||
<add key="EntrataFrontiera" value="data source=192.168.137.10\sqlexpress;initial catalog=frontiera;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=IOB-WIN-NEXT" />
|
||||
<add key="ExportIcoel" value="data source=192.168.137.10\sqlexpress;initial catalog=IcoelExport;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=IOB-WIN-NEXT" />
|
||||
<add key="TrackerLotti" value="data source=192.168.250.250\sqlexpress;initial catalog=TrackerLotti3;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=IOB-WIN-NEXT" />
|
||||
<add key="SyncState" value="data source=localhost\sqlexpress;initial catalog=MoonPro_ISF;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=IOB-WIN-NEXT" />
|
||||
</appSettings>
|
||||
<system.serviceModel>
|
||||
<bindings>
|
||||
<netNamedPipeBinding>
|
||||
<binding name="NetNamedPipeBinding_ISizerService">
|
||||
<security mode="None" />
|
||||
</binding>
|
||||
</netNamedPipeBinding>
|
||||
<wsHttpBinding>
|
||||
<binding name="WSHttpBinding_ISizerService" maxReceivedMessageSize="2147483647">
|
||||
<security mode="None" />
|
||||
</binding>
|
||||
</wsHttpBinding>
|
||||
</bindings>
|
||||
<client>
|
||||
<endpoint address="http://localhost:8001/SizerService/" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ISizerService" contract="SizerService.ISizerService" name="WSHttpBinding_ISizerService" />
|
||||
<endpoint address="net.pipe://localhost/Compac/8001/SizerService" binding="netNamedPipeBinding" bindingConfiguration="NetNamedPipeBinding_ISizerService" contract="SizerService.ISizerService" name="NetNamedPipeBinding_ISizerService" />
|
||||
</client>
|
||||
</system.serviceModel>
|
||||
<!--
|
||||
<connectionStrings>
|
||||
<add name="EntrataFrontiera" connectionString="data source=192.168.137.10\sqlexpress;initial catalog=frontiera;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=IOB-WIN-NEXT" providerName="System.Data.SqlClient" />
|
||||
<add name="ExportIcoel" connectionString="data source=192.168.137.10\sqlexpress;initial catalog=IcoelExport;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=IOB-WIN-NEXT" providerName="System.Data.SqlClient" />
|
||||
<add name="TrackerLotti" connectionString="data source=192.168.250.250\sqlexpress;initial catalog=TrackerLotti3;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=IOB-WIN-NEXT" providerName="System.Data.SqlClient" />
|
||||
<add name="SyncState" connectionString="data source=localhost\sqlexpress;initial catalog=MoonPro_ISF;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=IOB-WIN-NEXT" providerName="System.Data.SqlClient" />
|
||||
</connectionStrings>
|
||||
-->
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Text.Encodings.Web" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.5.1" newVersion="4.0.5.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
@@ -0,0 +1,77 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{A655A6AC-5997-46F9-9752-8C621B80516C}</ProjectGuid>
|
||||
<OutputType>Exe</OutputType>
|
||||
<RootNamespace>EgwProxy.Icoel.Test</RootNamespace>
|
||||
<AssemblyName>EgwProxy.Icoel.Test</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.IO.Compression, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Compression.4.1.0\lib\net46\System.IO.Compression.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
<None Include="batch.ini">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="conf.ini">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="INI\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\EgwProxy.Icoel.DataLayer\EgwProxy.Icoel.DataLayer.csproj">
|
||||
<Project>{e36544cb-d699-48d8-9f81-c2758e7c7d19}</Project>
|
||||
<Name>EgwProxy.Icoel.DataLayer</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\EgwProxy.Icoel\EgwProxy.Icoel.csproj">
|
||||
<Project>{c45f5e6e-866b-4a34-a598-29aab2d178ad}</Project>
|
||||
<Name>EgwProxy.Icoel</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
@@ -0,0 +1,62 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace EgwProxy.Icoel.INI
|
||||
{
|
||||
class BatchDetails
|
||||
{
|
||||
private const string NameFile = "batch.ini";
|
||||
private readonly IniFile _sett;
|
||||
|
||||
|
||||
public BatchDetails()
|
||||
{
|
||||
_sett = new IniFile();
|
||||
}
|
||||
public string GrowerCode
|
||||
{
|
||||
get { return _sett.GetKeyValue("Batch", "GrowerCode"); }
|
||||
set { _sett.SetKeyValue("Batch", "GrowerCode", value); }
|
||||
}
|
||||
|
||||
public string GrowerName
|
||||
{
|
||||
get { return _sett.GetKeyValue("Batch", "GrowerName"); }
|
||||
set { _sett.SetKeyValue("Batch", "GrowerName", value); }
|
||||
}
|
||||
public string Comment1
|
||||
{
|
||||
get { return _sett.GetKeyValue("Batch", "Comment1"); }
|
||||
set { _sett.SetKeyValue("Batch", "Comment1", value); }
|
||||
}
|
||||
public string Comment2
|
||||
{
|
||||
get { return _sett.GetKeyValue("Batch", "Comment2"); }
|
||||
set { _sett.SetKeyValue("Batch", "Comment2", value); }
|
||||
}
|
||||
public string Comment3
|
||||
{
|
||||
get { return _sett.GetKeyValue("Batch", "Comment3"); }
|
||||
set { _sett.SetKeyValue("Batch", "Comment3", value); }
|
||||
}
|
||||
|
||||
public void Load()
|
||||
{
|
||||
if (!File.Exists(NameFile))
|
||||
{
|
||||
var fs = File.Create(NameFile);
|
||||
fs.Close();
|
||||
}
|
||||
_sett.Load(NameFile, false);
|
||||
}
|
||||
|
||||
public void Save()
|
||||
{
|
||||
_sett.Save(NameFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,479 @@
|
||||
/*
|
||||
Date: 08\23\2010 - Ludvik Jerabek - Initial Release
|
||||
Version: 1.0
|
||||
Comment: Allow INI manipulation in .NET
|
||||
License: CPOL
|
||||
|
||||
Revisions:
|
||||
|
||||
08\23\2010 - Ludvik Jerabek - Initial Release
|
||||
11\12\2010 - Ludvik Jerabek - Fixed section regex matching on key values with brackets
|
||||
06\20\2015 - Ludvik Jerabek - Fixed key parsing regex to account for keys with spaces in names
|
||||
|
||||
|
||||
**DISCLAIMER**
|
||||
THIS MATERIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
|
||||
EITHER EXPRESS OR IMPLIED, INCLUDING, BUT Not LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
||||
PURPOSE, OR NON-INFRINGEMENT. SOME JURISDICTIONS DO NOT ALLOW THE
|
||||
EXCLUSION OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSION MAY NOT
|
||||
APPLY TO YOU. IN NO EVENT WILL I BE LIABLE TO ANY PARTY FOR ANY
|
||||
DIRECT, INDIRECT, SPECIAL OR OTHER CONSEQUENTIAL DAMAGES FOR ANY
|
||||
USE OF THIS MATERIAL INCLUDING, WITHOUT LIMITATION, ANY LOST
|
||||
PROFITS, BUSINESS INTERRUPTION, LOSS OF PROGRAMS OR OTHER DATA ON
|
||||
YOUR INFORMATION HANDLING SYSTEM OR OTHERWISE, EVEN If WE ARE
|
||||
EXPRESSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
using System.IO;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Collections;
|
||||
using System.Diagnostics;
|
||||
using System;
|
||||
|
||||
// IniFile class used to read and write ini files by loading the file into memory
|
||||
public class IniFile
|
||||
{
|
||||
// List of IniSection objects keeps track of all the sections in the INI file
|
||||
private Hashtable m_sections;
|
||||
|
||||
// Public constructor
|
||||
public IniFile()
|
||||
{
|
||||
m_sections = new Hashtable(StringComparer.InvariantCultureIgnoreCase);
|
||||
}
|
||||
|
||||
// Loads the Reads the data in the ini file into the IniFile object
|
||||
public void Load(string sFileName )
|
||||
{
|
||||
Load(sFileName, false);
|
||||
}
|
||||
|
||||
// Loads the Reads the data in the ini file into the IniFile object
|
||||
public void Load(string sFileName, bool bMerge )
|
||||
{
|
||||
if (!bMerge)
|
||||
{
|
||||
RemoveAllSections();
|
||||
}
|
||||
// Clear the object...
|
||||
IniSection tempsection = null;
|
||||
StreamReader oReader = new StreamReader(sFileName);
|
||||
Regex regexcomment = new Regex("^([\\s]*#.*)", (RegexOptions.Singleline | RegexOptions.IgnoreCase));
|
||||
Regex regexsection = new Regex("^[\\s]*\\[[\\s]*([^\\[\\s].*[^\\s\\]])[\\s]*\\][\\s]*$", (RegexOptions.Singleline | RegexOptions.IgnoreCase));
|
||||
Regex regexkey = new Regex("^\\s*([^=]*[^\\s=])\\s*=(.*)", (RegexOptions.Singleline | RegexOptions.IgnoreCase));
|
||||
|
||||
while (!oReader.EndOfStream)
|
||||
{
|
||||
string line = oReader.ReadLine();
|
||||
if (line != string.Empty)
|
||||
{
|
||||
Match m = null;
|
||||
if (regexcomment.Match(line).Success)
|
||||
{
|
||||
m = regexcomment.Match(line);
|
||||
Trace.WriteLine(string.Format("Skipping Comment: {0}", m.Groups[0].Value));
|
||||
}
|
||||
else if (regexsection.Match(line).Success)
|
||||
{
|
||||
m = regexsection.Match(line);
|
||||
Trace.WriteLine(string.Format("Adding section [{0}]", m.Groups[1].Value));
|
||||
tempsection = AddSection(m.Groups[1].Value);
|
||||
}
|
||||
else if ( regexkey.Match(line).Success && tempsection != null)
|
||||
{
|
||||
m = regexkey.Match(line);
|
||||
Trace.WriteLine(string.Format("Adding Key [{0}]=[{1}]", m.Groups[1].Value, m.Groups[2].Value));
|
||||
tempsection.AddKey(m.Groups[1].Value).Value = m.Groups[2].Value;
|
||||
}
|
||||
else if ( tempsection != null )
|
||||
{
|
||||
// Handle Key without Value
|
||||
Trace.WriteLine(string.Format("Adding Key [{0}]", line));
|
||||
tempsection.AddKey(line);
|
||||
}
|
||||
else
|
||||
{
|
||||
// This should not occur unless the tempsection is not created yet...
|
||||
Trace.WriteLine(string.Format("Skipping unknown type of data: {0}", line));
|
||||
}
|
||||
}
|
||||
}
|
||||
oReader.Close();
|
||||
}
|
||||
|
||||
// Used to save the data back to the file or your choice
|
||||
public void Save(string sFileName)
|
||||
{
|
||||
StreamWriter oWriter = new StreamWriter(sFileName, false);
|
||||
foreach (IniSection s in Sections)
|
||||
{
|
||||
Trace.WriteLine(string.Format("Writing Section: [{0}]", s.Name));
|
||||
oWriter.WriteLine(string.Format("[{0}]", s.Name));
|
||||
foreach (IniSection.IniKey k in s.Keys)
|
||||
{
|
||||
if (k.Value != string.Empty)
|
||||
{
|
||||
Trace.WriteLine(string.Format("Writing Key: {0}={1}", k.Name, k.Value));
|
||||
oWriter.WriteLine(string.Format("{0}={1}", k.Name, k.Value));
|
||||
}
|
||||
else
|
||||
{
|
||||
Trace.WriteLine(string.Format("Writing Key: {0}", k.Name));
|
||||
oWriter.WriteLine(string.Format("{0}", k.Name));
|
||||
}
|
||||
}
|
||||
}
|
||||
oWriter.Close();
|
||||
}
|
||||
|
||||
// Gets all the sections names
|
||||
public System.Collections.ICollection Sections
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_sections.Values;
|
||||
}
|
||||
}
|
||||
|
||||
// Adds a section to the IniFile object, returns a IniSection object to the new or existing object
|
||||
public IniSection AddSection(string sSection )
|
||||
{
|
||||
IniSection s = null;
|
||||
sSection = sSection.Trim();
|
||||
// Trim spaces
|
||||
if (m_sections.ContainsKey(sSection))
|
||||
{
|
||||
s = (IniSection)m_sections[sSection];
|
||||
}
|
||||
else
|
||||
{
|
||||
s = new IniSection(this, sSection);
|
||||
m_sections[sSection] = s;
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
// Removes a section by its name sSection, returns trus on success
|
||||
public bool RemoveSection(string sSection)
|
||||
{
|
||||
sSection = sSection.Trim();
|
||||
return RemoveSection(GetSection(sSection));
|
||||
}
|
||||
|
||||
// Removes section by object, returns trus on success
|
||||
public bool RemoveSection(IniSection Section)
|
||||
{
|
||||
if (Section != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
m_sections.Remove(Section.Name);
|
||||
return true;
|
||||
}
|
||||
catch( Exception ex )
|
||||
{
|
||||
Trace.WriteLine(ex.Message);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// Removes all existing sections, returns trus on success
|
||||
public bool RemoveAllSections()
|
||||
{
|
||||
m_sections.Clear();
|
||||
return (m_sections.Count == 0);
|
||||
}
|
||||
|
||||
// Returns an IniSection to the section by name, NULL if it was not found
|
||||
public IniSection GetSection(string sSection)
|
||||
{
|
||||
sSection = sSection.Trim();
|
||||
// Trim spaces
|
||||
if (m_sections.ContainsKey(sSection))
|
||||
{
|
||||
return (IniSection)m_sections[sSection];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// Returns a KeyValue in a certain section
|
||||
public string GetKeyValue(string sSection, string sKey)
|
||||
{
|
||||
IniSection s = GetSection(sSection);
|
||||
if (s != null)
|
||||
{
|
||||
IniSection.IniKey k = s.GetKey(sKey);
|
||||
if (k != null)
|
||||
{
|
||||
return k.Value;
|
||||
}
|
||||
}
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
// Sets a KeyValuePair in a certain section
|
||||
public bool SetKeyValue(string sSection, string sKey, string sValue)
|
||||
{
|
||||
IniSection s = AddSection(sSection);
|
||||
if (s != null)
|
||||
{
|
||||
IniSection.IniKey k = s.AddKey(sKey);
|
||||
if (k != null)
|
||||
{
|
||||
k.Value = sValue;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// Renames an existing section returns true on success, false if the section didn't exist or there was another section with the same sNewSection
|
||||
public bool RenameSection(string sSection, string sNewSection)
|
||||
{
|
||||
// Note string trims are done in lower calls.
|
||||
bool bRval = false;
|
||||
IniSection s = GetSection(sSection);
|
||||
if (s != null)
|
||||
{
|
||||
bRval = s.SetName(sNewSection);
|
||||
}
|
||||
return bRval;
|
||||
}
|
||||
|
||||
// Renames an existing key returns true on success, false if the key didn't exist or there was another section with the same sNewKey
|
||||
public bool RenameKey(string sSection, string sKey, string sNewKey)
|
||||
{
|
||||
// Note string trims are done in lower calls.
|
||||
IniSection s = GetSection(sSection);
|
||||
if (s != null)
|
||||
{
|
||||
IniSection.IniKey k = s.GetKey(sKey);
|
||||
if (k != null)
|
||||
{
|
||||
return k.SetName(sNewKey);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// IniSection class
|
||||
public class IniSection
|
||||
{
|
||||
// IniFile IniFile object instance
|
||||
private IniFile m_pIniFile;
|
||||
// Name of the section
|
||||
private string m_sSection;
|
||||
// List of IniKeys in the section
|
||||
private Hashtable m_keys;
|
||||
|
||||
// Constuctor so objects are internally managed
|
||||
protected internal IniSection(IniFile parent, string sSection)
|
||||
{
|
||||
m_pIniFile = parent;
|
||||
m_sSection = sSection;
|
||||
m_keys = new Hashtable(StringComparer.InvariantCultureIgnoreCase);
|
||||
}
|
||||
|
||||
// Returns and hashtable of keys associated with the section
|
||||
public System.Collections.ICollection Keys
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_keys.Values;
|
||||
}
|
||||
}
|
||||
|
||||
// Returns the section name
|
||||
public string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_sSection;
|
||||
}
|
||||
}
|
||||
|
||||
// Adds a key to the IniSection object, returns a IniKey object to the new or existing object
|
||||
public IniKey AddKey(string sKey)
|
||||
{
|
||||
sKey = sKey.Trim();
|
||||
IniSection.IniKey k = null;
|
||||
if (sKey.Length != 0)
|
||||
{
|
||||
if (m_keys.ContainsKey(sKey))
|
||||
{
|
||||
k = (IniKey)m_keys[sKey];
|
||||
}
|
||||
else
|
||||
{
|
||||
k = new IniSection.IniKey(this, sKey);
|
||||
m_keys[sKey] = k;
|
||||
}
|
||||
}
|
||||
return k;
|
||||
}
|
||||
|
||||
// Removes a single key by string
|
||||
public bool RemoveKey(string sKey)
|
||||
{
|
||||
return RemoveKey(GetKey(sKey));
|
||||
}
|
||||
|
||||
// Removes a single key by IniKey object
|
||||
public bool RemoveKey(IniKey Key)
|
||||
{
|
||||
if (Key != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
m_keys.Remove(Key.Name);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Trace.WriteLine(ex.Message);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// Removes all the keys in the section
|
||||
public bool RemoveAllKeys()
|
||||
{
|
||||
m_keys.Clear();
|
||||
return (m_keys.Count == 0);
|
||||
}
|
||||
|
||||
// Returns a IniKey object to the key by name, NULL if it was not found
|
||||
public IniKey GetKey(string sKey)
|
||||
{
|
||||
sKey = sKey.Trim();
|
||||
if (m_keys.ContainsKey(sKey))
|
||||
{
|
||||
return (IniKey)m_keys[sKey];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// Sets the section name, returns true on success, fails if the section
|
||||
// name sSection already exists
|
||||
public bool SetName(string sSection)
|
||||
{
|
||||
sSection = sSection.Trim();
|
||||
if (sSection.Length != 0)
|
||||
{
|
||||
// Get existing section if it even exists...
|
||||
IniSection s = m_pIniFile.GetSection(sSection);
|
||||
if (s != this && s != null) return false;
|
||||
try
|
||||
{
|
||||
// Remove the current section
|
||||
m_pIniFile.m_sections.Remove(m_sSection);
|
||||
// Set the new section name to this object
|
||||
m_pIniFile.m_sections[sSection] = this;
|
||||
// Set the new section name
|
||||
m_sSection = sSection;
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Trace.WriteLine(ex.Message);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// Returns the section name
|
||||
public string GetName()
|
||||
{
|
||||
return m_sSection;
|
||||
}
|
||||
|
||||
// IniKey class
|
||||
public class IniKey
|
||||
{
|
||||
// Name of the Key
|
||||
private string m_sKey;
|
||||
// Value associated
|
||||
private string m_sValue;
|
||||
// Pointer to the parent CIniSection
|
||||
private IniSection m_section;
|
||||
|
||||
// Constuctor so objects are internally managed
|
||||
protected internal IniKey(IniSection parent, string sKey)
|
||||
{
|
||||
m_section = parent;
|
||||
m_sKey = sKey;
|
||||
}
|
||||
|
||||
// Returns the name of the Key
|
||||
public string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_sKey;
|
||||
}
|
||||
}
|
||||
|
||||
// Sets or Gets the Value of the key
|
||||
public string Value
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_sValue;
|
||||
}
|
||||
set
|
||||
{
|
||||
m_sValue = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Sets the Value of the key
|
||||
public void SetValue(string sValue)
|
||||
{
|
||||
m_sValue = sValue;
|
||||
}
|
||||
// Returns the Value of the Key
|
||||
public string GetValue()
|
||||
{
|
||||
return m_sValue;
|
||||
}
|
||||
|
||||
// Sets the key name
|
||||
// Returns true on success, fails if the section name sKey already exists
|
||||
public bool SetName(string sKey)
|
||||
{
|
||||
sKey = sKey.Trim();
|
||||
if (sKey.Length != 0)
|
||||
{
|
||||
IniKey k = m_section.GetKey(sKey);
|
||||
if (k != this && k != null) return false;
|
||||
try
|
||||
{
|
||||
// Remove the current key
|
||||
m_section.m_keys.Remove(m_sKey);
|
||||
// Set the new key name to this object
|
||||
m_section.m_keys[sKey] = this;
|
||||
// Set the new key name
|
||||
m_sKey = sKey;
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Trace.WriteLine(ex.Message);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// Returns the name of the Key
|
||||
public string GetName()
|
||||
{
|
||||
return m_sKey;
|
||||
}
|
||||
} // End of IniKey class
|
||||
} // End of IniSection class
|
||||
} // End of IniFile class
|
||||
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
using System.IO;
|
||||
|
||||
namespace EgwProxy.Icoel.Test.INI
|
||||
{
|
||||
public class Settaggi
|
||||
{
|
||||
#region Public Constructors
|
||||
|
||||
public Settaggi()
|
||||
{
|
||||
_sett = new IniFile();
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Public Properties
|
||||
|
||||
public string IndirizzoIpSizer
|
||||
{
|
||||
get { return _sett.GetKeyValue("Sizer", "IndirizzoIp"); }
|
||||
set { _sett.SetKeyValue("Sizer", "IndirizzoIp", value); }
|
||||
}
|
||||
|
||||
public string IndirizzoIpSizerClient
|
||||
{
|
||||
get { return _sett.GetKeyValue("Sizer", "IndirizzoIpTracciabilità"); }
|
||||
set { _sett.SetKeyValue("Sizer", "IndirizzoIpTracciabilità", value); }
|
||||
}
|
||||
|
||||
public string SizerTcpPort
|
||||
{
|
||||
get { return _sett.GetKeyValue("Sizer", "TcpPort"); }
|
||||
set { _sett.SetKeyValue("Sizer", "TcpPort", value); }
|
||||
}
|
||||
|
||||
public string TcpPortSizerClient
|
||||
{
|
||||
get { return _sett.GetKeyValue("Sizer", "TcpPortTracciabilità"); }
|
||||
set { _sett.SetKeyValue("Sizer", "TcpPortTracciabilità", value); }
|
||||
}
|
||||
|
||||
#endregion Public Properties
|
||||
|
||||
#region Public Methods
|
||||
|
||||
public void Load()
|
||||
{
|
||||
if (!File.Exists(NameFile))
|
||||
{
|
||||
var fs = File.Create(NameFile);
|
||||
fs.Close();
|
||||
}
|
||||
_sett.Load(NameFile, false);
|
||||
}
|
||||
|
||||
public void Save()
|
||||
{
|
||||
_sett.Save(NameFile);
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Private Fields
|
||||
|
||||
private const string NameFile = "conf.ini";
|
||||
private readonly IniFile _sett;
|
||||
|
||||
#endregion Private Fields
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,385 @@
|
||||
using EgwProxy.Icoel.DataLayer.DatabaseModels;
|
||||
using EgwProxy.Icoel.SizerService;
|
||||
//using EgwProxy.Icoel.Test.INI;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace EgwProxy.Icoel.Test
|
||||
{
|
||||
internal class Program
|
||||
{
|
||||
#region Internal Methods
|
||||
|
||||
/// <summary>
|
||||
/// Mostra tutte le metriche di performance ricevute
|
||||
/// </summary>
|
||||
/// <param name="perfMeter"></param>
|
||||
internal static void DisplayPerfMeter(Dictionary<string, double> perfMeter)
|
||||
{
|
||||
// mostra tutti i parametri rilevati...
|
||||
foreach (var item in perfMeter)
|
||||
{
|
||||
Console.WriteLine($"{item.Key} | {item.Value:N2}");
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Mostra tutte le metriche di performance ricevute
|
||||
/// </summary>
|
||||
/// <param name="currData"></param>
|
||||
internal static void DisplayCurrBatch(Dictionary<string, string> currData)
|
||||
{
|
||||
// mostra tutti i parametri rilevati...
|
||||
foreach (var item in currData)
|
||||
{
|
||||
Console.WriteLine($"{item.Key} | {item.Value}");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Generazione di una list di info sui dati variety
|
||||
/// </summary>
|
||||
/// <param name="varietiesList"></param>
|
||||
/// <returns></returns>
|
||||
internal static void DisplayVariety(Variety[] varietyData)
|
||||
{
|
||||
foreach (var item in varietyData)
|
||||
{
|
||||
Console.WriteLine("--------------------------");
|
||||
Console.WriteLine($"Variety Id: {item.Id} | Variety Name: {item.Name}");
|
||||
Console.WriteLine(" - Qualities");
|
||||
foreach (var quality in item.Qualities)
|
||||
{
|
||||
Console.WriteLine($" Name: {quality.Name}");
|
||||
}
|
||||
Console.WriteLine(" - Grades");
|
||||
foreach (var grade in item.Grades)
|
||||
{
|
||||
Console.WriteLine($" Name: {grade.Name}");
|
||||
}
|
||||
Console.WriteLine(" - Sizes");
|
||||
foreach (var size in item.SizingMaps)
|
||||
{
|
||||
Console.WriteLine($" Name: {size.Name}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generazione di una list di info sui dati variety
|
||||
/// </summary>
|
||||
/// <param name="varietiesList"></param>
|
||||
/// <returns></returns>
|
||||
internal static void DisplayVarietyLayout(Dictionary<Variety, Layout[]> varietyData)
|
||||
{
|
||||
foreach (var item in varietyData)
|
||||
{
|
||||
Console.WriteLine("--------------------------");
|
||||
Console.WriteLine($"Variety Id: {item.Key.Id} | Variety Name: {item.Key.Name}");
|
||||
Console.WriteLine(" - Qualities");
|
||||
foreach (var quality in item.Key.Qualities)
|
||||
{
|
||||
Console.WriteLine($" Name: {quality.Name}");
|
||||
}
|
||||
Console.WriteLine(" - Grades");
|
||||
foreach (var grade in item.Key.Grades)
|
||||
{
|
||||
Console.WriteLine($" Name: {grade.Name}");
|
||||
}
|
||||
Console.WriteLine(" - Sizes");
|
||||
foreach (var size in item.Key.SizingMaps)
|
||||
{
|
||||
Console.WriteLine($" Name: {size.Name}");
|
||||
}
|
||||
Console.WriteLine(" - LAYOUTS");
|
||||
foreach (var layout in item.Value)
|
||||
{
|
||||
Console.WriteLine($" Id: {layout.Id} | Name: {layout.Name}");
|
||||
Console.WriteLine(" - Products");
|
||||
foreach (var product in layout.Products)
|
||||
{
|
||||
Console.WriteLine($" Id: {product.Id} | Name: {product.Name} | DisplayName: {product.DisplayName} | Pack: {product.Pack}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Mostra elenco variety e quanod utente seleziona restituisce varGuid
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
internal static Guid selLayout(Connector IcoelSizer, Guid varGuid)
|
||||
{
|
||||
int idxLay = -1;
|
||||
Guid layGuid = Guid.NewGuid();
|
||||
|
||||
// recupero layout della varietà
|
||||
var layoutList = IcoelSizer.GetLayoutForVariety(varGuid);
|
||||
|
||||
Console.WriteLine("--------------------");
|
||||
Console.WriteLine("Layout disponibili:");
|
||||
Console.WriteLine("--------------------");
|
||||
DisplayLayout(layoutList);
|
||||
// recupero layout x varietà
|
||||
while (idxLay <= 0)
|
||||
{
|
||||
Console.WriteLine("");
|
||||
Console.WriteLine("indicare layout");
|
||||
var rawData = Console.ReadLine();
|
||||
if (!string.IsNullOrEmpty(rawData))
|
||||
{
|
||||
int.TryParse(rawData, out idxLay);
|
||||
// verifico sia valida..
|
||||
if (layoutList.Length >= idxLay && idxLay > 0)
|
||||
{
|
||||
layGuid = layoutList[idxLay - 1].Id;
|
||||
}
|
||||
else
|
||||
{
|
||||
idxLay = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return layGuid;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Mostra elenco variety e quanod utente seleziona restituisce varGuid
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
internal static Guid selVariety(Connector IcoelSizer)
|
||||
{
|
||||
int idxVar = -1;
|
||||
Guid varGuid = Guid.NewGuid();
|
||||
var varList = IcoelSizer.GetVarietyList(true);
|
||||
|
||||
Console.WriteLine("--------------------");
|
||||
Console.WriteLine("Varietà disponibili:");
|
||||
Console.WriteLine("--------------------");
|
||||
DisplayVariety(varList);
|
||||
// chiedo di selezionare
|
||||
while (idxVar <= 0)
|
||||
{
|
||||
Console.WriteLine("");
|
||||
Console.WriteLine("indicare varietà richiesta (#)");
|
||||
var rawData = Console.ReadLine();
|
||||
if (!string.IsNullOrEmpty(rawData))
|
||||
{
|
||||
int.TryParse(rawData, out idxVar);
|
||||
// verifico sia valida..
|
||||
if (varList.Length >= idxVar && idxVar > 0)
|
||||
{
|
||||
varGuid = varList[idxVar - 1].Id;
|
||||
}
|
||||
else
|
||||
{
|
||||
idxVar = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return varGuid;
|
||||
}
|
||||
|
||||
#endregion Internal Methods
|
||||
|
||||
#region Private Methods
|
||||
|
||||
/// <summary>
|
||||
/// Generazione di una list di layout dato elenco
|
||||
/// </summary>
|
||||
/// <param name="layoutList"></param>
|
||||
/// <exception cref="NotImplementedException"></exception>
|
||||
internal static void DisplayLayout(Layout[] layoutList)
|
||||
{
|
||||
foreach (var layout in layoutList)
|
||||
{
|
||||
Console.WriteLine($" Id: {layout.Id} | Name: {layout.Name}");
|
||||
Console.WriteLine(" - Products");
|
||||
foreach (var product in layout.Products)
|
||||
{
|
||||
Console.WriteLine($" Id: {product.Id} | Name: {product.Name} | DisplayName: {product.DisplayName} | Pack: {product.Pack}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// legge conf in formato stringa
|
||||
/// </summary>
|
||||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
protected static string ReadSetting(string key)
|
||||
{
|
||||
string answ = "";
|
||||
try
|
||||
{
|
||||
answ = $"{ConfigurationManager.AppSettings[key]}" ?? "";
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Console.Write("Eccezione in ReadSettings");
|
||||
Console.Write(exc.Message);
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Programma principale
|
||||
/// </summary>
|
||||
/// <param name="args"></param>
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
// leggo conf da file ini (ip/port)
|
||||
Console.WriteLine("Loading Files...");
|
||||
string userInput = "";
|
||||
|
||||
Console.WriteLine("------------ Test DB ------------");
|
||||
EgwProxy.Icoel.DbProxy dbProxy = new DbProxy(ReadSetting("SyncState"));
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("--- SyncState ---");
|
||||
bool needRedo = true;
|
||||
int numTry = 1;
|
||||
//int numTry = 3;
|
||||
var elencoSyncState = dbProxy.DataController.SyncStateGetAll();
|
||||
while (needRedo && numTry >= 0)
|
||||
{
|
||||
Console.WriteLine(" --- PRE --- ");
|
||||
if (elencoSyncState != null)
|
||||
{
|
||||
foreach (var item in elencoSyncState)
|
||||
{
|
||||
Console.WriteLine($"TAB: {item.TableName} | IdxIN / IdxLocal {item.LastIdxIn} / {item.LastIdx} | NumIn / NumLocal {item.NumRecIn} / {item.NumRec}");
|
||||
// verifico se serva redo..
|
||||
}
|
||||
}
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("Premere un tasto x continuare...");
|
||||
Console.ReadKey();
|
||||
Stopwatch sw = new Stopwatch();
|
||||
sw.Start();
|
||||
elencoSyncState = dbProxy.DataController.SyncStateDoImportAll();
|
||||
sw.Stop();
|
||||
Console.WriteLine($" process time: {sw.ElapsedMilliseconds} ms ");
|
||||
Console.WriteLine(" --- POST --- ");
|
||||
if (elencoSyncState != null)
|
||||
{
|
||||
foreach (var item in elencoSyncState)
|
||||
{
|
||||
Console.WriteLine($"TAB: {item.TableName} | IdxIN / IdxLocal {item.LastIdxIn} / {item.LastIdx} | NumIn / NumLocal {item.NumRecIn} / {item.NumRec}");
|
||||
// verifico se serva redo..
|
||||
}
|
||||
}
|
||||
// processo
|
||||
needRedo = testNeedRedo(elencoSyncState);
|
||||
numTry--;
|
||||
}
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("Premere un tasto x continuare...");
|
||||
Console.ReadKey();
|
||||
|
||||
// oggetto x connessione al sizer icoel
|
||||
Connector IcoelSizer = new Connector(ReadSetting("IndirizzoIpSizer"), ReadSetting("SizerTcpPort"));
|
||||
//Connector IcoelSizer = new Connector(setup.IndirizzoIpSizer, setup.SizerTcpPort);
|
||||
|
||||
Console.WriteLine("------------ Parametri CurrBatch rilevati ------------");
|
||||
var cBatch = IcoelSizer.GetCurrBatchData();
|
||||
if (cBatch != null)
|
||||
{
|
||||
DisplayCurrBatch(cBatch);
|
||||
}
|
||||
|
||||
// ora effettua un pò di letture/scritture
|
||||
try
|
||||
{
|
||||
|
||||
Console.WriteLine("------------ TUTTE variety ------------");
|
||||
var varList = IcoelSizer.GetVarietyList(false);
|
||||
var varietyData = IcoelSizer.GetLayoutForVarietyList(varList);
|
||||
if (varietyData != null)
|
||||
{
|
||||
DisplayVarietyLayout(varietyData);
|
||||
}
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("Premere un tasto x continuare...");
|
||||
userInput = Console.ReadLine();
|
||||
|
||||
|
||||
Console.WriteLine("------------ Parametri velocità rilevati ------------");
|
||||
var perfMeter = IcoelSizer.GetPerfMeters();
|
||||
if (perfMeter != null)
|
||||
{
|
||||
DisplayPerfMeter(perfMeter);
|
||||
}
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("Premere un tasto x continuare...");
|
||||
userInput = Console.ReadLine();
|
||||
|
||||
// solo attive
|
||||
Console.WriteLine("------------ solo attive ------------");
|
||||
varList = IcoelSizer.GetVarietyList();
|
||||
varietyData = IcoelSizer.GetLayoutForVarietyList(varList);
|
||||
if (varietyData != null)
|
||||
{
|
||||
DisplayVarietyLayout(varietyData);
|
||||
}
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("Premere un tasto x continuare...");
|
||||
userInput = Console.ReadLine();
|
||||
|
||||
Console.WriteLine("------------ BATCH correnti ------------");
|
||||
var currBatch = IcoelSizer.GetCurrentBatch();
|
||||
foreach (var item in currBatch)
|
||||
{
|
||||
string lato = item.Key == 1 ? "SX" : "DX";
|
||||
Console.WriteLine($"[{item.Key}-{lato}] Grower code: {item.Value.GrowerCode} | Layout Name: {item.Value.LayoutName} | Totalling: [{item.Value.TotallingVarietyCode}] {item.Value.TotallingVariety} | Sizing: {item.Value.SizingProfileName} | Start {item.Value.StartTime} | End {item.Value.EndTime}");
|
||||
}
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("Premere un tasto x continuare...");
|
||||
userInput = Console.ReadLine();
|
||||
|
||||
Console.WriteLine("------------ Prova invio BATCH ------------");
|
||||
// recupero GUID x variety e layout
|
||||
var varGuid = selVariety(IcoelSizer);
|
||||
var layGuid = selLayout(IcoelSizer, varGuid);
|
||||
|
||||
GrowerInfo GrowerData = new GrowerInfo();
|
||||
IcoelSizer.EnqueueBatch(GrowerData, varGuid, layGuid);
|
||||
|
||||
currBatch = IcoelSizer.GetCurrentBatch();
|
||||
foreach (var item in currBatch)
|
||||
{
|
||||
string lato = item.Key == 1 ? "SX" : "DX";
|
||||
Console.WriteLine($"[{item.Key}-{lato}] Grower code: {item.Value.GrowerCode} | Layout Name: {item.Value.LayoutName} | Totalling: [{item.Value.TotallingVarietyCode}] {item.Value.TotallingVariety} | Sizing: {item.Value.SizingProfileName} | Start {item.Value.StartTime} | End {item.Value.EndTime}");
|
||||
}
|
||||
Console.WriteLine("Test completato");
|
||||
Console.WriteLine("Premere un tasto x chiudere");
|
||||
Console.ReadKey();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine("ECCEZIONE" + ex.Message + ex.StackTrace);
|
||||
Console.ReadKey();
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Verifico necessità di rifare sync
|
||||
/// </summary>
|
||||
/// <param name="elencoSyncState"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="NotImplementedException"></exception>
|
||||
private static bool testNeedRedo(List<SyncStateModel> elencoSyncState)
|
||||
{
|
||||
bool answ = false;
|
||||
foreach (var item in elencoSyncState)
|
||||
{
|
||||
answ = answ || (item.NumRecIn > item.NumRec || item.LastIdxIn > item.LastIdx);
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
|
||||
#endregion Private Methods
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("EgwProxy.Icoel.Test")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("EgwProxy.Icoel.Test")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2022")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("a655a6ac-5997-46f9-9752-8c621b80516c")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// 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("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
@@ -0,0 +1,6 @@
|
||||
[Batch]
|
||||
GrowerCode=02
|
||||
GrowerName=Egalware
|
||||
Comment1=Prova Invio
|
||||
Comment2=Console app
|
||||
Comment3=Selezionato Variety e layout
|
||||
@@ -0,0 +1,3 @@
|
||||
[Sizer]
|
||||
IndirizzoIp=192.168.137.50
|
||||
TcpPort=8001
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="System.IO.Compression" version="4.1.0" targetFramework="net462" />
|
||||
</packages>
|
||||
@@ -0,0 +1,37 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.1.32421.90
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EgwProxy.Icoel", "EgwProxy.Icoel\EgwProxy.Icoel.csproj", "{C45F5E6E-866B-4A34-A598-29AAB2D178AD}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EgwProxy.Icoel.Test", "EgwProxy.Icoel.Test\EgwProxy.Icoel.Test.csproj", "{A655A6AC-5997-46F9-9752-8C621B80516C}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EgwProxy.Icoel.DataLayer", "EgwProxy.Icoel.DataLayer\EgwProxy.Icoel.DataLayer.csproj", "{E36544CB-D699-48D8-9F81-C2758E7C7D19}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{C45F5E6E-866B-4A34-A598-29AAB2D178AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{C45F5E6E-866B-4A34-A598-29AAB2D178AD}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C45F5E6E-866B-4A34-A598-29AAB2D178AD}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C45F5E6E-866B-4A34-A598-29AAB2D178AD}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{A655A6AC-5997-46F9-9752-8C621B80516C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{A655A6AC-5997-46F9-9752-8C621B80516C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A655A6AC-5997-46F9-9752-8C621B80516C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{A655A6AC-5997-46F9-9752-8C621B80516C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{E36544CB-D699-48D8-9F81-C2758E7C7D19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E36544CB-D699-48D8-9F81-C2758E7C7D19}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E36544CB-D699-48D8-9F81-C2758E7C7D19}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E36544CB-D699-48D8-9F81-C2758E7C7D19}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {E2472E21-58D3-4EAD-BC4A-BC3915B18BEF}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<configSections>
|
||||
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
||||
</configSections>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
|
||||
</startup>
|
||||
<system.serviceModel>
|
||||
<bindings>
|
||||
<netNamedPipeBinding>
|
||||
<binding name="NetNamedPipeBinding_ISizerService">
|
||||
<security mode="None" />
|
||||
</binding>
|
||||
</netNamedPipeBinding>
|
||||
<wsHttpBinding>
|
||||
<binding name="WSHttpBinding_ISizerService" maxReceivedMessageSize="2147483647">
|
||||
<security mode="None" />
|
||||
</binding>
|
||||
</wsHttpBinding>
|
||||
</bindings>
|
||||
<client>
|
||||
<endpoint address="http://localhost:8001/SizerService/" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ISizerService" contract="SizerService.ISizerService" name="WSHttpBinding_ISizerService" />
|
||||
<endpoint address="net.pipe://localhost/Compac/8001/SizerService" binding="netNamedPipeBinding" bindingConfiguration="NetNamedPipeBinding_ISizerService" contract="SizerService.ISizerService" name="NetNamedPipeBinding_ISizerService" />
|
||||
</client>
|
||||
</system.serviceModel>
|
||||
<entityFramework>
|
||||
<providers>
|
||||
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
|
||||
</providers>
|
||||
</entityFramework>
|
||||
<connectionStrings>
|
||||
<add name="EntrataFrontiera" connectionString="data source=192.168.137.10\sqlexpress;initial catalog=frontiera;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
|
||||
</connectionStrings>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Text.Encodings.Web" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.5.1" newVersion="4.0.5.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
@@ -0,0 +1,107 @@
|
||||
# Appunti impiego connesisoni ICOEL
|
||||
|
||||
## Icoel SOAP
|
||||
|
||||
Oltre ai metodi legati al batch, ci sono questi metodi x recuperare informazioni specifiche di produttività
|
||||
|
||||
| Metodo | Descrizione |
|
||||
| ---------- | ---------- |
|
||||
| GetMachineTonnesPH() | valore tonnellate/ora di velocità impianto |
|
||||
| GetMachineTotalFPM() | valore frutti per minuto |
|
||||
| GetMachineRodsPM() | velocità catena (carrellini / minuto) |
|
||||
| GetMachineCupfill() | percentuale riempimento carrellini (100% = 1 frutto x ogni carrellino) |
|
||||
|
||||
|
||||
## Icoel DB
|
||||
|
||||
Appunti sulla gestione tabelle di frontiera
|
||||
|
||||
### Products total
|
||||
|
||||
/****** Script for SelectTopNRows command from SSMS ******/
|
||||
SELECT TOP (1000) [SizerBatchId]
|
||||
,[Index]
|
||||
,[Nome]
|
||||
,[Qualities]
|
||||
,[Grado]
|
||||
,[Calibro]
|
||||
,[NumeroFrutti]
|
||||
,[Decigrammi]
|
||||
FROM [IcoelExport].[dbo].[ProductsTotals]
|
||||
|
||||
|
||||
### Entrata Ciliegie
|
||||
|
||||
SELECT *
|
||||
FROM [frontiera].[dbo].[ENTRATACILIEGIE]
|
||||
|
||||
|
||||
-- utilizzare codice e descrizione prodotto...
|
||||
|
||||
### Fine lavorazione
|
||||
select top 100 *
|
||||
from ProductsTotals
|
||||
|
||||
/*
|
||||
SizerBatch id = id del batch da WS SOAP
|
||||
Index = indice di prodotto FINITO, di cui ho il NOME
|
||||
- prodotti da matrice: colonne = gradi, righe = taglie(sizes)
|
||||
- grado a colore rosso
|
||||
- do il nome prodotto rosse 26- (che sono da 22 a 26 in grado A)
|
||||
- colonna qualities = è la "somma dei qualities" ovvero le colonne che passano nelcontrollo prodotto
|
||||
- codice in 3 parametri, che sono a,b,c
|
||||
- a = qualità interna (SEMPRE NULL x le ciliegie)
|
||||
- b grado = qualità esterna del frutto, es rosse, nere, con stelo... ricircolo = scarto per cattiva disposizione
|
||||
- c : calibri che mi definiscono la dimensione, tipicamente 22..32
|
||||
|
||||
|
||||
si scrive tutto quando è chiuso il lotto
|
||||
inizialmente 1 solo lotto x entrambe le linee
|
||||
*/
|
||||
|
||||
### Conferimento MES
|
||||
|
||||
<code>
|
||||
SELECT *
|
||||
FROM DettagliConferimentoMES
|
||||
where FillingId = 31729
|
||||
order by PackId
|
||||
</code>
|
||||
|
||||
/*
|
||||
Numero lotto = sigla giorno
|
||||
sigla lotto: incrementale giornaliero
|
||||
|
||||
in particoalre x il prodotto grosso --> seleziono da + fornitori (es fornitori grossi)
|
||||
|
||||
PackId = id univoco scatoletta
|
||||
FillingId / FillingRow NON USATI: li posso ignorare, si applicano al caso "travaso" da bins ingresso / bins uscita "tipizzati" --> serve x precalibrare
|
||||
scaricoId = operazione di scannerizzazione ( è il barcode letto)
|
||||
codice a barre è letto x ogni etichetta di conferimento
|
||||
codice e nome fornitore = grower
|
||||
codice e descrizione prodotto : sono il GREZZO specifico
|
||||
cdice prodotto grezzo è il "ceppo" / famiglia
|
||||
sigla e numero lotto: colonna di entrata ciliegie (frontiera)
|
||||
idem x data e qta entrata
|
||||
|
||||
|
||||
*/
|
||||
|
||||
### Confezioni Mes
|
||||
|
||||
<code>
|
||||
SELECT *
|
||||
FROM DettagliConfezioniMES
|
||||
</code>
|
||||
|
||||
pack id = singola cassetta/scatoal/cartone
|
||||
ean = barcode in uscita
|
||||
batch id / batch name = dati tracciabilità, legato ai lotti in entrata sul sizer
|
||||
lane [1/2]sizerBatchId = lotti del sizer
|
||||
pesoDecigram = peso netto confezionato (tolleranza +/-10g...20gr)
|
||||
|
||||
tabella scritta dal momento in cui arriva il cartone/cassetta per iniziare riempimento
|
||||
|
||||
dati live li vediamo dal sizer
|
||||
|
||||
*/
|
||||
@@ -0,0 +1,253 @@
|
||||
using EgwProxy.Icoel.SizerService;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.Serialization;
|
||||
using System.ServiceModel;
|
||||
|
||||
namespace EgwProxy.Icoel.Compac
|
||||
{
|
||||
/// <summary>
|
||||
/// Classe di comunicazione x
|
||||
/// </summary>
|
||||
public class ComClient : IDisposable
|
||||
{
|
||||
#region Public Constructors
|
||||
|
||||
/// <summary>
|
||||
/// Oggetto client comunicazione con sizer ICOEL per invio/recupero informazioni di
|
||||
/// produzione (batch)
|
||||
/// </summary>
|
||||
/// <param name="sizerIp">Indirizzo IP del server SIZER</param>
|
||||
/// <param name="port">Porta di connessione del sizer (def: 8001)</param>
|
||||
public ComClient(string sizerIp, string port)
|
||||
{
|
||||
// Salvo IP e porta
|
||||
ipAddress = sizerIp;
|
||||
tcpPort = port;
|
||||
|
||||
// inizializzazione servizio comunicazione
|
||||
var url = "http://" + sizerIp + ":" + port + "/SizerService/";
|
||||
EndpointAddress epa = new EndpointAddress(new Uri(url));
|
||||
SSClient = new SizerServiceClient("WSHttpBinding_ISizerService", epa);
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Public Properties
|
||||
|
||||
/// <summary>
|
||||
/// Status di connessione del client
|
||||
/// </summary>
|
||||
public bool connected
|
||||
{
|
||||
get
|
||||
{
|
||||
bool answ = false;
|
||||
if (SSClient != null)
|
||||
{
|
||||
answ = SSClient.State == CommunicationState.Opened;
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Public Properties
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Dispose dell'oggetto
|
||||
/// </summary>
|
||||
public void Dispose()
|
||||
{
|
||||
Close();
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Internal Properties
|
||||
|
||||
/// <summary>
|
||||
/// Inidirizzo IP
|
||||
/// </summary>
|
||||
internal string ipAddress { get; set; } = "127.0.0.1";
|
||||
|
||||
/// <summary>
|
||||
/// Porta del webservice (SOAP)
|
||||
/// </summary>
|
||||
internal string tcpPort { get; set; } = "8001";
|
||||
|
||||
#endregion Internal Properties
|
||||
|
||||
#region Internal Methods
|
||||
|
||||
/// <summary>
|
||||
/// Verifica del grower da codice/nome con eventuale creazione se mancante
|
||||
/// </summary>
|
||||
/// <param name="growerCode">Codice del produttore</param>
|
||||
/// <param name="growerName">Denominazione del produttore</param>
|
||||
internal void CheckGrower(string growerCode, string growerName)
|
||||
{
|
||||
var grower = SSClient.GetGrower(growerCode);
|
||||
|
||||
if (grower == null)
|
||||
{
|
||||
var nuovo = new Grower() { Code = growerCode, Name = growerName };
|
||||
|
||||
SSClient.AddGrower(nuovo);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua chiusura del proxy di comunicazione
|
||||
/// </summary>
|
||||
internal void Close()
|
||||
{
|
||||
if (SSClient.State != CommunicationState.Closed)
|
||||
{
|
||||
SSClient.Close();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco dei layout attivi della varietà
|
||||
/// </summary>
|
||||
/// <param name="VarietyId">Guid della varietà</param>
|
||||
/// <returns>Oggetto Lyout attivo</returns>
|
||||
internal Layout GetActiveLayout(Guid VarietyId)
|
||||
{
|
||||
return SSClient.GetActiveLayout(VarietyId);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco varietà attive
|
||||
/// </summary>
|
||||
/// <returns>Array Variety attive</returns>
|
||||
internal Variety[] GetActiveVarieties()
|
||||
{
|
||||
return SSClient.GetActiveVarieties();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco varietà (tutte)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
internal Variety[] GetAllVarieties()
|
||||
{
|
||||
return SSClient.GetAllVarieties();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupera il batch corrente (se monolinea)
|
||||
/// </summary>
|
||||
/// <returns>Batch corrente (singolo)</returns>
|
||||
internal Batch GetCurrentBatch()
|
||||
{
|
||||
return SSClient.GetCurrentBatch();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupera il batch corrente data la linea
|
||||
/// </summary>
|
||||
/// <param name="lineNum">Numero della linea 1=sx/2=dx</param>
|
||||
/// <returns>Batch della linea selezionata</returns>
|
||||
internal Batch GetCurrentBatchByLane(int lineNum)
|
||||
{
|
||||
return SSClient.GetCurrentBatchByLane(lineNum);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco dei layout della varietà
|
||||
/// </summary>
|
||||
/// <param name="VarietyId">Guid della varietà</param>
|
||||
/// <returns>Layout della Variety</returns>
|
||||
internal Layout[] GetLayouts(Guid VarietyId)
|
||||
{
|
||||
return SSClient.GetLayouts(VarietyId);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua chiamata per mettere in coda il lotto richiesto
|
||||
/// </summary>
|
||||
/// <param name="batch">Oggetto Batch completamente popolato da accodare in richiesta</param>
|
||||
internal void MettiLottoInCoda(Batch batch)
|
||||
{
|
||||
SSClient.AddBatch(batch);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupera elenco parametri performance impianto
|
||||
/// </summary>
|
||||
/// <returns>Dizionario delle variabili di performance dell'impianto in formato Dictionary<string,double></returns>
|
||||
internal Dictionary<string, double> GetPerfMeters()
|
||||
{
|
||||
Dictionary<string, double> answ = new Dictionary<string, double>();
|
||||
// velocità processo indicata in tonnellate /oOra
|
||||
double velTonnOra = SSClient.GetMachineTonnesPH();
|
||||
// velocità espressa in frutti/minuto
|
||||
double velFruttiMinuto = SSClient.GetMachineTotalFPM();
|
||||
// percentuale riempimento carrellini
|
||||
double percRiemp = SSClient.GetMachineCupfill();
|
||||
// Numero confezioni/ora
|
||||
double numPackOra = SSClient.GetMachinePacksPH();
|
||||
|
||||
// accodo i valori ricavati
|
||||
answ.Add("NumPacksOra", numPackOra);
|
||||
answ.Add("PercRiemp", percRiemp);
|
||||
answ.Add("VelFruttiMinuto", velFruttiMinuto);
|
||||
answ.Add("VelTonnOra", velTonnOra);
|
||||
return answ;
|
||||
}
|
||||
|
||||
|
||||
#endregion Internal Methods
|
||||
|
||||
#region Private Properties
|
||||
|
||||
/// <summary>
|
||||
/// Client che inoltra le richieste al Sizer
|
||||
/// </summary>
|
||||
private SizerServiceClient SSClient { get; set; }
|
||||
|
||||
#endregion Private Properties
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
internal class IcoelSizerException : Exception
|
||||
{
|
||||
#region Public Constructors
|
||||
|
||||
public IcoelSizerException()
|
||||
{
|
||||
}
|
||||
|
||||
public IcoelSizerException(Exception ex)
|
||||
{
|
||||
this.ex = ex;
|
||||
}
|
||||
|
||||
public IcoelSizerException(string message) : base(message)
|
||||
{
|
||||
}
|
||||
|
||||
public IcoelSizerException(string message, Exception innerException) : base(message, innerException)
|
||||
{
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Protected Constructors
|
||||
|
||||
protected IcoelSizerException(SerializationInfo info, StreamingContext context) : base(info, context)
|
||||
{
|
||||
}
|
||||
|
||||
#endregion Protected Constructors
|
||||
|
||||
#region Private Fields
|
||||
|
||||
private Exception ex;
|
||||
|
||||
#endregion Private Fields
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,107 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xs:schema xmlns:ser="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:tns="http://schemas.microsoft.com/2003/10/Serialization/Arrays" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:import namespace="uri:Compac.Services.Sizer.Service" />
|
||||
<xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
|
||||
<xs:complexType name="ArrayOfint">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" maxOccurs="unbounded" name="int" type="xs:int" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="ArrayOfint" nillable="true" type="tns:ArrayOfint" />
|
||||
<xs:complexType name="ArrayOfdouble">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" maxOccurs="unbounded" name="double" type="xs:double" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="ArrayOfdouble" nillable="true" type="tns:ArrayOfdouble" />
|
||||
<xs:complexType name="ArrayOfstring">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="xs:string" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="ArrayOfstring" nillable="true" type="tns:ArrayOfstring" />
|
||||
<xs:complexType name="ArrayOfKeyValueOfstringint">
|
||||
<xs:annotation>
|
||||
<xs:appinfo>
|
||||
<IsDictionary xmlns="http://schemas.microsoft.com/2003/10/Serialization/">true</IsDictionary>
|
||||
</xs:appinfo>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" maxOccurs="unbounded" name="KeyValueOfstringint">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="Key" nillable="true" type="xs:string" />
|
||||
<xs:element name="Value" type="xs:int" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="ArrayOfKeyValueOfstringint" nillable="true" type="tns:ArrayOfKeyValueOfstringint" />
|
||||
<xs:complexType name="ArrayOfArrayOfKeyValueOfstringint">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" maxOccurs="unbounded" name="ArrayOfKeyValueOfstringint" nillable="true" type="tns:ArrayOfKeyValueOfstringint" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="ArrayOfArrayOfKeyValueOfstringint" nillable="true" type="tns:ArrayOfArrayOfKeyValueOfstringint" />
|
||||
<xs:complexType name="ArrayOfKeyValueOfOutletProductZE8EwetR">
|
||||
<xs:annotation>
|
||||
<xs:appinfo>
|
||||
<IsDictionary xmlns="http://schemas.microsoft.com/2003/10/Serialization/">true</IsDictionary>
|
||||
</xs:appinfo>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" maxOccurs="unbounded" name="KeyValueOfOutletProductZE8EwetR">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element xmlns:q1="uri:Compac.Services.Sizer.Service" name="Key" nillable="true" type="q1:Outlet" />
|
||||
<xs:element xmlns:q2="uri:Compac.Services.Sizer.Service" name="Value" nillable="true" type="q2:Product" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="ArrayOfKeyValueOfOutletProductZE8EwetR" nillable="true" type="tns:ArrayOfKeyValueOfOutletProductZE8EwetR" />
|
||||
<xs:complexType name="ArrayOfKeyValueOfstringstring">
|
||||
<xs:annotation>
|
||||
<xs:appinfo>
|
||||
<IsDictionary xmlns="http://schemas.microsoft.com/2003/10/Serialization/">true</IsDictionary>
|
||||
</xs:appinfo>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" maxOccurs="unbounded" name="KeyValueOfstringstring">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="Key" nillable="true" type="xs:string" />
|
||||
<xs:element name="Value" nillable="true" type="xs:string" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="ArrayOfKeyValueOfstringstring" nillable="true" type="tns:ArrayOfKeyValueOfstringstring" />
|
||||
<xs:complexType name="ArrayOfguid">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" maxOccurs="unbounded" name="guid" type="ser:guid" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="ArrayOfguid" nillable="true" type="tns:ArrayOfguid" />
|
||||
<xs:complexType name="ArrayOfKeyValueOfintint">
|
||||
<xs:annotation>
|
||||
<xs:appinfo>
|
||||
<IsDictionary xmlns="http://schemas.microsoft.com/2003/10/Serialization/">true</IsDictionary>
|
||||
</xs:appinfo>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" maxOccurs="unbounded" name="KeyValueOfintint">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="Key" type="xs:int" />
|
||||
<xs:element name="Value" type="xs:int" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="ArrayOfKeyValueOfintint" nillable="true" type="tns:ArrayOfKeyValueOfintint" />
|
||||
</xs:schema>
|
||||
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xs:schema xmlns:tns="urn:clr:Compac.Services.Core" elementFormDefault="qualified" targetNamespace="urn:clr:Compac.Services.Core" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:import namespace="http://schemas.datacontract.org/2004/07/Compac.Services.Core" />
|
||||
<xs:element name="GetVersion">
|
||||
<xs:complexType>
|
||||
<xs:sequence />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="GetVersionResponse">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element xmlns:q1="http://schemas.datacontract.org/2004/07/Compac.Services.Core" minOccurs="0" name="GetVersionResult" nillable="true" type="q1:ServiceVersion" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/Compac.Services.Core" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/Compac.Services.Core" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:import namespace="http://schemas.datacontract.org/2004/07/System" />
|
||||
<xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
|
||||
<xs:complexType name="ServiceVersion">
|
||||
<xs:sequence>
|
||||
<xs:element xmlns:q1="http://schemas.datacontract.org/2004/07/System" minOccurs="0" name="InterfaceVersion" nillable="true" type="q1:Version" />
|
||||
<xs:element minOccurs="0" name="ProviderName" nillable="true" type="xs:string" />
|
||||
<xs:element minOccurs="0" name="ProviderVersion" nillable="true" type="xs:string" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="ServiceVersion" nillable="true" type="tns:ServiceVersion" />
|
||||
<xs:complexType name="ServiceEvent">
|
||||
<xs:sequence>
|
||||
<xs:element xmlns:q2="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="EventArgs" nillable="true" type="q2:ArrayOfKeyValueOfstringstring" />
|
||||
<xs:element minOccurs="0" name="EventName" nillable="true" type="xs:string" />
|
||||
<xs:element minOccurs="0" name="EventTime" type="xs:dateTime" />
|
||||
<xs:element minOccurs="0" name="Id" type="xs:int" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="ServiceEvent" nillable="true" type="tns:ServiceEvent" />
|
||||
</xs:schema>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xs:schema xmlns:tns="http://Compac.Services.Core" elementFormDefault="qualified" targetNamespace="http://Compac.Services.Core" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:complexType name="ArgumentFault">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" name="Message" nillable="true" type="xs:string" />
|
||||
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
|
||||
<xs:element minOccurs="0" name="Value" nillable="true" type="xs:anyType" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="ArgumentFault" nillable="true" type="tns:ArgumentFault" />
|
||||
</xs:schema>
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user