Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f34bffd551 |
-19
@@ -148,18 +148,12 @@ publish/
|
|||||||
|
|
||||||
# NuGet Packages
|
# NuGet Packages
|
||||||
*.nupkg
|
*.nupkg
|
||||||
# NuGet Symbol Packages
|
|
||||||
*.snupkg
|
|
||||||
# The packages folder can be ignored because of Package Restore
|
# The packages folder can be ignored because of Package Restore
|
||||||
**/[Pp]ackages/*
|
|
||||||
**/packages/*
|
**/packages/*
|
||||||
# except build/, which is used as an MSBuild target.
|
# except build/, which is used as an MSBuild target.
|
||||||
!**/packages/build/
|
!**/packages/build/
|
||||||
# Uncomment if necessary however generally it will be regenerated when needed
|
# Uncomment if necessary however generally it will be regenerated when needed
|
||||||
#!**/packages/repositories.config
|
#!**/packages/repositories.config
|
||||||
# NuGet v3's project.json files produces more ignorable files
|
|
||||||
*.nuget.props
|
|
||||||
*.nuget.targets
|
|
||||||
|
|
||||||
# Windows Azure Build Output
|
# Windows Azure Build Output
|
||||||
csx/
|
csx/
|
||||||
@@ -336,16 +330,3 @@ _UpgradeReport_Files/
|
|||||||
Backup*/
|
Backup*/
|
||||||
UpgradeLog*.XML
|
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/
|
|
||||||
|
|
||||||
|
|||||||
+374
-381
@@ -6,34 +6,38 @@ variables:
|
|||||||
NUM_REL: '0.1.2.3'
|
NUM_REL: '0.1.2.3'
|
||||||
NUM_DEB: '0.1.2-beta.3'
|
NUM_DEB: '0.1.2-beta.3'
|
||||||
CONFIG: ''
|
CONFIG: ''
|
||||||
VERS_MAIN: '3.9'
|
VERS_MAIN: '3.6'
|
||||||
NEW_REL: ''
|
NEW_REL: ''
|
||||||
OUTPUT_DIR: ''
|
OUTPUT_DIR: ''
|
||||||
NET_SHARE_X: '\\codedoc.egalware.com\library'
|
NET_SHARE_X: '\\codedoc.egalware.com\library'
|
||||||
NET_USER_X: 'gitlab'
|
NET_USER_X: 'gitlab'
|
||||||
NEXUS_PATH: 'MAPO/IOB-WIN-NEXT'
|
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
|
.DocReplica: &DocReplica
|
||||||
- |
|
- |
|
||||||
net use A: /delete
|
net use X: /delete
|
||||||
net use A: $env:NET_SHARE_X /u:$env:NET_USER_X $XDRIVE_PASSWD
|
net use X: $env:NET_SHARE_X /u:$env:NET_USER_X $XDRIVE_PASSWD
|
||||||
ROBOCOPY docfx A:\$env:APP_NAME /MIR /XF .git* /XD .git
|
ROBOCOPY docfx X:\$env:APP_NAME /MIR /XF .git* /XD .git
|
||||||
SLEEP 2
|
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
|
# helper x fix version number
|
||||||
.version-fix: &version-fix
|
.version-fix: &version-fix
|
||||||
- |
|
- |
|
||||||
$env:NEW_REL = $env:VERS_MAIN+"."+(get-date -format yyMM)+"."+(get-date -format ddHH)
|
$env:NEW_REL = $env:VERS_MAIN+"."+(get-date –format yyMM)+"."+(get-date –format ddHH)
|
||||||
$env:NUM_REL = $env:VERS_MAIN+"."+(get-date -format yyMM)+"."+(get-date -format dHH)
|
$env:NUM_REL = $env:VERS_MAIN+"."+(get-date –format yyMM)+"."+(get-date –format dHH)
|
||||||
$env:NUM_DEB = $env:VERS_MAIN+"."+(get-date -format yyMM)+"-beta."+(get-date -format dHH)
|
$env:NUM_DEB = $env:VERS_MAIN+"."+(get-date –format yyMM)+"-beta."+(get-date –format dHH)
|
||||||
$env:NEW_COPYRIGHT = "EgalWare @ 2006-" + (get-date -format yyyy)
|
$env:NEW_COPYRIGHT = "EgalWare @ 2006-" + (get-date -format yyyy)
|
||||||
$contenuto = Get-Content -path 'VersGen\VersGen.cs' -Raw
|
$contenuto = Get-Content -path 'VersGen\VersGen.cs' -Raw
|
||||||
$newContenuto = $contenuto -replace '0.0.0.0', $env:NEW_REL
|
$newContenuto = $contenuto -replace '0.0.0.0', $env:NEW_REL
|
||||||
@@ -42,7 +46,7 @@ variables:
|
|||||||
# display versioni generate
|
# display versioni generate
|
||||||
$resoconto = "Effettuato fix file VersGen | release v: " + $env:NUM_REL + " | debug v: " + $env:NUM_DEB;
|
$resoconto = "Effettuato fix file VersGen | release v: " + $env:NUM_REL + " | debug v: " + $env:NUM_DEB;
|
||||||
Write-Output $resoconto;
|
Write-Output $resoconto;
|
||||||
echo "Replace completati"
|
echo "replace completati"
|
||||||
|
|
||||||
# helper x fix nuspec file
|
# helper x fix nuspec file
|
||||||
.nuspec-fix: &nuspec-fix
|
.nuspec-fix: &nuspec-fix
|
||||||
@@ -89,7 +93,7 @@ variables:
|
|||||||
$Target = "Releases\" + $CI_COMMIT_BRANCH + "\" + $env:APP_NAME + ".zip"
|
$Target = "Releases\" + $CI_COMMIT_BRANCH + "\" + $env:APP_NAME + ".zip"
|
||||||
cd "$env:APP_NAME\bin\"
|
cd "$env:APP_NAME\bin\"
|
||||||
$Source = "*"
|
$Source = "*"
|
||||||
7zip a -tzip $Target $Source -xr!DATA\CONF
|
7zip a -tzip $Target $Source -xr!DATA
|
||||||
echo "called ZIP $Source --> $Target"
|
echo "called ZIP $Source --> $Target"
|
||||||
|
|
||||||
# helper creazione hash files
|
# helper creazione hash files
|
||||||
@@ -104,7 +108,6 @@ variables:
|
|||||||
$SHA1.Hash | Set-Content -Path $Target".sha1"
|
$SHA1.Hash | Set-Content -Path $Target".sha1"
|
||||||
echo "Created HASH files for $Target"
|
echo "Created HASH files for $Target"
|
||||||
|
|
||||||
# helper upload su nexus
|
|
||||||
.nexusUpload: &nexusUpload
|
.nexusUpload: &nexusUpload
|
||||||
- |
|
- |
|
||||||
Set-Alias mCurl C:\Windows\system32\curl.exe
|
Set-Alias mCurl C:\Windows\system32\curl.exe
|
||||||
@@ -130,69 +133,240 @@ variables:
|
|||||||
$FileName = Split-Path $File -leaf
|
$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 $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:
|
stages:
|
||||||
- build
|
- build
|
||||||
|
- staging
|
||||||
- release
|
- release
|
||||||
- docfx
|
- docfx
|
||||||
|
|
||||||
# ---------------------------------------------
|
# --------------------------------
|
||||||
# BASE stage object (gestiti con extends)
|
# BUILD
|
||||||
# ---------------------------------------------
|
# --------------------------------
|
||||||
.base_build:
|
IOB-MAN:build:
|
||||||
stage: build
|
stage: build
|
||||||
tags:
|
tags:
|
||||||
- win
|
- win
|
||||||
|
variables:
|
||||||
|
APP_NAME: IOB-MAN
|
||||||
|
only:
|
||||||
|
refs:
|
||||||
|
- develop
|
||||||
|
- main
|
||||||
|
- master
|
||||||
before_script:
|
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:
|
||||||
|
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'
|
- '& "$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
|
- *version-fix
|
||||||
script:
|
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'
|
- '& "$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:
|
IOB-WIN-NEXT:build:
|
||||||
rules:
|
stage: build
|
||||||
- if: $CI_COMMIT_BRANCH == 'master'
|
|
||||||
changes:
|
|
||||||
- ${APP_NAME}/*
|
|
||||||
- ${APP_NAME}/**/*
|
|
||||||
when: always
|
|
||||||
|
|
||||||
.base_release:
|
|
||||||
stage: release
|
|
||||||
tags:
|
tags:
|
||||||
- win
|
- win
|
||||||
|
variables:
|
||||||
|
APP_NAME: IOB-WIN-NEXT
|
||||||
|
only:
|
||||||
|
refs:
|
||||||
|
- develop
|
||||||
|
- main
|
||||||
|
- master
|
||||||
before_script:
|
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'
|
||||||
|
|
||||||
|
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'
|
||||||
|
|
||||||
|
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'
|
||||||
|
|
||||||
|
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'
|
||||||
|
|
||||||
|
# --------------------------------
|
||||||
|
# STAGING: (nuget beta)
|
||||||
|
# --------------------------------
|
||||||
|
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'
|
||||||
|
|
||||||
|
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'
|
||||||
|
|
||||||
|
# --------------------------------
|
||||||
|
# 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:
|
||||||
|
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'
|
- '& "$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
|
- *version-fix
|
||||||
- *cleanup-zip
|
- *cleanup-zip
|
||||||
script:
|
script:
|
||||||
@@ -200,351 +374,170 @@ stages:
|
|||||||
- *zipper
|
- *zipper
|
||||||
- *hashBuild
|
- *hashBuild
|
||||||
- *nexusUpload
|
- *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-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
|
|
||||||
|
|
||||||
IOB-WIN-NEXT:build:
|
|
||||||
extends: .base_build
|
|
||||||
variables:
|
|
||||||
APP_NAME: IOB-WIN-NEXT
|
|
||||||
|
|
||||||
IOB-WIN-OMRON:build:
|
|
||||||
extends: .base_build
|
|
||||||
variables:
|
|
||||||
APP_NAME: IOB-WIN-OMRON
|
|
||||||
|
|
||||||
IOB-WIN-OPC-UA:build:
|
|
||||||
extends: .base_build
|
|
||||||
variables:
|
|
||||||
APP_NAME: IOB-WIN-OPC-UA
|
|
||||||
|
|
||||||
IOB-WIN-OSAI:build:
|
|
||||||
extends: .base_build
|
|
||||||
variables:
|
|
||||||
APP_NAME: IOB-WIN-OSAI
|
|
||||||
|
|
||||||
IOB-WIN-PING:build:
|
|
||||||
extends: .base_build
|
|
||||||
variables:
|
|
||||||
APP_NAME: IOB-WIN-PING
|
|
||||||
|
|
||||||
IOB-WIN-SHELLY:build:
|
|
||||||
extends: .base_build
|
|
||||||
variables:
|
|
||||||
APP_NAME: IOB-WIN-SHELLY
|
|
||||||
VERS_MAIN: '4.0'
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
IOB-WIN-WPS:build:
|
|
||||||
extends: .base_build
|
|
||||||
variables:
|
|
||||||
APP_NAME: IOB-WIN-WPS
|
|
||||||
|
|
||||||
IOB-WIN-WS:build:
|
|
||||||
extends: .base_build
|
|
||||||
variables:
|
|
||||||
APP_NAME: IOB-WIN-WS
|
|
||||||
|
|
||||||
# --------------------------------
|
|
||||||
# RELEASE
|
|
||||||
# --------------------------------
|
|
||||||
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
|
|
||||||
|
|
||||||
IOB-WIN-NEXT:release:
|
IOB-WIN-NEXT:release:
|
||||||
extends: [ .base_release, .base_rules ]
|
stage: release
|
||||||
needs: ["IOB-WIN-NEXT:build"]
|
needs: ["IOB-WIN-NEXT:build"]
|
||||||
|
tags:
|
||||||
|
- win
|
||||||
variables:
|
variables:
|
||||||
APP_NAME: IOB-WIN-NEXT
|
APP_NAME: IOB-WIN-NEXT
|
||||||
NEXUS_PATH: MAPO/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:
|
EgwProxy.Icoel:build:release:
|
||||||
extends: [ .base_release, .base_rules ]
|
stage: release
|
||||||
needs: ["IOB-WIN-OMRON:build"]
|
needs: ["EgwProxy.Icoel:build"]
|
||||||
|
tags:
|
||||||
|
- win
|
||||||
variables:
|
variables:
|
||||||
APP_NAME: IOB-WIN-OMRON
|
CONFIG: Release
|
||||||
NEXUS_PATH: MAPO/IOB-WIN-OMRON
|
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-OPC-UA:release:
|
EgwProxy.MultiCncLib:build:release:
|
||||||
extends: [ .base_release, .base_rules ]
|
stage: release
|
||||||
needs: ["IOB-WIN-OPC-UA:build"]
|
needs: ["EgwProxy.MultiCncLib:build"]
|
||||||
|
tags:
|
||||||
|
- win
|
||||||
variables:
|
variables:
|
||||||
APP_NAME: IOB-WIN-OPC-UA
|
CONFIG: Release
|
||||||
NEXUS_PATH: MAPO/IOB-WIN-OPC-UA
|
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-OSAI:release:
|
EgwProxy.OsaiCncLib:build:release:
|
||||||
extends: [ .base_release, .base_rules ]
|
stage: release
|
||||||
needs: ["IOB-WIN-OSAI:build"]
|
needs: ["EgwProxy.OsaiCncLib:build"]
|
||||||
|
tags:
|
||||||
|
- win
|
||||||
variables:
|
variables:
|
||||||
APP_NAME: IOB-WIN-OSAI
|
CONFIG: Release
|
||||||
NEXUS_PATH: MAPO/IOB-WIN-OSAI
|
APP_NAME: EgwProxy.OsaiCncLib
|
||||||
|
only:
|
||||||
IOB-WIN-PING:release:
|
refs:
|
||||||
extends: [ .base_release, .base_rules ]
|
- SDK/OsaiCnc
|
||||||
needs: ["IOB-WIN-PING:build"]
|
before_script:
|
||||||
variables:
|
- *nuget-fix
|
||||||
APP_NAME: IOB-WIN-PING
|
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
|
||||||
NEXUS_PATH: MAPO/IOB-WIN-PING
|
- *version-fix
|
||||||
|
- *nuspec-fix
|
||||||
IOB-WIN-SHELLY:release:
|
script:
|
||||||
extends: .base_release
|
- '& "$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'
|
||||||
needs: ["IOB-WIN-SHELLY:build"]
|
- '& Remove-Item *.nupkg'
|
||||||
variables:
|
- '& $env:NUGET_PATH pack "$env:APP_NAME.Release.nuspec"'
|
||||||
APP_NAME: IOB-WIN-SHELLY
|
- '& "$env:NUGET_PATH" setapikey fe387daa-d07c-3207-877e-96c8be1be91b -source http://nexus.steamware.net/repository/nuget-hosted'
|
||||||
NEXUS_PATH: MAPO/IOB-WIN-SHELLY
|
- '& "$env:NUGET_PATH" push *$env:NUM_REL.nupkg -Source http://nexus.steamware.net/repository/nuget-hosted'
|
||||||
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
|
|
||||||
|
|
||||||
# --------------------------------
|
# --------------------------------
|
||||||
# DocFx
|
# DocFx
|
||||||
# --------------------------------
|
# --------------------------------
|
||||||
IOB-WIN-FANUC:docfx:
|
EgwProxy.Icoel:docfx:
|
||||||
extends: [ .base_docfx, .base_rules ]
|
stage: docfx
|
||||||
needs: ["IOB-WIN-FANUC:build"]
|
needs: ["EgwProxy.Icoel:build"]
|
||||||
|
tags:
|
||||||
|
- win
|
||||||
variables:
|
variables:
|
||||||
APP_NAME: IOB-WIN-FANUC
|
APP_NAME: EgwProxy.Icoel
|
||||||
|
only:
|
||||||
|
- SDK/Icoel
|
||||||
|
script:
|
||||||
|
- docfx $env:APP_NAME/docfx.json
|
||||||
|
- mv $env:APP_NAME/_site "docfx"
|
||||||
|
- *DocReplica
|
||||||
|
|
||||||
IOB-WIN-FILE:docfx:
|
EgwProxy.MultiCncLib:docfx:
|
||||||
extends: [ .base_docfx, .base_rules ]
|
stage: docfx
|
||||||
needs: ["IOB-WIN-FILE:build"]
|
needs: ["EgwProxy.MultiCncLib:build"]
|
||||||
|
tags:
|
||||||
|
- win
|
||||||
variables:
|
variables:
|
||||||
APP_NAME: IOB-WIN-FILE
|
APP_NAME: EgwProxy.MultiCncLib
|
||||||
|
only:
|
||||||
|
- SDK/MultiCnc
|
||||||
|
script:
|
||||||
|
- docfx $env:APP_NAME/docfx.json
|
||||||
|
- mv $env:APP_NAME/_site "docfx"
|
||||||
|
- *DocReplica
|
||||||
|
|
||||||
IOB-WIN-FTP:docfx:
|
EgwProxy.OsaiCncLib:docfx:
|
||||||
extends: [ .base_docfx, .base_rules ]
|
stage: docfx
|
||||||
needs: ["IOB-WIN-FTP:build"]
|
needs: ["EgwProxy.OsaiCncLib:build"]
|
||||||
|
tags:
|
||||||
|
- win
|
||||||
variables:
|
variables:
|
||||||
APP_NAME: IOB-WIN-FTP
|
APP_NAME: EgwProxy.OsaiCncLib
|
||||||
|
only:
|
||||||
IOB-WIN-KAWASAKI:docfx:
|
- SDK/OsaiCnc
|
||||||
extends: [ .base_docfx, .base_rules ]
|
script:
|
||||||
needs: ["IOB-WIN-KAWASAKI:build"]
|
- docfx $env:APP_NAME/docfx.json
|
||||||
variables:
|
- mv $env:APP_NAME/_site "docfx"
|
||||||
APP_NAME: IOB-WIN-KAWASAKI
|
- *DocReplica
|
||||||
|
|
||||||
IOB-WIN-MBUS:docfx:
|
|
||||||
extends: [ .base_docfx, .base_rules ]
|
|
||||||
needs: ["IOB-WIN-MBUS:build"]
|
|
||||||
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
|
|
||||||
|
|
||||||
IOB-WIN-NEXT:docfx:
|
IOB-WIN-NEXT:docfx:
|
||||||
extends: [ .base_docfx, .base_rules ]
|
stage: docfx
|
||||||
needs: ["IOB-WIN-NEXT:build"]
|
needs: ["IOB-WIN-NEXT:build"]
|
||||||
|
tags:
|
||||||
|
- win
|
||||||
variables:
|
variables:
|
||||||
APP_NAME: IOB-WIN-NEXT
|
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:
|
IOB-MAN:docfx:
|
||||||
extends: [ .base_docfx, .base_rules ]
|
stage: docfx
|
||||||
needs: ["IOB-WIN-OMRON:build"]
|
needs: ["IOB-MAN:build"]
|
||||||
|
tags:
|
||||||
|
- win
|
||||||
variables:
|
variables:
|
||||||
APP_NAME: IOB-WIN-OMRON
|
APP_NAME: IOB-MAN
|
||||||
|
only:
|
||||||
IOB-WIN-OPC-UA:docfx:
|
- master
|
||||||
extends: [ .base_docfx, .base_rules ]
|
script:
|
||||||
needs: ["IOB-WIN-OPC-UA:build"]
|
- docfx $env:APP_NAME/docfx.json
|
||||||
variables:
|
- mv $env:APP_NAME/_site "docfx"
|
||||||
APP_NAME: IOB-WIN-OPC-UA
|
- *DocReplica
|
||||||
|
|
||||||
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
|
|
||||||
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
|
GETPRGNAME=true
|
||||||
|
|
||||||
[SERVER]
|
[SERVER]
|
||||||
MPIP=192.168.111.104
|
MPIP=192.168.0.113
|
||||||
MPURL=/MP/IO
|
MPURL=/MP/IO
|
||||||
CMDBASE=/IOB/input/
|
CMDBASE=/IOB/input/
|
||||||
CMDFLOG=/IOB/flog/
|
CMDFLOG=/IOB/flog/
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ PORT=8193
|
|||||||
GETPRGNAME=true
|
GETPRGNAME=true
|
||||||
|
|
||||||
[SERVER]
|
[SERVER]
|
||||||
MPIP=192.168.111.104
|
MPIP=192.168.0.113
|
||||||
MPURL=/MP/IO
|
MPURL=/MP/IO
|
||||||
CMDBASE=/IOB/input/
|
CMDBASE=/IOB/input/
|
||||||
CMDFLOG=/IOB/flog/
|
CMDFLOG=/IOB/flog/
|
||||||
|
|||||||
@@ -1,92 +0,0 @@
|
|||||||
namespace EgwCApp.Core
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Implementazione di riferimento x un file di configurazione x esecuzione task tramite EgwCApp
|
|
||||||
/// </summary>
|
|
||||||
public class ConfigFile
|
|
||||||
{
|
|
||||||
#region Public Properties
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Path Archivio dove depositare file ORIGINALI processati (se !="" vanno archiviati)
|
|
||||||
/// </summary>
|
|
||||||
public string ArchiveDir { get; set; } = "";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Path dove depositare file tradotti processati (se !="" vanno spostati li)
|
|
||||||
/// </summary>
|
|
||||||
public string ConvertDir { get; set; } = "";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Path file da processare
|
|
||||||
/// </summary>
|
|
||||||
public string FileInPath { get; set; } = "demoIn.txt";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Path file dove salvare
|
|
||||||
/// </summary>
|
|
||||||
public string FileOutPath { get; set; } = "";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// IdxODL da registrare
|
|
||||||
/// </summary>
|
|
||||||
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
|
|
||||||
/// </summary>
|
|
||||||
public Dictionary<string, int> ProcessParamInt { get; set; } = new Dictionary<string, int>();
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Parametri per processing file string --> string
|
|
||||||
/// </summary>
|
|
||||||
public Dictionary<string, string> ProcessParamStr { get; set; } = new Dictionary<string, string>();
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// DB Redis dove salvare
|
|
||||||
/// </summary>
|
|
||||||
public int RedisDB { get; set; } = 0;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Posizione Redis dove salvare (HashKey)
|
|
||||||
/// </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>
|
|
||||||
public ReturnMode Return { get; set; } = ReturnMode.ND;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Path file da processare
|
|
||||||
/// </summary>
|
|
||||||
public string TargetName { get; set; } = "";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Tipologia di iport da condurre
|
|
||||||
/// </summary>
|
|
||||||
public ImportType Type { get; set; } = ImportType.ND;
|
|
||||||
|
|
||||||
#endregion Public Properties
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net6.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="ExcelDataReader.DataSet" Version="3.6.0" />
|
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
|
|
||||||
<PackageReference Include="StackExchange.Redis" Version="2.6.86" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
using Newtonsoft.Json;
|
|
||||||
using Newtonsoft.Json.Converters;
|
|
||||||
|
|
||||||
namespace EgwCApp.Core
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Tipologia file da importare
|
|
||||||
/// </summary>
|
|
||||||
[JsonConverter(typeof(StringEnumConverter))]
|
|
||||||
public enum ImportType
|
|
||||||
{
|
|
||||||
ND = 0,
|
|
||||||
CSV,
|
|
||||||
Excel
|
|
||||||
}
|
|
||||||
|
|
||||||
[JsonConverter(typeof(StringEnumConverter))]
|
|
||||||
public enum rawTransfType
|
|
||||||
{
|
|
||||||
ND,
|
|
||||||
IcoelBatch,
|
|
||||||
IcoelVarInfo,
|
|
||||||
RegGiacenze,
|
|
||||||
TaglioUstd
|
|
||||||
}
|
|
||||||
|
|
||||||
[JsonConverter(typeof(StringEnumConverter))]
|
|
||||||
public enum OutDataType
|
|
||||||
{
|
|
||||||
ParamTaglioUstd,
|
|
||||||
RegGiacenze
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Modalità ritorno risultati
|
|
||||||
/// </summary>
|
|
||||||
[JsonConverter(typeof(StringEnumConverter))]
|
|
||||||
public enum ReturnMode
|
|
||||||
{
|
|
||||||
ND = 0,
|
|
||||||
Console,
|
|
||||||
File,
|
|
||||||
Redis
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,107 +0,0 @@
|
|||||||
using ExcelDataReader;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Data;
|
|
||||||
using System.IO;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace EgwCApp.Core
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Gestione lettura excel:
|
|
||||||
/// https://github.com/ExcelDataReader/ExcelDataReader
|
|
||||||
/// </summary>
|
|
||||||
public class ExcelMan
|
|
||||||
{
|
|
||||||
protected string _path { get; set; } = "";
|
|
||||||
/// <summary>
|
|
||||||
/// Avvio componente x il file indicato
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="filePath"></param>
|
|
||||||
public ExcelMan(string filePath)
|
|
||||||
{
|
|
||||||
// verifico esistenza file...
|
|
||||||
if (File.Exists(filePath))
|
|
||||||
{
|
|
||||||
_path = filePath;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public DataSet getDataSet()
|
|
||||||
{
|
|
||||||
DataSet result = new DataSet();
|
|
||||||
using (var stream = File.Open(_path, FileMode.Open, FileAccess.Read))
|
|
||||||
{
|
|
||||||
// Auto-detect format, supports:
|
|
||||||
// - Binary Excel files (2.0-2003 format; *.xls)
|
|
||||||
// - OpenXml Excel files (2007 format; *.xlsx, *.xlsb)
|
|
||||||
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
|
|
||||||
using (var reader = ExcelReaderFactory.CreateReader(stream))
|
|
||||||
{
|
|
||||||
// 2. Use the AsDataSet extension method
|
|
||||||
//result = reader.AsDataSet();
|
|
||||||
// The result of each spreadsheet is in result.Tables
|
|
||||||
|
|
||||||
// modalità lettura con intestazione
|
|
||||||
result = reader.AsDataSet(new ExcelDataSetConfiguration()
|
|
||||||
{
|
|
||||||
ConfigureDataTable = (_) => new ExcelDataTableConfiguration()
|
|
||||||
{
|
|
||||||
UseHeaderRow = true
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
#if false
|
|
||||||
result = reader.AsDataSet();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
public IExcelDataReader getExcelReader()
|
|
||||||
{
|
|
||||||
// ExcelDataReader works with the binary Excel file, so it needs a FileStream
|
|
||||||
// to get started. This is how we avoid dependencies on ACE or Interop:
|
|
||||||
FileStream stream = File.Open(_path, FileMode.Open, FileAccess.Read);
|
|
||||||
|
|
||||||
// We return the interface, so that
|
|
||||||
IExcelDataReader reader = null;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (_path.EndsWith(".xls"))
|
|
||||||
{
|
|
||||||
reader = ExcelReaderFactory.CreateBinaryReader(stream);
|
|
||||||
}
|
|
||||||
if (_path.EndsWith(".xlsx"))
|
|
||||||
{
|
|
||||||
reader = ExcelReaderFactory.CreateOpenXmlReader(stream);
|
|
||||||
}
|
|
||||||
return reader;
|
|
||||||
}
|
|
||||||
catch (Exception)
|
|
||||||
{
|
|
||||||
throw;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public IEnumerable<string> getWorksheetNames()
|
|
||||||
{
|
|
||||||
var reader = this.getExcelReader();
|
|
||||||
var workbook = reader.AsDataSet();
|
|
||||||
var sheets = from DataTable sheet in workbook.Tables select sheet.TableName;
|
|
||||||
return sheets;
|
|
||||||
}
|
|
||||||
|
|
||||||
public IEnumerable<DataRow> getData(string sheet, bool firstRowIsColumnNames = true)
|
|
||||||
{
|
|
||||||
var reader = this.getExcelReader();
|
|
||||||
//reader.IsFirstRowAsColumnNames = firstRowIsColumnNames;
|
|
||||||
var workSheet = reader.AsDataSet().Tables[sheet];
|
|
||||||
var rows = from DataRow a in workSheet.Rows select a;
|
|
||||||
return rows;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,155 +0,0 @@
|
|||||||
using StackExchange.Redis;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace EgwCApp.Core
|
|
||||||
{
|
|
||||||
public class RedisMan
|
|
||||||
{
|
|
||||||
#region Public Constructors
|
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion Public Constructors
|
|
||||||
|
|
||||||
#region Public Properties
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Oggetto DB REDIS corrente
|
|
||||||
/// </summary>
|
|
||||||
public IDatabase cache
|
|
||||||
{
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <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)
|
|
||||||
{
|
|
||||||
string answ = "";
|
|
||||||
try
|
|
||||||
{
|
|
||||||
answ = cache.StringGet(chiave);
|
|
||||||
}
|
|
||||||
catch (Exception exc)
|
|
||||||
{
|
|
||||||
#if false
|
|
||||||
Logging.Instance.Info($"getRSV {exc}");
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
return answ;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <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,28 +0,0 @@
|
|||||||
namespace EgwCApp.Core
|
|
||||||
{
|
|
||||||
public class WharehouseData
|
|
||||||
{
|
|
||||||
#region Public Classes
|
|
||||||
|
|
||||||
public class BatchRec
|
|
||||||
{
|
|
||||||
#region Public Properties
|
|
||||||
|
|
||||||
public DateTime DateRif { get; set; } = DateTime.Today;
|
|
||||||
public string ExtDoc { get; set; } = "Doc";
|
|
||||||
public string IdentRG { get; set; } = "NA";
|
|
||||||
public int IdxODL { get; set; } = 0;
|
|
||||||
public string Notes { get; set; } = "Notes";
|
|
||||||
public int NumPack { get; set; } = 0;
|
|
||||||
public string Product { get; set; } = "Prod";
|
|
||||||
|
|
||||||
public double QtyTot { get; set; } = 0.0;
|
|
||||||
public string Supplier { get; set; } = "Suppl";
|
|
||||||
public string Variety { get; set; } = "Var";
|
|
||||||
|
|
||||||
#endregion Public Properties
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion Public Classes
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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.Testing", "EgwCApp.Testing\EgwCApp.Testing.csproj", "{E37013B7-E5C6-48ED-8051-0BA5F29CB234}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EgwCApp.ExcImport", "EgwCApp.ExcImport\EgwCApp.ExcImport.csproj", "{D689CB4E-14DB-4CD4-B0D6-D2029219EF7E}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EgwCApp.Core", "EgwCApp.Core\EgwCApp.Core.csproj", "{DF02D478-2309-48B8-BF0D-90B02327AF02}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Any CPU = Debug|Any CPU
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{E37013B7-E5C6-48ED-8051-0BA5F29CB234}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{E37013B7-E5C6-48ED-8051-0BA5F29CB234}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{E37013B7-E5C6-48ED-8051-0BA5F29CB234}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{E37013B7-E5C6-48ED-8051-0BA5F29CB234}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{D689CB4E-14DB-4CD4-B0D6-D2029219EF7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{D689CB4E-14DB-4CD4-B0D6-D2029219EF7E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{D689CB4E-14DB-4CD4-B0D6-D2029219EF7E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{D689CB4E-14DB-4CD4-B0D6-D2029219EF7E}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{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
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
SolutionGuid = {2AF3181F-288A-47D5-8087-2AB660476D85}
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>net6.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
<AssemblyName>ExcImport</AssemblyName>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
|
|
||||||
<PackageReference Include="StackExchange.Redis" Version="2.6.86" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\EgwCApp.Core\EgwCApp.Core.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<None Update="testConfExcel.json">
|
|
||||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<None Update="testConfCsv.json">
|
|
||||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<None Update="testConf.json">
|
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
@@ -1,571 +0,0 @@
|
|||||||
using EgwCApp.Core;
|
|
||||||
using Newtonsoft.Json;
|
|
||||||
using static EgwCApp.Core.UstdData;
|
|
||||||
using static EgwCApp.Core.WharehouseData;
|
|
||||||
|
|
||||||
namespace EgwCApp.ExcImport
|
|
||||||
{
|
|
||||||
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, taskConfig.ReturnDataType);
|
|
||||||
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:
|
|
||||||
// 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:
|
|
||||||
// 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))
|
|
||||||
{
|
|
||||||
// folder archivio con dataora...
|
|
||||||
string folderArch = Path.Combine(taskConfig.ArchiveDir, $"{DateTime.Now:yyyyMMdd_HHmmss}");
|
|
||||||
// verifico cartella archivio
|
|
||||||
if (!Directory.Exists(folderArch))
|
|
||||||
{
|
|
||||||
Directory.CreateDirectory(folderArch);
|
|
||||||
}
|
|
||||||
// sposto file
|
|
||||||
string fName = Path.GetFileName(taskConfig.FileInPath);
|
|
||||||
File.Move(taskConfig.FileInPath, Path.Combine(folderArch, 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, OutDataType outReq = OutDataType.RegGiacenze)
|
|
||||||
{
|
|
||||||
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...)
|
|
||||||
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} | codice: {codice} | date: {serie} | 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...
|
|
||||||
Formatting fMode = doIndent ? Formatting.Indented : Formatting.None;
|
|
||||||
var serVal = JsonConvert.SerializeObject(list2Send, fMode);
|
|
||||||
if (serVal != null && !string.IsNullOrEmpty(serVal))
|
|
||||||
{
|
|
||||||
outVal = serVal;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,69 +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.ExcImport;
|
|
||||||
using System.Diagnostics;
|
|
||||||
|
|
||||||
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();
|
|
||||||
// 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))
|
|
||||||
{
|
|
||||||
// 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!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#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,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,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,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,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"
|
|
||||||
}
|
|
||||||
@@ -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,42 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>net6.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
<AssemblyName>$(MSBuildProjectName)</AssemblyName>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
|
||||||
<DebugType>embedded</DebugType>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
|
|
||||||
<DebugType>embedded</DebugType>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Folder Include="Tools\" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\EgwCApp.Core\EgwCApp.Core.csproj" />
|
|
||||||
<ProjectReference Include="..\EgwCApp.ExcImport\EgwCApp.ExcImport.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<None Update="Tools\ExcImport.exe">
|
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
|
|
||||||
<Exec Command="preBuild.bat $(SolutionDir)EgwCApp.ExcImport\bin\Release\net6.0\win-x64\publish\ $(ProjectDir)Tools" />
|
|
||||||
</Target>
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
@@ -1,114 +0,0 @@
|
|||||||
using EgwCApp.Core;
|
|
||||||
using Newtonsoft.Json;
|
|
||||||
using System.Diagnostics;
|
|
||||||
|
|
||||||
namespace EgwCApp.Testing
|
|
||||||
{
|
|
||||||
public class FileProcMan
|
|
||||||
{
|
|
||||||
#region Public Constructors
|
|
||||||
|
|
||||||
public FileProcMan(string toolDir, string exeFileName)
|
|
||||||
{
|
|
||||||
this.confFileName = "conf.json";
|
|
||||||
this.baseDir = toolDir;
|
|
||||||
this.exeName = exeFileName;
|
|
||||||
appPath = Path.Combine(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.Testing;
|
|
||||||
|
|
||||||
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(), "conf_*.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,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,6 +0,0 @@
|
|||||||
@echo off
|
|
||||||
|
|
||||||
REM recupero versione compilata
|
|
||||||
ROBOCOPY %1 %2 *.exe /MIR
|
|
||||||
|
|
||||||
echo Eseguito restore CApp!
|
|
||||||
@@ -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,42 @@
|
|||||||
|
<?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>
|
||||||
|
</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,199 @@
|
|||||||
|
<?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.0\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>
|
||||||
|
<Private>True</Private>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.IO.Compression" />
|
||||||
|
<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>
|
||||||
|
<Private>True</Private>
|
||||||
|
<Private>True</Private>
|
||||||
|
</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>
|
||||||
|
<Private>True</Private>
|
||||||
|
<Private>True</Private>
|
||||||
|
</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>
|
||||||
|
<Private>True</Private>
|
||||||
|
<Private>True</Private>
|
||||||
|
</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" />
|
||||||
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
|
<PropertyGroup>
|
||||||
|
<ErrorText>Questo progetto fa riferimento a uno o più pacchetti NuGet che non sono presenti in questo computer. Usare lo strumento di ripristino dei pacchetti NuGet per scaricarli. Per altre informazioni, vedere http://go.microsoft.com/fwlink/?LinkID=322105. Il file mancante è {0}.</ErrorText>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.props'))" />
|
||||||
|
<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.0\build\net46\Microsoft.Data.SqlClient.SNI.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Data.SqlClient.SNI.4.0.0\build\net46\Microsoft.Data.SqlClient.SNI.targets'))" />
|
||||||
|
</Target>
|
||||||
|
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.targets" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" />
|
||||||
|
<Import Project="..\packages\Microsoft.Data.SqlClient.SNI.4.0.0\build\net46\Microsoft.Data.SqlClient.SNI.targets" Condition="Exists('..\packages\Microsoft.Data.SqlClient.SNI.4.0.0\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,36 @@
|
|||||||
|
<?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.0" targetFramework="net462" />
|
||||||
|
<package id="Microsoft.Data.SqlClient.SNI" version="4.0.0" 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.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,20 @@
|
|||||||
|
<?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>
|
||||||
|
</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,19 @@
|
|||||||
|
<?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>
|
||||||
|
</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,73 @@
|
|||||||
|
<?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>
|
||||||
|
</assemblyBinding>
|
||||||
|
</runtime>
|
||||||
|
</configuration>
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
<?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.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>
|
||||||
|
</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>
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="INI\" />
|
||||||
|
</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,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,59 @@
|
|||||||
|
<?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>
|
||||||
|
</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
@@ -0,0 +1,373 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<xs:schema xmlns:ser="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:tns="uri:Compac.Services.Sizer.Service" elementFormDefault="qualified" targetNamespace="uri:Compac.Services.Sizer.Service" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||||
|
<xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
|
||||||
|
<xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
|
||||||
|
<xs:complexType name="ArrayOfBatch">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" maxOccurs="unbounded" name="Batch" nillable="true" type="tns:Batch" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="ArrayOfBatch" nillable="true" type="tns:ArrayOfBatch" />
|
||||||
|
<xs:complexType name="Batch">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" name="AvoidLayoutChange" type="xs:boolean" />
|
||||||
|
<xs:element minOccurs="0" name="AvoidSavingOldLayouts" type="xs:boolean" />
|
||||||
|
<xs:element xmlns:q1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="Comments" nillable="true" type="q1:ArrayOfstring" />
|
||||||
|
<xs:element minOccurs="0" name="EndTime" type="xs:dateTime" />
|
||||||
|
<xs:element minOccurs="0" name="GrowerCode" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="Id" type="xs:int" />
|
||||||
|
<xs:element minOccurs="0" name="IsFinalized" type="xs:boolean" />
|
||||||
|
<xs:element minOccurs="0" name="LaneGroups" nillable="true" type="tns:ArrayOfLaneGroup" />
|
||||||
|
<xs:element minOccurs="0" name="LayoutId" type="ser:guid" />
|
||||||
|
<xs:element minOccurs="0" name="LayoutName" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="OverrideLayoutConflicts" type="xs:boolean" />
|
||||||
|
<xs:element minOccurs="0" name="SampleName" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="SizingProfileName" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="StartTime" type="xs:dateTime" />
|
||||||
|
<xs:element minOccurs="0" name="TotallingVariety" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="TotallingVarietyCode" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="VarietyId" type="ser:guid" />
|
||||||
|
<xs:element minOccurs="0" name="VarietyName" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="VisionMap" type="xs:int" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="Batch" nillable="true" type="tns:Batch" />
|
||||||
|
<xs:complexType name="ArrayOfLaneGroup">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" maxOccurs="unbounded" name="LaneGroup" nillable="true" type="tns:LaneGroup" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="ArrayOfLaneGroup" nillable="true" type="tns:ArrayOfLaneGroup" />
|
||||||
|
<xs:complexType name="LaneGroup">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element xmlns:q2="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="Lanes" nillable="true" type="q2:ArrayOfint" />
|
||||||
|
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="LaneGroup" nillable="true" type="tns:LaneGroup" />
|
||||||
|
<xs:complexType name="ArrayOfLayout">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" maxOccurs="unbounded" name="Layout" nillable="true" type="tns:Layout" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="ArrayOfLayout" nillable="true" type="tns:ArrayOfLayout" />
|
||||||
|
<xs:complexType name="Layout">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element xmlns:q3="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="Assignments" nillable="true" type="q3:ArrayOfKeyValueOfOutletProductZE8EwetR" />
|
||||||
|
<xs:element minOccurs="0" name="Id" type="ser:guid" />
|
||||||
|
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="Products" nillable="true" type="tns:ArrayOfProduct" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="Layout" nillable="true" type="tns:Layout" />
|
||||||
|
<xs:complexType name="Outlet">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" name="CurrentProductId" type="ser:guid" />
|
||||||
|
<xs:element minOccurs="0" name="DeliveredFruitPerMinute" type="xs:double" />
|
||||||
|
<xs:element minOccurs="0" name="Id" type="xs:int" />
|
||||||
|
<xs:element minOccurs="0" name="LastDeliveredBatchId" type="xs:int" />
|
||||||
|
<xs:element minOccurs="0" name="MaxRateSquareCMPerMinute" type="xs:int" />
|
||||||
|
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="PendingProductId" nillable="true" type="ser:guid" />
|
||||||
|
<xs:element minOccurs="0" name="Status" nillable="true" type="xs:string" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="Outlet" nillable="true" type="tns:Outlet" />
|
||||||
|
<xs:complexType name="Product">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" name="DisplayName" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="Elements" nillable="true" type="tns:ArrayOfElement" />
|
||||||
|
<xs:element minOccurs="0" name="Id" type="ser:guid" />
|
||||||
|
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="Pack" nillable="true" type="tns:Pack" />
|
||||||
|
<xs:element minOccurs="0" name="SpecialInstructions" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="TargetFill" nillable="true" type="tns:PackTargetFill" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="Product" nillable="true" type="tns:Product" />
|
||||||
|
<xs:complexType name="ArrayOfElement">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" maxOccurs="unbounded" name="Element" nillable="true" type="tns:Element" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="ArrayOfElement" nillable="true" type="tns:ArrayOfElement" />
|
||||||
|
<xs:complexType name="Element">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" name="Grade" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="Label" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="Quality" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="Size" nillable="true" type="xs:string" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="Element" nillable="true" type="tns:Element" />
|
||||||
|
<xs:complexType name="Pack">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" name="BoxType" nillable="true" type="tns:PackBoxType" />
|
||||||
|
<xs:element minOccurs="0" name="Id" type="ser:guid" />
|
||||||
|
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="PackControl" nillable="true" type="tns:PackControl" />
|
||||||
|
<xs:element minOccurs="0" name="Style" nillable="true" type="tns:PackingStyle" />
|
||||||
|
<xs:element minOccurs="0" name="TargetFill" nillable="true" type="tns:PackTargetFill" />
|
||||||
|
<xs:element minOccurs="0" name="UserCode" type="xs:int" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="Pack" nillable="true" type="tns:Pack" />
|
||||||
|
<xs:complexType name="PackBoxType">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" name="DisplayName" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="Type" nillable="true" type="xs:string" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="PackBoxType" nillable="true" type="tns:PackBoxType" />
|
||||||
|
<xs:complexType name="PackControl">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" name="NumberOfSteps" type="xs:int" />
|
||||||
|
<xs:element minOccurs="0" name="PackChangeTime" type="xs:int" />
|
||||||
|
<xs:element minOccurs="0" name="PackLength" type="xs:int" />
|
||||||
|
<xs:element minOccurs="0" name="StepDelay" type="xs:int" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="PackControl" nillable="true" type="tns:PackControl" />
|
||||||
|
<xs:complexType name="PackingStyle">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" name="DisplayName" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="PackingStyle" nillable="true" type="tns:PackingStyle" />
|
||||||
|
<xs:complexType name="PackTargetFill">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" name="FillMode" type="tns:PackFillMode" />
|
||||||
|
<xs:element minOccurs="0" name="Quantity" type="xs:int" />
|
||||||
|
<xs:element minOccurs="0" name="WeightDecigram" type="xs:decimal" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="PackTargetFill" nillable="true" type="tns:PackTargetFill" />
|
||||||
|
<xs:simpleType name="PackFillMode">
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value="Weight" />
|
||||||
|
<xs:enumeration value="Quantity" />
|
||||||
|
<xs:enumeration value="WeightAndQuantity" />
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:element name="PackFillMode" nillable="true" type="tns:PackFillMode" />
|
||||||
|
<xs:complexType name="ArrayOfProduct">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" maxOccurs="unbounded" name="Product" nillable="true" type="tns:Product" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="ArrayOfProduct" nillable="true" type="tns:ArrayOfProduct" />
|
||||||
|
<xs:complexType name="Variety">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" name="Grades" nillable="true" type="tns:ArrayOfGrade" />
|
||||||
|
<xs:element minOccurs="0" name="Id" type="ser:guid" />
|
||||||
|
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="Qualities" nillable="true" type="tns:ArrayOfQuality" />
|
||||||
|
<xs:element minOccurs="0" name="SizingMaps" nillable="true" type="tns:ArrayOfSizingMap" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="Variety" nillable="true" type="tns:Variety" />
|
||||||
|
<xs:complexType name="ArrayOfGrade">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" maxOccurs="unbounded" name="Grade" nillable="true" type="tns:Grade" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="ArrayOfGrade" nillable="true" type="tns:ArrayOfGrade" />
|
||||||
|
<xs:complexType name="Grade">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="Grade" nillable="true" type="tns:Grade" />
|
||||||
|
<xs:complexType name="ArrayOfQuality">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" maxOccurs="unbounded" name="Quality" nillable="true" type="tns:Quality" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="ArrayOfQuality" nillable="true" type="tns:ArrayOfQuality" />
|
||||||
|
<xs:complexType name="Quality">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="Quality" nillable="true" type="tns:Quality" />
|
||||||
|
<xs:complexType name="ArrayOfSizingMap">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" maxOccurs="unbounded" name="SizingMap" nillable="true" type="tns:SizingMap" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="ArrayOfSizingMap" nillable="true" type="tns:ArrayOfSizingMap" />
|
||||||
|
<xs:complexType name="SizingMap">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" name="CoveredQualityGrades" nillable="true" type="tns:ArrayOfQualityGradePair" />
|
||||||
|
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="Sizes" nillable="true" type="tns:ArrayOfSize" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="SizingMap" nillable="true" type="tns:SizingMap" />
|
||||||
|
<xs:complexType name="ArrayOfQualityGradePair">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" maxOccurs="unbounded" name="QualityGradePair" nillable="true" type="tns:QualityGradePair" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="ArrayOfQualityGradePair" nillable="true" type="tns:ArrayOfQualityGradePair" />
|
||||||
|
<xs:complexType name="QualityGradePair">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" name="Grade" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="Quality" nillable="true" type="xs:string" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="QualityGradePair" nillable="true" type="tns:QualityGradePair" />
|
||||||
|
<xs:complexType name="ArrayOfSize">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" maxOccurs="unbounded" name="Size" nillable="true" type="tns:Size" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="ArrayOfSize" nillable="true" type="tns:ArrayOfSize" />
|
||||||
|
<xs:complexType name="Size">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
|
||||||
|
<xs:element xmlns:q4="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="Settings" nillable="true" type="q4:ArrayOfKeyValueOfstringstring" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="Size" nillable="true" type="tns:Size" />
|
||||||
|
<xs:complexType name="ArrayOfVariety">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" maxOccurs="unbounded" name="Variety" nillable="true" type="tns:Variety" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="ArrayOfVariety" nillable="true" type="tns:ArrayOfVariety" />
|
||||||
|
<xs:complexType name="ArrayOfPack">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" maxOccurs="unbounded" name="Pack" nillable="true" type="tns:Pack" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="ArrayOfPack" nillable="true" type="tns:ArrayOfPack" />
|
||||||
|
<xs:complexType name="ArrayOfLabel">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" maxOccurs="unbounded" name="Label" nillable="true" type="tns:Label" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="ArrayOfLabel" nillable="true" type="tns:ArrayOfLabel" />
|
||||||
|
<xs:complexType name="Label">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" name="DisplayName" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="Label" nillable="true" type="tns:Label" />
|
||||||
|
<xs:complexType name="ArrayOfOutlet">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" maxOccurs="unbounded" name="Outlet" nillable="true" type="tns:Outlet" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="ArrayOfOutlet" nillable="true" type="tns:ArrayOfOutlet" />
|
||||||
|
<xs:simpleType name="AlarmPriority">
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value="Low" />
|
||||||
|
<xs:enumeration value="Medium" />
|
||||||
|
<xs:enumeration value="High" />
|
||||||
|
<xs:enumeration value="Critical" />
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:element name="AlarmPriority" nillable="true" type="tns:AlarmPriority" />
|
||||||
|
<xs:complexType name="Grower">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" name="Address1" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="Address2" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="Code" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="ContactName" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="Country" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="EmailAddress" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="Fax" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="Mobile" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="Phone" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="State" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="TownCity" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="TraceabilityId" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="ZipCode" nillable="true" type="xs:string" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="Grower" nillable="true" type="tns:Grower" />
|
||||||
|
<xs:complexType name="ArrayOfGrower">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" maxOccurs="unbounded" name="Grower" nillable="true" type="tns:Grower" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="ArrayOfGrower" nillable="true" type="tns:ArrayOfGrower" />
|
||||||
|
<xs:complexType name="AbstractSamplingConfiguration">
|
||||||
|
<xs:sequence />
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="AbstractSamplingConfiguration" nillable="true" type="tns:AbstractSamplingConfiguration" />
|
||||||
|
<xs:complexType name="ElementSamplingConfiguration">
|
||||||
|
<xs:complexContent mixed="false">
|
||||||
|
<xs:extension base="tns:AbstractSamplingConfiguration">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" name="BatchId" type="xs:int" />
|
||||||
|
<xs:element minOccurs="0" name="Elements" nillable="true" type="tns:ArrayOfElement" />
|
||||||
|
<xs:element minOccurs="0" name="Limit" nillable="true" type="xs:decimal" />
|
||||||
|
<xs:element minOccurs="0" name="LimitUnit" type="tns:SamplingMeasurementUnit" />
|
||||||
|
<xs:element minOccurs="0" name="Ratio" nillable="true" type="tns:Ratio" />
|
||||||
|
<xs:element minOccurs="0" name="RatioRightUnit" type="tns:RatioMeasurementUnit" />
|
||||||
|
<xs:element xmlns:q5="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="LaneNumbers" nillable="true" type="q5:ArrayOfint" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:complexContent>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="ElementSamplingConfiguration" nillable="true" type="tns:ElementSamplingConfiguration" />
|
||||||
|
<xs:simpleType name="SamplingMeasurementUnit">
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value="Pieces" />
|
||||||
|
<xs:enumeration value="Decigrams" />
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:element name="SamplingMeasurementUnit" nillable="true" type="tns:SamplingMeasurementUnit" />
|
||||||
|
<xs:complexType name="Ratio">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" name="Numerator" type="xs:int" />
|
||||||
|
<xs:element minOccurs="0" name="Denominator" type="xs:int" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="Ratio" nillable="true" type="tns:Ratio" />
|
||||||
|
<xs:simpleType name="RatioMeasurementUnit">
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value="Pieces" />
|
||||||
|
<xs:enumeration value="CartonEquivalents" />
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:element name="RatioMeasurementUnit" nillable="true" type="tns:RatioMeasurementUnit" />
|
||||||
|
<xs:complexType name="ProductSamplingConfiguration">
|
||||||
|
<xs:complexContent mixed="false">
|
||||||
|
<xs:extension base="tns:AbstractSamplingConfiguration">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" name="BatchId" type="xs:int" />
|
||||||
|
<xs:element xmlns:q6="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="LaneNumbers" nillable="true" type="q6:ArrayOfint" />
|
||||||
|
<xs:element minOccurs="0" name="Limit" nillable="true" type="xs:decimal" />
|
||||||
|
<xs:element minOccurs="0" name="LimitUnit" type="tns:SamplingMeasurementUnit" />
|
||||||
|
<xs:element minOccurs="0" name="ProductId" type="ser:guid" />
|
||||||
|
<xs:element minOccurs="0" name="Ratio" nillable="true" type="tns:Ratio" />
|
||||||
|
<xs:element minOccurs="0" name="RatioRightUnit" type="tns:RatioMeasurementUnit" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:complexContent>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="ProductSamplingConfiguration" nillable="true" type="tns:ProductSamplingConfiguration" />
|
||||||
|
<xs:complexType name="ArrayOfSamplingProgress">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" maxOccurs="unbounded" name="SamplingProgress" nillable="true" type="tns:SamplingProgress" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="ArrayOfSamplingProgress" nillable="true" type="tns:ArrayOfSamplingProgress" />
|
||||||
|
<xs:complexType name="SamplingProgress">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element minOccurs="0" name="CurrentCount" type="xs:decimal" />
|
||||||
|
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="TargetCount" nillable="true" type="xs:decimal" />
|
||||||
|
<xs:element minOccurs="0" name="Unit" type="tns:SamplingMeasurementUnit" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:element name="SamplingProgress" nillable="true" type="tns:SamplingProgress" />
|
||||||
|
</xs:schema>
|
||||||
+10
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
This file is automatically generated by Visual Studio .Net. It is
|
||||||
|
used to store generic object data source configuration information.
|
||||||
|
Renaming the file extension or editing the content of this file may
|
||||||
|
cause the file to be unrecognizable by the program.
|
||||||
|
-->
|
||||||
|
<GenericObjectDataSource DisplayName="AbstractSamplingConfiguration" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
|
||||||
|
<TypeInfo>EgwProxy.Icoel.SizerService.AbstractSamplingConfiguration, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
|
||||||
|
</GenericObjectDataSource>
|
||||||
+10
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
This file is automatically generated by Visual Studio .Net. It is
|
||||||
|
used to store generic object data source configuration information.
|
||||||
|
Renaming the file extension or editing the content of this file may
|
||||||
|
cause the file to be unrecognizable by the program.
|
||||||
|
-->
|
||||||
|
<GenericObjectDataSource DisplayName="Batch" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
|
||||||
|
<TypeInfo>EgwProxy.Icoel.SizerService.Batch, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
|
||||||
|
</GenericObjectDataSource>
|
||||||
+10
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
This file is automatically generated by Visual Studio .Net. It is
|
||||||
|
used to store generic object data source configuration information.
|
||||||
|
Renaming the file extension or editing the content of this file may
|
||||||
|
cause the file to be unrecognizable by the program.
|
||||||
|
-->
|
||||||
|
<GenericObjectDataSource DisplayName="GetVersionResponse" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
|
||||||
|
<TypeInfo>EgwProxy.Icoel.SizerService.GetVersionResponse, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
|
||||||
|
</GenericObjectDataSource>
|
||||||
+10
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
This file is automatically generated by Visual Studio .Net. It is
|
||||||
|
used to store generic object data source configuration information.
|
||||||
|
Renaming the file extension or editing the content of this file may
|
||||||
|
cause the file to be unrecognizable by the program.
|
||||||
|
-->
|
||||||
|
<GenericObjectDataSource DisplayName="Grower" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
|
||||||
|
<TypeInfo>EgwProxy.Icoel.SizerService.Grower, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
|
||||||
|
</GenericObjectDataSource>
|
||||||
+10
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
This file is automatically generated by Visual Studio .Net. It is
|
||||||
|
used to store generic object data source configuration information.
|
||||||
|
Renaming the file extension or editing the content of this file may
|
||||||
|
cause the file to be unrecognizable by the program.
|
||||||
|
-->
|
||||||
|
<GenericObjectDataSource DisplayName="Label" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
|
||||||
|
<TypeInfo>EgwProxy.Icoel.SizerService.Label, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
|
||||||
|
</GenericObjectDataSource>
|
||||||
+10
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
This file is automatically generated by Visual Studio .Net. It is
|
||||||
|
used to store generic object data source configuration information.
|
||||||
|
Renaming the file extension or editing the content of this file may
|
||||||
|
cause the file to be unrecognizable by the program.
|
||||||
|
-->
|
||||||
|
<GenericObjectDataSource DisplayName="LaneGroup" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
|
||||||
|
<TypeInfo>EgwProxy.Icoel.SizerService.LaneGroup, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
|
||||||
|
</GenericObjectDataSource>
|
||||||
+10
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
This file is automatically generated by Visual Studio .Net. It is
|
||||||
|
used to store generic object data source configuration information.
|
||||||
|
Renaming the file extension or editing the content of this file may
|
||||||
|
cause the file to be unrecognizable by the program.
|
||||||
|
-->
|
||||||
|
<GenericObjectDataSource DisplayName="Layout" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
|
||||||
|
<TypeInfo>EgwProxy.Icoel.SizerService.Layout, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
|
||||||
|
</GenericObjectDataSource>
|
||||||
+10
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
This file is automatically generated by Visual Studio .Net. It is
|
||||||
|
used to store generic object data source configuration information.
|
||||||
|
Renaming the file extension or editing the content of this file may
|
||||||
|
cause the file to be unrecognizable by the program.
|
||||||
|
-->
|
||||||
|
<GenericObjectDataSource DisplayName="Outlet" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
|
||||||
|
<TypeInfo>EgwProxy.Icoel.SizerService.Outlet, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
|
||||||
|
</GenericObjectDataSource>
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user