737 Commits

Author SHA1 Message Date
Samuele Locatelli 5442ca494a Merge branch 'develop' into SDK/Icoel 2023-09-07 08:16:15 +02:00
Samuele Locatelli 68b819e430 Update conf x package icoel (rimozione massiva!!!) 2023-09-07 08:16:09 +02:00
Samuele Locatelli e8812faad2 Update riferimenti x autobinding redirect 2023-09-07 08:10:02 +02:00
Samuele Locatelli 4825b10e35 code cleanup 2023-09-06 19:24:14 +02:00
Samuele Locatelli 7e825d0e93 Ancora update nuget 2023-09-06 19:21:55 +02:00
Samuele Locatelli 2b81645350 Merge branch 'develop' into SDK/Icoel 2023-09-06 19:02:04 +02:00
Samuele Locatelli 924519f157 Ancora update nuget x ProxyIcoel 2023-09-06 19:01:59 +02:00
Samuele Locatelli a5a46a7a41 Merge branch 'develop' into SDK/Icoel 2023-09-06 18:53:21 +02:00
Samuele Locatelli 24ff59aeb8 Update nuget EgwProxyIcoel 2023-09-06 18:51:25 +02:00
Samuele Locatelli eb4655edbd Inizio fix warning compilazione 2023-09-06 18:43:50 +02:00
Samuele Locatelli 9be445273e Merge tag 'FixPingReadPlc04' into develop
Update gestione ping aggiornata
2023-09-06 18:08:10 +02:00
Samuele Locatelli 87f7288c08 Merge branch 'release/FixPingReadPlc04' 2023-09-06 18:08:01 +02:00
Samuele Locatelli 4f21fc3b94 Ancora update PING x ritorno online 2023-09-06 18:07:45 +02:00
Samuele Locatelli 3e9a96861f Merge tag 'FixPingReadPlc03' into develop
Tentativo fix ping IOB
2023-09-06 15:35:39 +02:00
Samuele Locatelli 4d0353cd83 Merge branch 'release/FixPingReadPlc03' 2023-09-06 15:35:30 +02:00
Samuele Locatelli 13c10dc0dc Ancor amodifica ocmportamento PING 2023-09-06 15:35:12 +02:00
Samuele Locatelli 5f5b89e445 Merge tag 'FixPingReadPlc02' into develop
Timeout last ping rivisto
2023-09-06 11:50:50 +02:00
Samuele Locatelli eddec0566a Merge branch 'release/FixPingReadPlc02' 2023-09-06 11:50:43 +02:00
Samuele Locatelli f78c1422be Ancora update ping x timeout primo ping 2023-09-06 11:50:24 +02:00
Samuele Locatelli 25fa766aeb Merge tag 'FixPingReadPlc01' into develop
Fix gestione lastConnectPLC x ping adapter
2023-09-06 10:52:48 +02:00
Samuele Locatelli 9f6d5a80da Merge branch 'release/FixPingReadPlc01' 2023-09-06 10:50:51 +02:00
Samuele Locatelli bb14c275d5 Update ping x aggiornamento variabile lastreadPLC 2023-09-06 10:50:27 +02:00
Samuele Locatelli 9a70d3806f Merge tag 'FixPingDisconnectOnLoad01' into develop
Fix ping adapter x disconnessioni all'avvio
2023-09-05 14:48:01 +02:00
Samuele Locatelli 22fbc5c763 Merge branch 'release/FixPingDisconnectOnLoad01' 2023-09-05 14:47:46 +02:00
Samuele Locatelli 7e819f39ad Update PING adapter
- check errate disconnessioni immediate
- check con/senza ODL
2023-09-05 14:47:20 +02:00
Samuele Locatelli 845567ca33 Merge tag 'UpdateSeleniumNuget01' into develop
update selenium drivers
2023-07-31 17:17:31 +02:00
Samuele Locatelli d0c14f17fd Merge branch 'release/UpdateSeleniumNuget01' 2023-07-31 17:17:22 +02:00
Samuele Locatelli 6ae0a594e6 update nuget selenium IDE x MAPO 2023-07-31 17:14:23 +02:00
Samuele Locatelli 458d378c12 Update conf x export fixed-width AS400 2023-07-26 19:06:50 +02:00
Samuele Locatelli d5f041756b Update conf consumi x Tenditalia (errore nome colonne) 2023-07-24 16:14:04 +02:00
Samuele Locatelli ed93c4d123 Merge tag 'AddOutputFixWidth_AS400' into develop
completato merge versione FIMAT x Tenditalia con output AS400 in fixed
width
2023-07-19 15:22:34 +02:00
Samuele Locatelli a2423c157d Merge branch 'release/AddOutputFixWidth_AS400' 2023-07-19 15:22:15 +02:00
Samuele Locatelli 86a7bdc912 Update conf x FIMAT Tenditalia effettivo 2023-07-19 15:21:46 +02:00
Samuele Locatelli 604ab558fc Completata review gestione output FixedWidth x Tenditalia 2023-07-10 14:26:32 +02:00
Samuele Locatelli af461e1cbf Aggiunta PRELIMINARE funzionalità save fixedWidth 2023-07-10 13:36:33 +02:00
Samuele Locatelli b9c6bbcd82 Merge tag 'FixEmptyQueueOnClose01' into develop
Gestione condizione chiusura e svuotamento code (evitato se c'è redis
 queue)
2023-07-06 12:37:14 +02:00
Samuele Locatelli 73958c8573 Merge branch 'release/FixEmptyQueueOnClose01' 2023-07-06 12:36:59 +02:00
Samuele Locatelli fe9543681a Fix condizione uscita e send valori 2023-07-06 12:36:26 +02:00
Samuele Locatelli 56b5850b1a Merge tag 'AddRedisQueueOnSim02' into develop
Aggiornamento gestione Count x DataQueue (diminuzione op lettura)
2023-07-05 14:53:02 +02:00
Samuele Locatelli c5e4605de6 Merge branch 'release/AddRedisQueueOnSim02' 2023-07-05 14:52:20 +02:00
Samuele Locatelli 96be4bdf64 Update gestione Count x DataQueue 2023-07-05 14:51:59 +02:00
Samuele Locatelli ff1586b36d Merge tag 'AddRedisQueueOnSim' into develop
Aggiunta gestione coda redis e test in SIM
2023-07-05 14:10:50 +02:00
Samuele Locatelli 7abe80f7b0 Merge branch 'release/AddRedisQueueOnSim' 2023-07-05 14:10:42 +02:00
Samuele Locatelli 27d76311a0 Update conf x redis queue in SIM 2023-07-05 14:10:30 +02:00
Samuele Locatelli 88d65ae806 Update x gestione code REDIS/Memoria 2023-07-05 14:09:24 +02:00
Samuele Locatelli 03e2d68477 Refresh Stel 2023-07-05 10:25:35 +02:00
Samuele Locatelli d9de2b52d6 Merge tag 'UpdateSqlDbLantekPama01' into develop
Update x ritorno PODL con codice + data/ora eventi
2023-06-06 20:03:35 +02:00
Samuele Locatelli 6b73efa871 Merge branch 'release/UpdateSqlDbLantekPama01' 2023-06-06 20:03:19 +02:00
Samuele Locatelli 597597ef5b SqlDB:
- Update gestione Lantek x DB (ritorno PODL)
- Update PAMA x invio cod PODL
2023-06-06 20:02:22 +02:00
Samuele Locatelli c884e4886a Merge tag 'UpdateIcoelDbConf' into develop
Update x gestione corretta parametri DB/Server ICOEL
2023-05-31 14:35:50 +02:00
Samuele Locatelli d1eeb7f43e Merge branch 'release/UpdateIcoelDbConf' 2023-05-31 14:35:37 +02:00
Samuele Locatelli b644a9973f Update icoel DB:
- gest server + nome DB parametrica corretta
2023-05-31 14:35:19 +02:00
Samuele Locatelli a57fc701aa Merge tag 'UpdateInterclaysMixOxFe01' into develop
Update x OMRON Interclais impianto Mix OxFe
2023-05-18 18:58:22 +02:00
Samuele Locatelli 092e2cea15 Merge branch 'release/UpdateInterclaysMixOxFe01' 2023-05-18 18:58:02 +02:00
Samuele Locatelli b3db69f682 Interclays - OMRON:
- Update x gestione nuovi bit stato poweron / lavora x mix OxFe
2023-05-18 18:57:24 +02:00
Samuele Locatelli de7d55ac7d Merge tag 'FixOpcUaRebootToEmerg02' into develop
fix merge con remote x conf test
2023-05-16 09:41:19 +02:00
Samuele Locatelli cd49fe747c Merge branch 'release/FixOpcUaRebootToEmerg02' 2023-05-16 09:40:59 +02:00
Samuele Locatelli c987caf75e Merge branch 'develop' of https://gitlab.steamware.net/steamware/Mapo-IOB-WIN into develop 2023-05-16 09:40:31 +02:00
Samuele Locatelli de908b710c Merge tag 'FixOpcUarebootToEmerg' into develop
Fix reboot OPC-UA di Cimolai (andava in emergenza) --> fix ping ad ip
diverso da CNC...
2023-05-16 09:40:04 +02:00
Samuele Locatelli 5d83283178 Merge branch 'release/FixOpcUarebootToEmerg' 2023-05-16 09:39:45 +02:00
Samuele E. Locatelli 23143ff639 update x test baglietto, andata! 2023-05-16 09:38:41 +02:00
Samuele Locatelli 34ee4d48ab OPC-UA Cimolai:
- update x evitare errore in riavvio notturno che porta emergenza
2023-05-16 09:16:44 +02:00
Samuele Locatelli 9fdee19c7c Update x gestione nuovo campo ip di ping 2023-05-16 09:16:11 +02:00
Samuele Locatelli 2f2a1c5856 Merge tag 'ReorgIobFolders01' into develop
Riorganizzazione interna codice con folder e gruppi IOB
2023-04-27 14:54:59 +02:00
Samuele Locatelli 236b44a7d5 Merge branch 'release/ReorgIobFolders01' 2023-04-27 14:54:35 +02:00
Samuele Locatelli aac9d92780 CodeMaid reorg 2023-04-27 14:53:43 +02:00
Samuele Locatelli 6a214b937d Spostamento IobGenerici + refresh namespace base 2023-04-27 14:52:16 +02:00
Samuele Locatelli 5a46383da4 Fix area IobNet 2023-04-27 14:45:57 +02:00
Samuele Locatelli 5828994ee3 Reorg codice CodeMaid x IobSiemens 2023-04-27 14:42:57 +02:00
Samuele Locatelli 305af5c74d Update area IobSiemens 2023-04-27 14:34:44 +02:00
Samuele Locatelli dcf95e37ce CodeMaid cleanup x IobOpcUa 2023-04-27 14:30:09 +02:00
Samuele Locatelli b44092654c Modifica preliminare blocco IobOpcUa 2023-04-27 14:26:05 +02:00
Samuele Locatelli 7d4b9e8fdf Typo correction Beckhoff 2023-04-27 14:19:45 +02:00
Samuele Locatelli 4b1d5d9ba5 Update IobBeckhoff 2023-04-27 14:18:26 +02:00
Samuele Locatelli d32968950a reord codemaid 2023-04-27 13:06:55 +02:00
Samuele Locatelli 87a480132b Reord area SQL e Icoel (special/gen) 2023-04-27 13:05:50 +02:00
Samuele Locatelli b6f5df7cc0 CodeMain in area modBusTCP 2023-04-27 13:02:19 +02:00
Samuele Locatelli ee9d6bccd9 Riorganizzata area IobModbusTCP 2023-04-27 12:57:35 +02:00
Samuele Locatelli 020d48ef81 Riorganizzato area IobFile 2023-04-27 12:52:20 +02:00
Samuele Locatelli b5a10f0a4d Fix display valori 0 raw x SIG-IN 2023-04-27 12:40:59 +02:00
Samuele Locatelli 4fbd022656 Merge tag 'AddSoitaabFileAdapter01' into develop
Aggiunta adapter Soitaab file-based
2023-04-27 12:26:03 +02:00
Samuele Locatelli f7741afc30 Merge branch 'release/AddSoitaabFileAdapter01' 2023-04-27 12:25:54 +02:00
Samuele Locatelli 5aa295e892 Merge branch 'develop' of https://gitlab.steamware.net/steamware/Mapo-IOB-WIN into develop 2023-04-27 12:02:16 +02:00
Samuele Locatelli 05464488c2 update appunti 2023-04-27 12:02:10 +02:00
Samuele E. Locatelli 9c74816bab Aggiunto test ping preliminare 2023-04-27 12:00:59 +02:00
Samuele E. Locatelli e0847cd908 Update con correzioni check cartella 2023-04-27 11:58:30 +02:00
Samuele Locatelli 916939ac04 Reorg code Lantek 2023-04-27 11:14:10 +02:00
Samuele Locatelli ff43684c34 Eliminati riferimenti metodi file-based x LANTEK 2023-04-27 11:13:56 +02:00
Samuele Locatelli 10f24fd8a9 Ancora update adapter 2023-04-27 11:10:38 +02:00
Samuele Locatelli 7fe9041597 Update adapter file soitaab (2 test!) 2023-04-27 11:10:30 +02:00
Samuele Locatelli d0abff101f inizio riscrittura adapter file Soitaab 2023-04-27 10:57:39 +02:00
Samuele Locatelli f0cd2524cf Riorganizzazione file conf x SOITAAB x splittare in 2 IOB 2023-04-27 10:56:16 +02:00
Samuele E. Locatelli c593e804a7 Aggiunta appunti 2023-04-24 12:11:36 +02:00
Samuele E. Locatelli c35950da01 Merge tag 'TesLantekSoitaab03' into develop
Update con testing invio stati da lettura logFile --> OK!
2023-04-24 12:04:39 +02:00
Samuele E. Locatelli 4f56bfefba Merge branch 'release/TesLantekSoitaab03' 2023-04-24 12:04:19 +02:00
Samuele E. Locatelli 10cda086d2 Update SOITAAB:
- ok decodifica sstati "oggi" da file
- possibile rilettura dati vecchi (ma a che pro?)
- da dividere in 2 una volta saputo cosa dice lantek
2023-04-24 12:03:40 +02:00
Samuele E. Locatelli b31ade6b6a fix test null x logfile 2023-04-24 11:33:26 +02:00
Samuele E. Locatelli 5730bfa154 update conf x test online soitaab 2023-04-24 11:32:48 +02:00
Samuele E. Locatelli c8f2572f51 Update x inizio sdoppiamento tra adapter SQL lantek e adapter file-based soitaab 2023-04-24 10:10:21 +02:00
Samuele E. Locatelli 71c8a26ac8 Update x fluxLog da SoiTaab 2023-04-24 09:37:36 +02:00
Samuele E. Locatelli 9a348bef64 completato review x lettura log e generare FluxLog + SigLog 2023-04-21 17:00:15 +02:00
Samuele E. Locatelli 62cf634c95 Ok confronto righe vecchie/nuove nel log... 2023-04-21 16:02:47 +02:00
Samuele E. Locatelli 789defb69d update x acquisizione logtable da SOITAAB 2023-04-21 15:14:37 +02:00
Samuele E. Locatelli a10d23b131 Merge tag 'TesLantekSoitaab02' into develop
Fix gestione file csproj sballato
2023-04-21 09:39:45 +02:00
Samuele E. Locatelli a75726bdad Merge branch 'release/TesLantekSoitaab02' 2023-04-21 09:39:29 +02:00
Samuele E. Locatelli 06d05b8d95 fix *.csproj 2023-04-21 09:38:33 +02:00
Samuele E. Locatelli c11a9a91b8 Merge tag 'TesLantekSoitaab01' into develop
Update con gestione lantek che fa sempre export all
2023-04-21 09:34:59 +02:00
Samuele E. Locatelli d2596d57df Merge branch 'release/TesLantekSoitaab01' 2023-04-21 09:34:36 +02:00
Samuele E. Locatelli 2a98a0270a Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/mes/mapo/Mapo-IOB-WIN into develop 2023-04-21 09:32:30 +02:00
Samuele E. Locatelli 5ed50840ac aggiunta export prima di import x lantek 2023-04-21 09:27:45 +02:00
Samuele Locatelli 3a6689d752 Rename conf soitaab 2023-04-20 18:54:37 +02:00
Samuele E. Locatelli 3538277d0b Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/mes/mapo/Mapo-IOB-WIN into develop 2023-04-18 19:31:28 +02:00
Samuele E. Locatelli 51e0486c01 Merge conf x SOITAAB 2023-04-18 19:31:22 +02:00
Samuele Locatelli 76052f9b23 Update conf file SOITAAB 2023-04-18 19:30:47 +02:00
Samuele Locatelli e71de2c52f Aggiunta conf test soitaab preliminare 2023-04-18 09:06:44 +02:00
Samuele Locatelli c19b635366 - tolto aree NON impiegate x invio parametri attivi
- fix gestione progetto (aree PIZ09/10 da NON copiare always)
2023-04-14 17:59:55 +02:00
Samuele Locatelli dff6e4a4e2 update x migliore log in invio parametri conf 2023-04-14 17:58:34 +02:00
Samuele Locatelli 6acc206fb1 Merge tag 'ModbusTCP_FixWriteHamPizzaferri' into develop
Update x fix scrittura HAM x pizzaferri
2023-04-14 12:44:05 +02:00
Samuele Locatelli 674e34f9b5 Merge branch 'release/ModbusTCP_FixWriteHamPizzaferri' 2023-04-14 12:43:56 +02:00
Samuele Locatelli 79f20fd611 FIX ModBus HAM x pizzaferri 2023-04-14 12:43:35 +02:00
Samuele Locatelli 0758afdd98 Merge tag 'ModbusTCP_FixexetaskSyncDB' into develop
Fix gestione execute task syncDbData x ModbusTCP
2023-04-14 09:58:04 +02:00
Samuele Locatelli 3160d2b60b Merge branch 'release/ModbusTCP_FixexetaskSyncDB' 2023-04-14 09:57:51 +02:00
Samuele Locatelli 6b5c4ddaa7 fix mancata esecuzione task scrittura/sync in ModbusTCP 2023-04-14 09:57:19 +02:00
Samuele Locatelli 957d245a53 Merge tag 'UpdatelogPrepareRecipe01' into develop
Aggiornamento log invio ricette x FIMAT
2023-04-14 09:51:51 +02:00
Samuele Locatelli eca5cd628c Merge branch 'release/UpdatelogPrepareRecipe01' 2023-04-14 09:51:36 +02:00
Samuele Locatelli 1118725454 update x log copia ricette tenditalia 2023-04-14 09:51:10 +02:00
Samuele Locatelli d28d3ddcfa Merge tag 'AddReportCsvFimat02' into develop
Update x recupero sync ricette
2023-04-13 11:18:45 +02:00
Samuele Locatelli f6b926d77e Merge branch 'release/AddReportCsvFimat02' 2023-04-13 11:18:33 +02:00
Samuele Locatelli 48ffbb6de1 Completato test import ricette in sync 2023-04-13 10:34:14 +02:00
Samuele Locatelli 7010548337 Gestione import ricette (DA PROVARE!!!) 2023-04-12 19:23:26 +02:00
Samuele Locatelli 55e8aada24 Ok processing settimane consumo passate... 2023-04-12 17:46:29 +02:00
Samuele Locatelli 7aed2bfb32 Merge tag 'AddReportCsvFimat01' into develop
Aggiunta preliminare gestione FIMAT x ricette e report output consumi
2023-04-12 17:01:48 +02:00
Samuele Locatelli 3c215cbaa5 Merge branch 'release/AddReportCsvFimat01' 2023-04-12 17:01:24 +02:00
Samuele Locatelli c16ca8d422 Tenditalia/FIMAT:
- Completato setup da conf x output consumi FIMAT
2023-04-12 16:53:23 +02:00
Samuele Locatelli 77ba05537c Ok chiamate x FIMAT
- archivio zip
- cancellazione tra compiti da svolgere
2023-04-12 11:02:06 +02:00
Samuele Locatelli 79e9e6c348 correzione calcolo DateTime con millisecondi x chaiamte PODL 2023-04-11 11:35:34 +02:00
Samuele Locatelli 97bc417be4 update gestione ricette 2023-04-08 11:12:38 +02:00
Samuele Locatelli 6b7a854bb1 Spostamento ricette fimat in area temp conf generica esterna 2023-04-08 11:12:32 +02:00
Samuele Locatelli 1d08af6a1f PODL x FIMAT:
- Bozza metodi x inviare dati avvio/chiusura PODL (DA TESTARE!!!)
2023-04-07 19:20:49 +02:00
Samuele Locatelli 1abbbf0f06 Refactor/Typo 2023-04-07 18:25:57 +02:00
Samuele Locatelli 52632c24ba riorganizzazione gestione file ricette in adapter generic 2023-04-07 18:23:48 +02:00
Samuele Locatelli ee8a02c156 bozza nuova app import XML (copia da Excel Import) 2023-04-06 19:41:14 +02:00
Samuele Locatelli 6b3e5b8715 Aggiunti folder profile x pubblicazione 2023-04-06 19:41:05 +02:00
Samuele Locatelli c2d76264eb Merge tag 'FixFimatExport02' into develop
Fix file export 02
2023-04-06 14:42:35 +02:00
Samuele Locatelli 6c1f620775 Merge branch 'release/FixFimatExport02' 2023-04-06 14:42:26 +02:00
Samuele Locatelli 81abde6743 update file copy task 2023-04-06 14:42:10 +02:00
Samuele Locatelli b4afc67f55 Merge tag 'FixFimatExport01' into develop
update export ricette
2023-04-06 12:59:33 +02:00
Samuele Locatelli bfd46d3c26 Merge branch 'release/FixFimatExport01' 2023-04-06 12:59:15 +02:00
Samuele Locatelli 32a0be9f90 update conf FIMAT 2023-04-06 12:58:43 +02:00
Samuele Locatelli fbd955e218 OK test creazione + copia + archiviazione 2023-04-06 11:39:31 +02:00
Samuele Locatelli 86b17ddeba OK test simula x creazione ricette XML (multiple) 2023-04-06 09:24:57 +02:00
Samuele Locatelli 206020281d commit parziale gestione ricette 2023-04-05 19:52:19 +02:00
Samuele Locatelli dbc4a03df2 cambio val elapsed time x reconnecting 2023-03-31 17:44:49 +02:00
Samuele Locatelli 9a9138998b Merge tag 'FixCimolaiOpcDisconnectedLost' into develop
Fix riavvio OpcUa quando non poweroff e non aggiornato
2023-03-27 12:14:16 +02:00
Samuele Locatelli 57992108cd Merge branch 'release/FixCimolaiOpcDisconnectedLost' 2023-03-27 12:13:59 +02:00
Samuele Locatelli 020516dcac Fix reboot OPC-UA su mancato udpate info 2023-03-27 12:13:22 +02:00
Samuele Locatelli 6d1ba5f1ad FIX conf MTConnect IMI 50 CMS:
- fix gestione emergenza non armata a true
- test in prod
2023-03-24 15:47:33 +01:00
Samuele Locatelli a347d4e60d Fix template ricette FIMAT 2023-03-23 18:03:23 +01:00
Samuele Locatelli f7420ad6c5 script fix contenuto file ricette 2023-03-23 18:00:51 +01:00
Samuele Locatelli 2c5f3ad29c rename file ricette:
- +10'000 (x --> 10'00x)
2023-03-23 17:59:50 +01:00
Samuele Locatelli 36b5e5c81e Inizio gestione ricette FIMAT da tempalte, conf... 2023-03-23 12:37:40 +01:00
Samuele Locatelli c20adac35c Aggiunta XML ricette FIMAT (NON in install) 2023-03-23 12:37:29 +01:00
Samuele Locatelli 1b46b1b083 Merge tag 'TestFimat03' into develop
Fix conf x FIMAT
2023-03-21 19:07:30 +01:00
Samuele Locatelli b6e0353f78 Merge branch 'release/TestFimat03' 2023-03-21 19:07:24 +01:00
Samuele Locatelli 0dd39fc73f FIMAT:
- fix stati (discr input --> holdReg)
- fix conf (-1 valori da tab iniziale)
2023-03-21 19:07:08 +01:00
Samuele Locatelli ca960ff094 Merge tag 'TestFimat02' into develop
Aggiunta layer traduzione valori stati modbus (FIMAT)
2023-03-21 16:30:04 +01:00
Samuele Locatelli 6776fe848f Merge branch 'release/TestFimat02' 2023-03-21 16:29:17 +01:00
Samuele Locatelli 0f0acaae49 Update Gestione FIMAT x bit trad 2023-03-21 16:28:58 +01:00
Samuele Locatelli b3315ebc7c Update x decodifica traduzione valori FIMAT... 2023-03-20 20:08:40 +01:00
Samuele Locatelli 4255a813d6 Merge tag 'TestFimat01' into develop
Update di test x FIMAT
2023-03-20 12:12:51 +01:00
Samuele Locatelli 4abc80f676 Merge branch 'release/TestFimat01' 2023-03-20 12:12:38 +01:00
Samuele Locatelli 1c17d2ed2d Update x metodi chiusura ODL x SQL PAMA 2023-03-20 12:10:44 +01:00
Samuele Locatelli 200ba3c7d5 Update con conf FIMAT di test 2023-03-20 12:10:30 +01:00
Samuele E. Locatelli 8c38ac95ec Merge remote-tracking branch 'gitlab/develop' into develop 2023-03-17 12:15:12 +01:00
Samuele Locatelli b4e5297c5a Merge tag 'UpdateSqlPama' into develop
Test gestione emtodi estesi PAMA
2023-03-17 12:13:39 +01:00
Samuele Locatelli f63a34a547 Merge branch 'release/UpdateSqlPama' 2023-03-17 12:13:19 +01:00
Samuele Locatelli 26e2f3a3a0 Merge remote-tracking branch 'origin/develop' into develop 2023-03-17 12:13:00 +01:00
Samuele E. Locatelli 0829d4474a Chiusura TASK x DB 2023-03-17 12:12:41 +01:00
Samuele E. Locatelli 42185bf93e Test scrittura PODL OK anche post modifiche + log 2023-03-17 12:06:56 +01:00
Samuele E. Locatelli c5e5a5befe Update stato stored PAMA 2023-03-17 10:46:18 +01:00
Samuele E. Locatelli 466e91de18 fix stored (updated) 2023-03-17 08:41:52 +01:00
Samuele E. Locatelli 083362ccf7 Spostamento area stored SQL di test 2023-03-17 08:39:07 +01:00
Samuele E. Locatelli 90fb77a2c3 Update stored PAMA 2023-03-16 14:20:19 +01:00
Samuele E. Locatelli 6e96070cd1 udpate conf RIMOR 2023-03-16 13:22:50 +01:00
Samuele E. Locatelli 60972602b0 Fix ricalcolo indici x SqlImport PAMA 2023-03-16 13:22:44 +01:00
Samuele E. Locatelli a4bdc7fd21 test vern RIMOR 2023-03-16 11:07:22 +01:00
Samuele Locatelli fa7d1fdee6 Merge tag 'IobRimorAddOdlClose' into develop
Aggiunta gestioen end ODL da bit su RIMOR ModBus
2023-03-16 10:01:13 +01:00
Samuele Locatelli e7dc77a058 Merge branch 'release/IobRimorAddOdlClose' 2023-03-16 10:00:54 +01:00
Samuele Locatelli e12de0f60e aggiunta gestione chiusura ODL x RIMOR 2023-03-16 10:00:26 +01:00
Samuele Locatelli 9e76475908 Merge tag 'IobSqlDbAddSendFluxLog' into develop
Aggiunta gestione preliminare invio fluxLog (da testare)
2023-03-16 08:58:10 +01:00
Samuele Locatelli cda3a89b78 Merge branch 'release/IobSqlDbAddSendFluxLog' 2023-03-16 08:57:54 +01:00
Samuele Locatelli add5495c29 Aggiunta gestione FluxLog da DB x invio IOB 2023-03-16 08:57:23 +01:00
Samuele Locatelli 8799c74874 PAMA:
- aggiunta gestione PODL --> sync DB
2023-03-15 16:00:09 +01:00
Samuele Locatelli c23586f2c9 Merge tag 'TestAdapterPama' into develop
Prima release adapter PAMA da testare
2023-03-15 15:16:01 +01:00
Samuele Locatelli dba9bc113e Merge branch 'release/TestAdapterPama' 2023-03-15 15:15:53 +01:00
Samuele Locatelli ff38224afd Fix idx int --> log x ricerca SigLog 2023-03-15 15:15:42 +01:00
Samuele Locatelli 5af4531a2e Idx postato da INT a LONG x ricerca 2023-03-15 15:14:05 +01:00
Samuele Locatelli aae07244ed Merge branch 'SDK/SqlDb' into develop 2023-03-15 15:13:31 +01:00
Samuele Locatelli 6fe3bb8b07 Release preliminare adapter PAMA da testare 2023-03-15 15:13:22 +01:00
Samuele Locatelli 9b41ae4944 Aggiunta preliminare adapter PAMA (2 test...) 2023-03-15 14:18:45 +01:00
Samuele Locatelli 07197d9e1d Merge branch 'develop' into SDK/SqlDb 2023-03-15 12:17:29 +01:00
Samuele Locatelli a1f5b58640 Merge tag 'UpdateNugetSql-230315-13' into develop
Update pacchetti x nuova release SDK SqlDb
2023-03-15 12:17:21 +01:00
Samuele Locatelli 772cab4575 Merge branch 'release/UpdateNugetSql-230315-13' 2023-03-15 12:17:07 +01:00
Samuele Locatelli 2df6c3ce72 Nuget SqlDB:
- aggiunta metodi + fix x rilascio nuova vers
2023-03-15 12:15:45 +01:00
Samuele Locatelli 4e4b89944f Merge branch 'develop' into SDK/SqlDb 2023-03-15 12:07:18 +01:00
Samuele Locatelli 4dc7d6307f Merge tag 'AddNugetSqlDb' into develop
Prima release stabile pacchetto SqlDb
2023-03-15 12:06:59 +01:00
Samuele Locatelli fab347ace0 Merge branch 'release/AddNugetSqlDb' 2023-03-15 12:06:24 +01:00
Samuele Locatelli be04238508 Add config file nuspec x Release/Debug 2023-03-15 12:04:42 +01:00
Samuele Locatelli dbfea33e98 Merge branch 'develop' of https://gitlab.steamware.net/steamware/Mapo-IOB-WIN into develop 2023-03-15 12:00:30 +01:00
Samuele Locatelli d4606fa6f6 Modifica yaml x CI/CD nuova libreria nuget SQL 2023-03-15 12:00:07 +01:00
Samuele Locatelli 6dffd29e65 update e renaming x stored proc 2023-03-15 11:53:44 +01:00
Samuele E. Locatelli 5662be2850 update cll stored con nuovo naming 2023-03-15 11:51:59 +01:00
Samuele Locatelli 57629f9806 Merge branch 'develop' of https://gitlab.steamware.net/steamware/Mapo-IOB-WIN into develop 2023-03-15 11:28:07 +01:00
Samuele Locatelli 4f460d3e40 update procedura test 2023-03-15 11:28:04 +01:00
Samuele E. Locatelli af427dd25a Aggiunta stored Export/Import x PAMA 2023-03-15 11:00:43 +01:00
Samuele E. Locatelli 93f982fcd1 Fix stored backup 2023-03-15 10:55:18 +01:00
Samuele E. Locatelli 6c59b60c9b Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/mes/mapo/Mapo-IOB-WIN into develop 2023-03-15 10:45:24 +01:00
Samuele Locatelli 53a8d9a371 Add migration nuova tabella 2023-03-15 10:45:05 +01:00
Samuele E. Locatelli 6893925221 update stored 2023-03-15 10:44:43 +01:00
Samuele E. Locatelli 0e530a5349 Update conf x test + setup sql script 2023-03-15 10:30:20 +01:00
Samuele Locatelli 6205f7a7c1 Merge branch 'develop' of https://gitlab.steamware.net/steamware/Mapo-IOB-WIN into develop 2023-03-15 09:08:13 +01:00
Samuele Locatelli d0ab5f773c Aggiunta migrazione x tab MacProdData 2023-03-15 09:08:09 +01:00
Samuele E. Locatelli 30f1a14292 Update stored da DB remoto 2023-03-14 20:55:08 +01:00
Samuele E. Locatelli bb74aaff1c Fix stored x recupero SigLog 2023-03-14 20:15:08 +01:00
Samuele Locatelli 35c61192ed Update migrations 2023-03-14 19:53:52 +01:00
Samuele E. Locatelli 7454de6c5d Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/mes/mapo/Mapo-IOB-WIN into develop 2023-03-14 19:47:38 +01:00
Samuele Locatelli 356a4fc127 Merge branch 'develop' of https://gitlab.steamware.net/steamware/Mapo-IOB-WIN into develop 2023-03-14 19:47:22 +01:00
Samuele Locatelli b26f205476 update backup stored 2023-03-14 19:47:19 +01:00
Samuele E. Locatelli 3f951365cb Update modello dati + stored salvate 2023-03-14 19:46:30 +01:00
Samuele E. Locatelli 8fd0f336b5 Fix fase seed 2023-03-13 18:31:16 +01:00
Samuele E. Locatelli e06a140e11 Update x test in prod e compilazione dati 2023-03-13 18:27:18 +01:00
Samuele Locatelli b37d6d0d2b Fix migrations x test 2023-03-13 11:57:34 +01:00
Samuele Locatelli 8c41b4aff5 update migrations + test pulizia PODL e insert 2023-03-10 20:24:09 +01:00
Samuele Locatelli 1571877677 Funziona lettura DB!!! 2023-03-10 18:12:01 +01:00
Samuele Locatelli 6ec9b69068 Update proj x test 2023-03-10 17:58:40 +01:00
Samuele Locatelli 58c0e3b165 fix conf 2023-03-10 17:58:18 +01:00
Samuele Locatelli 1029149af2 Merge branch 'develop' of https://gitlab.steamware.net/steamware/Mapo-IOB-WIN into develop 2023-03-10 17:03:48 +01:00
Samuele Locatelli 691a8bc694 Ancora modifica stored e migration x DB 2023-03-10 17:03:45 +01:00
Samuele E. Locatelli a85208e492 Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/mes/mapo/Mapo-IOB-WIN into develop 2023-03-10 17:02:33 +01:00
Samuele E. Locatelli c34e4c488e CONF x scrittura program su RIMOR (=codice num commessa x sblocco) 2023-03-10 17:02:25 +01:00
Samuele Locatelli 1a93357180 Update x inserimento ulteriori comportamenti in controller 2023-03-10 12:25:40 +01:00
Samuele Locatelli 400d7442d8 Update :
- gestione stored "placeholder"
- stored backup di default
2023-03-10 11:39:03 +01:00
Samuele Locatelli c4313a0ff1 Modifica modello dati:
- semplificaizone gestione ActList
- revisione seed
2023-03-10 10:50:11 +01:00
Samuele Locatelli a262898d36 Update creazioen DB con migrazioni 2023-03-10 10:19:01 +01:00
Samuele Locatelli 8956671b39 Update modelli dati 2023-03-10 09:21:02 +01:00
Samuele Locatelli bbf9f0bd17 Aggiunta modelli PODL 2023-03-08 17:34:50 +01:00
Samuele Locatelli 67f8d20560 Inizio aggiunta progetti x nuget gestione DB SYNC generico 2023-03-08 17:09:57 +01:00
Samuele E. Locatelli c59b8fd6d7 Update conf x rilettura variabili WRITE 2023-03-06 19:01:25 +01:00
Samuele E. Locatelli 22f872b503 Merge branches 'develop' and 'develop' of https://gitlab.steamware.net/egalware-web/mes/mapo/Mapo-IOB-WIN into develop 2023-03-06 18:45:20 +01:00
Samuele E. Locatelli b3c196081a update test machine 2023-03-06 18:45:07 +01:00
Samuele Locatelli 649d7ffee0 Merge tag 'RimoVernTest' into develop
Test RIMOR Vern OK
2023-03-06 18:10:56 +01:00
Samuele Locatelli b7e9f52367 Merge branch 'release/RimoVernTest' 2023-03-06 18:10:49 +01:00
Samuele E. Locatelli c43681a965 RIMOR:
- Eliminata area non impiegata dai PLC macchina
2023-03-06 17:53:15 +01:00
Samuele E. Locatelli f3747c2cdd Rinominati files 3/4 a vern 01/02 2023-03-06 17:52:07 +01:00
Samuele Locatelli c517f548c8 Completo setup conf RIMOR vern (2 test) 2023-03-06 17:29:07 +01:00
Samuele Locatelli a5e666d623 Inizio conf x rimor verniciatura 2023-03-06 17:17:02 +01:00
Samuele Locatelli 3c365c7a57 Merge tag 'FixUpsertParametriIobParziali' into develop
Fix invio parametri in modalità update
2023-03-06 16:41:46 +01:00
Samuele Locatelli 638c98a642 Merge branch 'release/FixUpsertParametriIobParziali' 2023-03-06 16:41:21 +01:00
Samuele Locatelli ec29b4a3c6 IOB-WIN:
- cambio modalità invio parametri x gestione IOB "parziali": upsert e non forse write parametri
2023-03-06 16:40:35 +01:00
Samuele Locatelli d389fb3632 Merge tag 'FixSemModbusTcp' into develop
Fix semaforo verde x IOB-WIN senza gestione stato
2023-03-06 15:43:34 +01:00
Samuele Locatelli 8529d19134 Merge branch 'release/FixSemModbusTcp' 2023-03-06 15:43:23 +01:00
Samuele Locatelli c74da3d4e0 Merge branch 'develop' into release/FixSemModbusTcp 2023-03-06 15:43:12 +01:00
Samuele E. Locatelli 8cee60292c fix display test esteso in avvio ModBusTCP 2023-03-06 15:42:32 +01:00
Samuele E. Locatelli 94326ec852 Merge remote-tracking branch 'gitlab/develop' into develop 2023-03-06 15:08:02 +01:00
Samuele E. Locatelli e3492d49bf forzatura semaforo verde se disabilitato state check 2023-03-06 15:07:55 +01:00
Samuele Locatelli 1ce1b0a903 Merge tag 'UpdateRedKeyIob' into develop
update chaive s IOB-MAN
2023-03-06 14:21:54 +01:00
Samuele Locatelli 57b7938e8a Merge branch 'release/UpdateRedKeyIob' 2023-03-06 14:21:45 +01:00
Samuele Locatelli 5c940681b3 modifica chiamate x IOB-WIN 2023-03-06 14:21:23 +01:00
Samuele Locatelli a56380923c Merge tag 'FixFilenameForIobMan' into develop
Fix gestione filename x IOB-MAN
2023-03-06 12:14:53 +01:00
Samuele Locatelli 326395dcc6 Merge branch 'release/FixFilenameForIobMan' 2023-03-06 12:14:45 +01:00
Samuele Locatelli 4f325d4d1b Fix filename per IOB-MAN 2023-03-06 12:14:19 +01:00
Samuele Locatelli 52f67f53f9 Merge tag 'SpliMachineRimorTest' into develop
Aggiunto RIMOR split amchien x testing
2023-03-06 11:56:48 +01:00
Samuele Locatelli 9aa57eb5ba Merge branch 'release/SpliMachineRimorTest' 2023-03-06 11:56:36 +01:00
Samuele Locatelli b5e237af8e completato gestione disable check x PLC RIMOR, da testare 2023-03-06 10:23:17 +01:00
Samuele Locatelli 13c75d38d8 inizio gestione parametri x macchine con 2 PLC 2023-03-06 10:11:16 +01:00
Samuele Locatelli 53fffe9065 Merge tag 'UpdateRimorHmi' into develop
Update x secondo PLC Rimor (HMI)
2023-03-02 12:19:44 +01:00
Samuele Locatelli f88eef7f67 Merge branch 'release/UpdateRimorHmi' 2023-03-02 12:19:32 +01:00
Samuele E. Locatelli 27d23fe29f Update conf x settaggi RIMOR 2023-03-02 12:15:44 +01:00
Samuele Locatelli ee6c32c1dc Ancora udpate rimor sab HMI 2023-03-02 09:09:04 +01:00
Samuele Locatelli a091654897 fix conf HMI Rimor 2023-03-02 09:06:32 +01:00
Samuele Locatelli 5736c8e5b3 Merge branch 'develop' 2023-03-02 08:25:44 +01:00
Samuele Locatelli 9ba3b9f36d Fix conf Rimor 2 da testare 2023-03-02 08:05:58 +01:00
Samuele Locatelli 3a8b51641e Merge branch 'develop' of https://gitlab.steamware.net/steamware/Mapo-IOB-WIN into develop 2023-03-02 08:01:35 +01:00
Samuele E. Locatelli 1674f9c980 Merge remote-tracking branch 'gitlab/develop' into develop 2023-03-02 08:01:03 +01:00
Samuele Locatelli 808b7c81ea Merge tag 'UpdateModbusExtReg' into develop
Completata integrazione iniziale test MODBUS ext reg x RIMOR
2023-03-02 07:59:40 +01:00
Samuele E. Locatelli 52219a8255 Merge branch 'FeatureTestRimor' into develop 2023-03-02 07:59:24 +01:00
Samuele Locatelli b908a7daa6 Merge branch 'release/UpdateModbusExtReg' 2023-03-02 07:59:02 +01:00
Samuele Locatelli 1abf7b16cf Merge remote-tracking branch 'origin/FeatureTestRimor' into develop 2023-03-02 07:58:25 +01:00
Samuele Locatelli 76315c4ecb Rimozione commento 2023-03-02 07:58:20 +01:00
Samuele E. Locatelli 6976ca959e Fix ModBus x RIMOR & co... 2023-03-01 10:04:02 +01:00
Samuele E. Locatelli ba6a9bc9ed Fix lettura modbus x registri estesi 2023-02-28 11:32:56 +01:00
Samuele E. Locatelli 98750aadbf Merge remote-tracking branch 'origin/develop' into FeatureTestRimor 2023-02-28 10:51:11 +01:00
Samuele Locatelli bbe1a1c20e Aggiunto parametro ext register x RIMOR 2023-02-28 10:49:09 +01:00
Samuele E. Locatelli 5770e7e15a Fix conf x test RImor 2023-02-27 18:59:59 +01:00
Samuele Locatelli 3d942836f3 modifica conf RIMOR 2 test 2023-02-27 17:48:15 +01:00
Samuele Locatelli 9fa9807bc5 Merge tag 'AddPodlCode' into develop
Aggiunta codice PODL
2023-02-22 12:44:40 +01:00
Samuele Locatelli ccef55e5e2 Merge branch 'release/AddPodlCode' 2023-02-22 12:44:32 +01:00
Samuele Locatelli a1d757cd94 Aggiunto check cod PODL 2023-02-22 12:44:11 +01:00
Samuele Locatelli ab00dea4bd Merge tag 'FixRunValCimolai' into develop
update x filtro stato RunValue x CIMOLAI
2023-02-22 11:59:34 +01:00
Samuele Locatelli 4cd7214cc6 Merge branch 'release/FixRunValCimolai' 2023-02-22 11:59:23 +01:00
Samuele Locatelli c52963cb21 update cimolai x evitare repliche stato runmode 1 2023-02-22 11:59:00 +01:00
Samuele Locatelli 6383a31b15 Merge tag 'UpdateCimolaiStartWork' into develop
update lavorazione cimolai come bool
2023-02-22 09:26:17 +01:00
Samuele Locatelli 0f7dd9901c Merge branch 'release/UpdateCimolaiStartWork' 2023-02-22 09:26:09 +01:00
Samuele Locatelli 2e3c6f2e12 update cimolai OPC-UA:
- lavorazione da int a bool
2023-02-22 09:25:46 +01:00
Samuele Locatelli 1ea6e5531a Merge tag 'FirstRimoradapter' into develop
Prima release adapter RIMOR
2023-02-17 17:00:10 +01:00
Samuele Locatelli 91e70da050 Merge branch 'release/FirstRimoradapter' 2023-02-17 17:00:02 +01:00
Samuele Locatelli b22bb8e0b8 Update RIMOR adapter + conf 2023-02-17 16:59:33 +01:00
Samuele Locatelli cd9f9a3cf4 Aggiunta preliminare dati x RIMOR 2023-02-16 19:00:47 +01:00
Samuele Locatelli aa1d796293 Inizio conf x RIMOR 2023-02-16 19:00:39 +01:00
Samuele Locatelli 691286e28b Merge branch 'develop' 2023-02-06 10:29:32 +01:00
Samuele Locatelli 3e14ec5392 Fix yaml 2023-02-06 10:29:26 +01:00
Samuele Locatelli 6d950d8593 Merge tag 'UpdateLogCimolaiBaglietto' into develop
Update log in avvio dell'adapter
2023-02-06 10:27:30 +01:00
Samuele Locatelli 987a758155 Merge branch 'release/UpdateLogCimolaiBaglietto' 2023-02-06 10:27:16 +01:00
Samuele Locatelli 3019abd841 Log esteso x gestione cimolai con auto odl --> invio setup 2023-02-06 10:25:18 +01:00
Samuele Locatelli 8dd12ead14 Merge tag 'FixModbusAlarmMaps' into develop
Fix gestione allarmi macchina
2023-01-26 15:21:28 +01:00
Samuele Locatelli 7c079c6e93 Merge branch 'release/FixModbusAlarmMaps' 2023-01-26 15:21:17 +01:00
Samuele Locatelli c93c171271 Fix lettura allarmi x ModBus HAM (Pizzaferri) 2023-01-26 15:20:53 +01:00
Samuele Locatelli 899ba0ec85 Merge tag 'fixLogQueue' into develop
fix coda da List<string> a ConcurrentQueue<string> x evitare problemi
sul log display
2023-01-25 08:52:13 +01:00
Samuele Locatelli eaf212a120 Merge branch 'release/fixLogQueue' 2023-01-25 08:50:13 +01:00
Samuele Locatelli 13ff7ab59f Fix scritture concorrenti messaggi:
- coda messaggi log (display) era List<string>
- trasformato come ConcurrentQueue<string>
2023-01-25 08:49:48 +01:00
Samuele Locatelli 7c80fb36c2 Merge tag 'LogTypoFix' into develop
Log typo fix
2023-01-17 12:20:16 +01:00
Samuele Locatelli 248b6561e9 Merge branch 'release/LogTypoFix' 2023-01-17 12:20:05 +01:00
Samuele Locatelli 23c8789e47 typo 2023-01-17 12:19:42 +01:00
Samuele Locatelli 54a288fe6a Merge tag 'AddLogStartStopSetupLasco' into develop
Aggiunto log verboso x start/stop setup x LASCO
2023-01-17 12:19:09 +01:00
Samuele Locatelli 04ebcea85c Merge branch 'release/AddLogStartStopSetupLasco' 2023-01-17 12:18:58 +01:00
Samuele Locatelli dc0a517579 Aggiunta log x start/stop setup su LASCO 2023-01-17 12:18:30 +01:00
Samuele Locatelli 958a8c7bef Merge tag 'FixSendRebootFlood' into develop
Gestione veto send reboot x 6h ogni volta che invia tramite redis cache
2022-12-30 15:23:49 +01:00
Samuele Locatelli ae85d06069 Merge branch 'release/FixSendRebootFlood' 2022-12-30 15:23:33 +01:00
Samuele Locatelli 0777cd6a52 Fix invio troppo frequente dei sendReboot 2022-12-30 15:23:06 +01:00
Samuele Locatelli b802e180df Merge tag 'UpdateRemoteSendUrl' into develop
Completamento configurazione x cambio URL upload remoto
2022-12-30 10:54:31 +01:00
Samuele Locatelli 5121a825a2 Merge branch 'release/UpdateRemoteSendUrl' 2022-12-30 10:54:06 +01:00
Samuele Locatelli 5bf295fce2 Update URL Send file
- invio a liman.egalware/MP/IO
2022-12-30 10:53:44 +01:00
Samuele Locatelli db6cdc8500 Merge tag 'ModSelFile2Send' into develop
Aggiunta mitigazione invio file conf tramite salvataggio MD5 in cache
2022-12-30 08:56:12 +01:00
Samuele Locatelli 8cb02d197f Merge branch 'release/ModSelFile2Send' 2022-12-30 08:55:57 +01:00
Samuele Locatelli 2ed1d9c7f4 IOB-WIN:
- aggiunta cache MD5 config in redis x mitigare invio file conf
2022-12-30 08:55:43 +01:00
Samuele Locatelli 447fa15443 IOB-WIN-NEXT, MainForm:
- Modifica modalità invio files (NON SOLO ini)
2022-12-29 18:10:35 +01:00
Samuele Locatelli edcfb09a3c Merge tag 'UpdateConfModbusTcpSaimWrite' into develop
Update conf scrittura SAIM
2022-12-27 16:59:02 +01:00
Samuele Locatelli d02d1ca6e4 Merge branch 'release/UpdateConfModbusTcpSaimWrite' 2022-12-27 16:58:49 +01:00
Samuele E. Locatelli d65667d390 update conf SAIM 002 2022-12-27 16:55:44 +01:00
Samuele E. Locatelli a9bbca262e SAIM:
- fix conf SAIM003
- fix conf remote debug saim 001
2022-12-27 16:18:49 +01:00
Samuele E. Locatelli f6695c7754 Correzione scrittura HoldingReg x SAIM 2022-12-27 16:17:57 +01:00
Samuele E. Locatelli 2f57349347 Correzione conf SAIM 01/02/03 2022-12-27 14:49:54 +01:00
Samuele Locatelli c3df26caad Merge tag 'UpdateSimImportFile' into develop
update gestione import file, eliminazione ExcelMan e nuget vari, testing
SIM
2022-12-22 15:39:23 +01:00
Samuele Locatelli 90839b0a7e Merge branch 'release/UpdateSimImportFile' 2022-12-22 15:39:06 +01:00
Samuele Locatelli ee85cc4b94 Cleanup codice 2022-12-22 15:38:40 +01:00
Samuele Locatelli 64255e7405 Eliminata classe gestione excel + nuget vari 2022-12-22 15:37:40 +01:00
Samuele Locatelli f50f277381 OK invio json giacenze!!! 2022-12-22 10:56:46 +01:00
Samuele Locatelli efca6d9a67 EgwCApp COnv:
modifica x caso nome sheet = data (non fisso)
2022-12-22 10:11:34 +01:00
Samuele Locatelli a738cf1df4 Primo test invio json 2022-12-22 09:32:01 +01:00
Samuele Locatelli d2b785593e OK fino a conversione (da testare invio json) 2022-12-22 08:36:54 +01:00
Samuele Locatelli e98c6d1cd1 Primi test conversione con IobGeneric (NON OK) 2022-12-21 19:32:10 +01:00
Samuele Locatelli 1104998906 Merge tag 'AddAutoSnapshotDossier' into develop
Prima release con AppCOnsole e gestione AutoSnapshotDossier
2022-12-21 15:32:43 +01:00
Samuele Locatelli 2cd3821f44 Merge branch 'release/AddAutoSnapshotDossier' 2022-12-21 15:32:26 +01:00
Samuele Locatelli 002d4558d3 Ok procedura gestione dossier x SIMULA 2022-12-21 15:31:34 +01:00
Samuele Locatelli cfc3fcc03d Aggiunta Console App + config base di riferimento 2022-12-21 11:51:32 +01:00
Samuele Locatelli 0a9749a3d6 Aggiunta chiamata gestione automatica dossiers 2022-12-21 11:38:28 +01:00
Samuele Locatelli f3b319afc6 Update conf SIM x gestione automatica creazione Dossiers 2022-12-21 11:38:17 +01:00
Samuele Locatelli 3dae7c7e14 OK step mass conversion + import... 2022-12-20 10:23:15 +01:00
Samuele Locatelli abe6aa24a4 Test debug OK, testing con directory 2022-12-20 10:00:28 +01:00
Samuele Locatelli f0cbb18246 Inizio bozza multioutput (ok file, inizio redis) 2022-12-19 20:11:15 +01:00
Samuele Locatelli 84ac2c365d Correzione classe CApp x excel 2022-12-19 19:50:05 +01:00
Samuele E. Locatelli 50aa9c27c3 Fix catena compile & test 2022-12-17 20:54:42 +01:00
Samuele E. Locatelli 28638544d1 Tentativi automazione (NON ok...) 2022-12-17 18:46:16 +01:00
Samuele E. Locatelli ef8c11de93 Ok doppio passaggio console app 2022-12-17 18:14:36 +01:00
Samuele E. Locatelli 5258088ad4 Fix catena compilazione con recupero exe 2022-12-17 16:14:32 +01:00
Samuele Locatelli a7a60f2839 Update x inserimento componenti excel import 2022-12-17 12:37:06 +01:00
Samuele Locatelli 235eacaad9 fix PIZ04/05 2022-12-17 11:36:57 +01:00
Samuele E. Locatelli 7064047f9a Cambio nome progetto 2022-12-16 20:34:23 +01:00
Samuele E. Locatelli 48fcce3c9b Aggiunta calcolo tempi esecuzione 2022-12-16 20:19:32 +01:00
Samuele E. Locatelli 3a0880e5a4 Merge branch 'develop' of https://gitlab.steamware.net/steamware/Mapo-IOB-WIN into develop 2022-12-16 20:14:07 +01:00
Samuele E. Locatelli 39e3a9f7fa EgwApp - Console:
- Impostato esempio call consol 2 console
- pronto x creare il vero excel importer (+ altre utils)
2022-12-16 20:14:04 +01:00
Samuele E. Locatelli 8a07a80599 modifica x test datasync excel: si pianta x lib compression 2022-12-16 18:05:19 +01:00
Samuele E. Locatelli 34ec183982 minor typo x ModBus read (ok saim 1) 2022-12-16 17:04:26 +01:00
Samuele E. Locatelli 46362b8bfb Merge tag 'FixDisplayLogDp01' into develop
fix modalità display log e trim linee x SIM_DP01
2022-12-16 10:06:53 +01:00
Samuele E. Locatelli 35c36cfe6c Merge branch 'release/FixDisplayLogDp01' 2022-12-16 10:06:32 +01:00
Samuele E. Locatelli 91a0366b3f Fix catena display log che pianta SIM_DP_01 2022-12-16 10:05:43 +01:00
Samuele E. Locatelli 55e3bbbba9 Merge tag 'UpdatePostImasOpcUa' into develop
update x gestione verbosità differente info --> debug
2022-12-15 17:02:43 +01:00
Samuele E. Locatelli 1be69aff97 Merge branch 'release/UpdatePostImasOpcUa' 2022-12-15 17:02:14 +01:00
Samuele E. Locatelli 2c40dfc38d update verbosità opc-ua x variazioni parametri 2022-12-15 17:01:37 +01:00
Samuele E. Locatelli cf19510bae ancora udpate 3026 2022-12-15 17:01:07 +01:00
Samuele E. Locatelli 11166ea024 update conf 3026 Jetco 2022-12-15 17:01:00 +01:00
Samuele E. Locatelli 71f19a8223 Merge tag 'AddInitialImasOpcUa' into develop
Aggiunta OpcUa IMAS
2022-12-15 13:18:08 +01:00
Samuele E. Locatelli 15ae12f813 Merge branch 'release/AddInitialImasOpcUa' 2022-12-15 13:17:46 +01:00
Samuele E. Locatelli 4bbd9ab770 Aggiunta adapter OPC-UA IMAS 2022-12-15 13:16:28 +01:00
Samuele E. Locatelli bba61d7331 Merge tag 'AddInputRegDecodingModbus' into develop
Aggiunta decoding InputRegister x modbus
2022-12-14 17:45:25 +01:00
Samuele E. Locatelli 4a42855062 Merge branch 'release/AddInputRegDecodingModbus' 2022-12-14 17:45:06 +01:00
Samuele E. Locatelli 91666cc680 Fix fattore scala SAIM 2022-12-14 17:44:10 +01:00
Samuele E. Locatelli 560c2a4dfb Aggiunta decodifica stati da InputRegister 2022-12-14 17:43:29 +01:00
Samuele E. Locatelli 2279732ab7 Merge tag 'FixInputRegLUT' into develop
Fix input register ModBus
2022-12-14 14:25:57 +01:00
Samuele E. Locatelli 656d0ed525 Merge branch 'release/FixInputRegLUT' 2022-12-14 14:25:37 +01:00
Samuele E. Locatelli 8231c0d3a0 Fix gestione InputReg x SAIM 2022-12-14 14:24:49 +01:00
Samuele E. Locatelli 05bf628d39 Merge tag 'AddLogVetoManagement' into develop
Aggiunta gestione veto log generalizzata
2022-12-14 13:28:16 +01:00
Samuele E. Locatelli 347c479fb0 Merge branch 'release/AddLogVetoManagement' 2022-12-14 13:28:04 +01:00
Samuele E. Locatelli 28bfd705a7 Update SAIM x conf memBlock 2022-12-14 13:27:05 +01:00
Samuele E. Locatelli 4fd1e39981 fix gestione log verbosi (con veto dictionary) 2022-12-14 13:26:49 +01:00
Samuele E. Locatelli 980c4387a7 Merge tag 'ModbusTcpErroreReadInTryCatch' into develop
Fix try/catch lettura registri modbus
2022-12-14 10:57:15 +01:00
Samuele E. Locatelli 779db5e1d4 Merge branch 'release/ModbusTcpErroreReadInTryCatch' 2022-12-14 10:54:43 +01:00
Samuele E. Locatelli a33d43bd0c inercetto errore lettura modbus 2022-12-14 10:53:33 +01:00
Samuele E. Locatelli 1eebf0f255 Merge branch 'develop' 2022-12-14 10:22:41 +01:00
Samuele E. Locatelli 9e37f01cfd Merge remote-tracking branch 'origin/develop' into develop 2022-12-14 10:16:50 +01:00
Samuele E. Locatelli d78c6a5a3c Merge tag 'FixmodBusTcpInputRegLut' into develop
Fix gestione LUT x input reg con correzione posizione valore acquisito
2022-12-14 10:15:41 +01:00
Samuele E. Locatelli 8c604a7c27 Merge branch 'release/FixmodBusTcpInputRegLut' 2022-12-14 10:15:25 +01:00
Samuele E. Locatelli 640c8275ed Fix ModBusTcp x lettura valori inputRegisters 2022-12-14 10:12:34 +01:00
Samuele E. Locatelli f316e26c23 Test (NON provato) x import excel, non possibile fix compression e catena relativa in portatile 2022-12-13 14:56:24 +01:00
Samuele E. Locatelli 37399b6ba7 Merge tag 'FixModbusTcpInt01' into develop
Fix gestione lettura 1 solo int x modbus TCP (SAIM)
2022-12-13 13:48:36 +01:00
Samuele E. Locatelli 5e444aa9e6 Merge branch 'release/FixModbusTcpInt01' 2022-12-13 13:48:16 +01:00
Samuele E. Locatelli b9e146ec9d Fix modbus x lettura campi 1 int (SAIM) 2022-12-13 13:47:01 +01:00
Samuele E. Locatelli 097a0bc80a fix saim01: fattore e min/max mancanti 2022-12-13 13:05:17 +01:00
Samuele E. Locatelli 1ee69596d1 Merge tag 'UpdateSimulaDP' into develop
Fix errori simula DP x FTP e aree memoria non configurate (aggiunta conf)
2022-12-13 09:52:05 +01:00
Samuele E. Locatelli cff43b76c4 Merge branch 'release/UpdateSimulaDP' 2022-12-13 09:51:35 +01:00
Samuele E. Locatelli 596b079055 Ancora fix errori simula DP 2022-12-13 09:51:07 +01:00
Samuele E. Locatelli 7667e00333 Merge tag 'UpdateSimulaLogVerb' into develop
Update gestione try/catch SyncDataDb
2022-12-13 09:21:36 +01:00
Samuele E. Locatelli 0d8776e0b4 Merge branch 'release/UpdateSimulaLogVerb' 2022-12-13 09:10:51 +01:00
Samuele E. Locatelli 5ed337b2f5 Merge remote-tracking branch 'gitlab.steamware/develop' into release/UpdateSimulaLogVerb 2022-12-13 09:10:25 +01:00
Samuele E. Locatelli 50a577ae01 try/catch x simula in processing SyncDataDb 2022-12-13 09:09:38 +01:00
Samuele Locatelli 6affc054a4 Merge tag 'UpdateHamPizzaferriNewModbus' into develop
Fix nuova conf x ModBus HAM di Pizzaferri
2022-12-10 15:43:18 +01:00
Samuele Locatelli 08261f80f7 Merge branch 'release/UpdateHamPizzaferriNewModbus' 2022-12-10 15:43:09 +01:00
Samuele Locatelli fa470f88e1 fix gestione ulteriore delta x pizzaferri 2022-12-10 15:42:24 +01:00
Samuele E. Locatelli a7dca4dfe7 Update conf pizzaferri 8da testare) 2022-12-10 12:58:43 +01:00
Samuele E. Locatelli 8df54c6212 Merge tag 'AddMaxErrModbus' into develop
Update modbus x indicare max errori prima della disconnessione
2022-12-10 11:22:28 +01:00
Samuele E. Locatelli 33481fa554 Merge branch 'release/AddMaxErrModbus' 2022-12-10 11:22:06 +01:00
Samuele E. Locatelli ca5f222d56 Fix errori lettura pizzaferri 2022-12-10 11:19:58 +01:00
Samuele E. Locatelli 9788302619 Fix disconnect num max errori x restart 2022-12-10 11:17:45 +01:00
Samuele Locatelli 2ed77d7fc2 Merge tag 'TestBypassExeMode04' into develop
bypass exe mode parametrico
2022-12-09 10:24:56 +01:00
Samuele Locatelli 3525f81d3b Merge branch 'release/TestBypassExeMode04' 2022-12-09 10:24:47 +01:00
Samuele Locatelli d0539e494d Aggiunta bypass exemode da conf + pulizia trace cimolai 2022-12-09 10:24:33 +01:00
Samuele Locatelli ce45a9e99a Merge tag 'TestBypassExeMode03' into develop
Aggiunto test ODL
2022-12-09 09:56:37 +01:00
Samuele Locatelli 7d43808b11 Merge branch 'release/TestBypassExeMode03' 2022-12-09 09:56:31 +01:00
Samuele Locatelli 91f785fe43 Ancora udpate x test ODL 2022-12-09 09:56:10 +01:00
Samuele Locatelli 9e4221a376 Merge tag 'TestBypassExeMode02' into develop
test con altro log
2022-12-09 09:48:41 +01:00
Samuele Locatelli d92edb0d18 Merge branch 'release/TestBypassExeMode02' 2022-12-09 09:48:35 +01:00
Samuele Locatelli 29e72e3be2 ancora test debug 2022-12-09 09:48:20 +01:00
Samuele Locatelli 7284803f8b Merge tag 'TestBypassExeMode' into develop
Aggiunto bypas exe mode cimolai x testing gest stati e suggerimento
chiusura
2022-12-09 09:41:03 +01:00
Samuele Locatelli 0ab2655947 Merge branch 'release/TestBypassExeMode' 2022-12-09 09:40:49 +01:00
Samuele Locatelli dee5cbefc8 Cimolai
- altro fix logging
- fix exe mode
- bypass x test stati
2022-12-09 09:40:30 +01:00
Samuele Locatelli 46415e0869 Merge tag 'UpdateLogCimolai' into develop
Aggiunta log x stati travel CIMOLAI
2022-12-09 09:20:26 +01:00
Samuele Locatelli 5e06f06a85 Merge branch 'release/UpdateLogCimolai' 2022-12-09 09:20:13 +01:00
Samuele Locatelli 746873624a update x log CIMOLAI 2022-12-09 09:19:42 +01:00
Samuele E. Locatelli 4a9fee6ce0 Merge tag 'AddCimolaiStatusMan' into develop
Aggiunta gestione CIMOLAI x status TravelLift, decodifica stati x richiesta chiusura ODL all'operatore
2022-12-08 18:50:55 +01:00
Samuele E. Locatelli 60c4c75723 Merge branch 'release/AddCimolaiStatusMan' 2022-12-08 18:50:25 +01:00
Samuele E. Locatelli b1120b574d Aumentato periodo attesa CIMOLAI 2022-12-08 18:49:42 +01:00
Samuele Locatelli eed4e4fff3 - reog codice x IobGeneric 2022-12-08 17:32:01 +01:00
Samuele Locatelli c74fbb9f57 BAGLIETTO:
- miglioramento condizioni checkStato cx travel
- reog codice x IOB CIMOLAI
2022-12-08 17:26:14 +01:00
Samuele Locatelli fef9c95c0c BAGLIETTO:
- preparate le (molte) modifiche x auto chiusura ODL
2022-12-08 17:16:46 +01:00
Samuele E. Locatelli 379157c767 Merge branch 'develop' of https://gitlab.steamware.net/steamware/Mapo-IOB-WIN into develop 2022-12-06 21:49:00 +01:00
Samuele E. Locatelli 674605ecf4 refresh conf memoria SAIM (in prod) 2022-12-06 21:48:31 +01:00
Samuele E. Locatelli f3d8f4f36f update conf zetapack 2022-12-06 21:47:13 +01:00
Samuele E. Locatelli 4cec875964 update conf saim & centerfrigo 2022-12-06 21:47:08 +01:00
Samuele E. Locatelli 3f58a52741 Merge tag 'TestSaimMemory' into develop
Fix versione check indice memoria SAIM
2022-12-02 20:09:23 +01:00
Samuele E. Locatelli db94dc3f31 Merge branch 'release/TestSaimMemory' 2022-12-02 20:09:06 +01:00
Samuele E. Locatelli dfde1cefd5 fix decode tipo memorie 2022-12-02 19:52:58 +01:00
Samuele E. Locatelli 45656fec10 ModBus TCO:
Correzione decodifica ma qualcosa ancora non va bene...
2022-12-02 19:52:42 +01:00
Samuele E. Locatelli 578620d1cd Update conf SAIM da testare 2022-12-02 19:39:27 +01:00
Samuele Locatelli 9d43293b35 Inizio update SAIM 2022-12-01 18:27:18 +01:00
Samuele Locatelli 5a6056d898 Merge tag 'AddImportFileAutoOdlDaily' into develop
Update gestione import file + autoOdlDaily
2022-12-01 15:22:44 +01:00
Samuele Locatelli 364ac36baa Merge branch 'release/AddImportFileAutoOdlDaily' 2022-12-01 15:20:56 +01:00
Samuele Locatelli 38abdae335 Aggiunta funzionalità importFile x SAIM/Centerfrigo 2022-12-01 15:20:11 +01:00
Samuele Locatelli f36fff0568 Update conf SAIM/Centerfrigo x Giacovelli 2022-12-01 15:19:41 +01:00
Samuele Locatelli 4f37dae021 OK bozza decodifica x TURI 2022-11-30 12:10:23 +01:00
Samuele Locatelli 2ed8cfe371 Fix compilazione con System.IO.Compession!!! 2022-11-30 10:21:59 +01:00
Samuele Locatelli 5c6a4416a9 Update nuget x FTP 2022-11-30 08:00:24 +01:00
Samuele Locatelli 8a2fa432d9 Update proxy ICOEL 2022-11-30 08:00:03 +01:00
Samuele E. Locatelli 36c3a9cb0d Completata lettura in blocchi memoria 2022-11-21 22:32:29 +01:00
Samuele E. Locatelli 67db15a5b3 update conf SAIM x testing 2022-11-21 21:40:59 +01:00
Samuele E. Locatelli bb652ad220 Update modalità lettura test 2022-11-21 21:40:47 +01:00
Samuele E. Locatelli f1786511ee MemBlock:Pulizia aree test LETTURA residuali (non usate) 2022-11-21 21:40:29 +01:00
Samuele E. Locatelli dd04ad966a test ok x SAIM 3!!! 2022-11-21 20:14:43 +01:00
Samuele E. Locatelli f1f8792d3a fix conf lettura test (DA PROVARE!!!) 2022-11-21 20:13:15 +01:00
Samuele E. Locatelli ed63f99045 fir readblock conf 2022-11-21 20:10:18 +01:00
Samuele E. Locatelli 45404f078e Update conf SAIM 2022-11-21 20:08:42 +01:00
Samuele Locatelli 2bc5177a40 SAIM
- Aggiunta gestione EnableTest
- step testing lettura memBlock all'avvio
2022-11-21 19:59:35 +01:00
Samuele E. Locatelli a552e77aa9 Merge branch 'master' into develop 2022-11-21 17:15:00 +01:00
Samuele E. Locatelli 00b9e0d8b4 Merge branch 'develop' 2022-11-21 17:12:44 +01:00
Samuele E. Locatelli 8f147516d3 update vers test 2022-11-21 17:07:25 +01:00
Samuele E. Locatelli 6a04ddb7c4 update conf json x SAIM 2022-11-21 17:05:46 +01:00
Samuele Locatelli e636ca721f Merge tag 'SaimUpdate' into develop
Update IOB x SAIM
2022-11-21 16:16:18 +01:00
Samuele Locatelli d74e017829 Merge branch 'release/SaimUpdate' 2022-11-21 16:16:12 +01:00
Samuele Locatelli 5966493251 aggiunta in proj del componente Saim 2022-11-21 16:15:11 +01:00
Samuele Locatelli ce2d91615f update conf 2 SAIM 2022-11-21 16:11:18 +01:00
Samuele Locatelli f8a92debb4 Merge tag 'FirstSaim' into develop
Release iniziale SAIM
2022-11-21 15:19:50 +01:00
Samuele Locatelli 452471eafe Merge branch 'release/FirstSaim' 2022-11-21 15:19:35 +01:00
Samuele Locatelli 22a670b881 BOzza SAIM da provare 2022-11-21 15:19:04 +01:00
Samuele Locatelli 7c91ffdaf4 Update conf ULMA con veto 2022-11-18 19:28:10 +01:00
Samuele Locatelli de84685b9b Update conf ULMA 2022-11-18 19:25:55 +01:00
Samuele Locatelli 9fa0baf1a1 Merge tag 'PrimaReleaseUlma' into develop
Prima release ULMA da testare
2022-11-18 18:31:34 +01:00
Samuele Locatelli 1f1a8b127d Merge branch 'release/PrimaReleaseUlma' 2022-11-18 18:31:23 +01:00
Samuele E. Locatelli f760186916 Completato conf ULMA iniziale 2022-11-18 18:30:28 +01:00
Samuele E. Locatelli 57ffe97878 Fix conf x ULMA 2022-11-18 11:54:22 +01:00
Samuele Locatelli 8881c6fc04 Prima bozza ULMA OPC-UA 2022-11-17 19:24:41 +01:00
Samuele Locatelli c65799b93d Merge tag 'UpdateStartLogTrace' into develop
Ancora pulizia info / trace all'avvio
2022-11-15 14:23:00 +01:00
Samuele Locatelli a69df23835 Merge branch 'release/UpdateStartLogTrace' 2022-11-15 14:22:49 +01:00
Samuele Locatelli ddc66cc5a0 Ancora fix logging 2022-11-15 13:16:03 +01:00
Samuele Locatelli 543126f467 Ancora riduzione verbosità logging 2022-11-15 13:16:01 +01:00
Samuele Locatelli 103e5bc46f Merge tag 'UpdateBagliettoCimolaiStartup' into develop
Fix gestione logfile
2022-11-15 12:35:21 +01:00
Samuele Locatelli 60c8b0384a Merge branch 'release/UpdateBagliettoCimolaiStartup' 2022-11-15 12:35:15 +01:00
Samuele Locatelli 66bc72f6ce refresh finali 2022-11-15 12:34:55 +01:00
Samuele Locatelli 6192a47ce6 Fix vari OpcUA e Cimolai 2022-11-15 12:34:51 +01:00
Samuele Locatelli 7856f90405 Fix verbosità avvio IOB 2022-11-15 12:34:41 +01:00
Samuele Locatelli 864eee46ee Merge tag 'UpdateBagliettoWork' into develop
update gestione condizione work
2022-11-15 11:32:59 +01:00
Samuele Locatelli 737979b264 Merge branch 'release/UpdateBagliettoWork' 2022-11-15 11:32:50 +01:00
Samuele Locatelli 7845dedfef Update conf baglietto + traduzione lavora fixed 2022-11-15 11:32:26 +01:00
Samuele Locatelli 3af8933678 update desciriozn assorbimenti motore zetapack 2022-11-14 15:27:21 +01:00
Samuele Locatelli ca26ba39d7 update conf decodifica motori 2022-11-14 15:22:09 +01:00
Samuele Locatelli e7fe61c394 Merge tag 'FixMultiIntCondition' into develop
Gestione multi condizione x INT val
2022-11-14 11:48:43 +01:00
Samuele Locatelli ef25994615 Merge branch 'release/FixMultiIntCondition' 2022-11-14 11:48:27 +01:00
Samuele Locatelli 7892366242 Fix conf zetapack 2022-11-14 11:48:07 +01:00
Samuele E. Locatelli f4e78055d4 Fix conf stato work 2022-11-14 11:46:39 +01:00
Samuele Locatelli 02a021cc0f Update x test multivalore INT 2022-11-14 11:28:07 +01:00
Samuele Locatelli 3e322c2dc9 update copnf fattore scala x zetapack 2022-11-12 12:15:49 +01:00
Samuele Locatelli a2e866540e Merge tag 'UpdateZetapackModbus' into develop
Versione zetapack (con conf) pronta da provare 4 PLC
2022-11-12 11:10:53 +01:00
Samuele Locatelli 8cae143f82 Merge branch 'release/UpdateZetapackModbus' 2022-11-12 11:10:38 +01:00
Samuele E. Locatelli 2f70720f4f fix include/copy files 2022-11-12 11:08:18 +01:00
Samuele E. Locatelli f5f973f410 ZetaPack:
- conf x primi 2 modbus linee 1 e 2 (calibratrice)
- conf banchi linea 1 e 2
2022-11-12 10:59:18 +01:00
Samuele E. Locatelli 015d0abd1c Fixed conf x Zetapack, primo PLC ModBUs 2022-11-11 19:30:10 +01:00
Samuele E. Locatelli cd28df8a1d Zetapack:
- aggiunto metodo test INT
- conf aggiornata
2022-11-11 19:13:44 +01:00
Samuele E. Locatelli df60390f62 Merge remote-tracking branch 'origin/develop' into develop 2022-11-11 11:24:48 +01:00
Samuele Locatelli c094e97920 UPdate x testing Zetapack PLC 2022-11-11 11:01:15 +01:00
Samuele Locatelli 3bd8ec6d04 Merge tag 'TypoReorgCode' into develop
Update x reorg codice (CodeMaid)
2022-11-10 17:24:39 +01:00
Samuele Locatelli 59764bbac3 Merge branch 'release/TypoReorgCode' 2022-11-10 17:24:26 +01:00
Samuele Locatelli cbfeb7ec38 typo refresh 2022-11-10 17:24:04 +01:00
Samuele Locatelli a92527e02d reorg codice 2022-11-10 17:21:18 +01:00
Samuele Locatelli 0a60cac585 Merge tag 'AddPArametricBitConditionsParams' into develop
Aggiunta gestione aprametrica bitconditions
2022-11-10 17:17:24 +01:00
Samuele Locatelli 7fbfa144a9 Merge branch 'release/AddPArametricBitConditionsParams' 2022-11-10 17:17:15 +01:00
Samuele Locatelli 95c4aca305 ModbusTcp:
- aggiunta gestione decodifica bitConditions
 - test x Imax Jetco
2022-11-10 17:16:35 +01:00
Samuele Locatelli f685d99442 Merge tag 'UpdateImaxAeromacDecoding' into develop
Update deconding area Jetco ImaxAeromec
2022-11-10 15:48:44 +01:00
Samuele Locatelli e1c8b84ff2 Merge branch 'release/UpdateImaxAeromacDecoding' 2022-11-10 15:48:02 +01:00
Samuele Locatelli 7066f25073 Update IOB x IMAX filtro Jetco 2022-11-10 15:46:56 +01:00
Samuele Locatelli 546b6715fb refresh conf VL22 da DB1001 2022-11-10 15:13:09 +01:00
Samuele Locatelli c333dab24f Merge tag 'UpdateLastResetAndCount' into develop
Update reset & count Lasco
2022-11-10 10:16:54 +01:00
Samuele Locatelli 137456b70f Merge branch 'release/UpdateLastResetAndCount' 2022-11-10 10:16:42 +01:00
Samuele Locatelli 0673e2aeb9 Update Lasco: gestione insert PzComm + reset contapezzi 2022-11-10 10:16:17 +01:00
Samuele Locatelli 8fb9dce7d0 Merge tag 'UpdateCimolaiStartPODL' into develop
Update per gestione avvio PODL CIMOLAI da macchina
2022-11-09 17:37:42 +01:00
Samuele Locatelli 26745bc696 Merge branch 'release/UpdateCimolaiStartPODL' 2022-11-09 17:37:29 +01:00
Samuele Locatelli c7ee3c7142 Correzione URL x MP-IO force start PODL 2022-11-09 17:37:03 +01:00
Samuele Locatelli 0345d996d6 Cleanup codice CIMOLAI 2022-11-09 17:12:53 +01:00
Samuele Locatelli 8af7eeccc6 Baglietto OPC-UA Cimolai:
- Modifiche per gesitone avvio/chiusura ODL da stato InCorso
2022-11-09 16:56:23 +01:00
Samuele Locatelli 451dcf5fff Merge tag 'AddImaxIob' into develop
Aggiunta preliminare adapter IMAX x filtri modbus in Jetco
2022-11-08 09:31:35 +01:00
Samuele Locatelli e3b3ac9221 Merge branch 'release/AddImaxIob' 2022-11-08 09:31:17 +01:00
Samuele Locatelli 11f5a0644a Merge branch 'develop' of https://gitlab.steamware.net/steamware/Mapo-IOB-WIN into develop 2022-11-08 09:30:35 +01:00
Samuele Locatelli da53277a58 Modifiche progetto demo VB x impiego con IOB-MAN 2022-11-08 09:30:16 +01:00
Samuele Locatelli 1287bdd5c7 Aggiunta nuova classe per gestione ImaxAeromec 2022-11-08 09:30:01 +01:00
Samuele Locatelli ab196be84b Aggiunta conf (da testare) x Jetco aspiratori IMAX 2022-11-08 09:29:33 +01:00
Samuele E. Locatelli 1a02397b31 Merge tag 'UpdateLognadLascoProgName' into develop
Update gestione lasco e ProgName
2022-10-31 10:51:23 +01:00
Samuele E. Locatelli 6d0b120860 Merge branch 'release/UpdateLognadLascoProgName' 2022-10-31 10:51:02 +01:00
Samuele E. Locatelli 2ee8526b2d Update x Lasco:
- log esteso
- gestione anche di setProg come task gestito
2022-10-31 10:50:21 +01:00
Samuele E. Locatelli 1f61ae33ce Riorganizzaizone codice 2022-10-31 10:49:47 +01:00
Samuele Locatelli 1f8cfc6fe7 IobManComm:
- modifica nome progetto
- nuget pack (manuale)
2022-10-27 17:10:12 +02:00
Samuele Locatelli 12b250089d Merge tag 'AddTestClientMan' into develop
Update x demo client app + dll x gestione da IOB-MAN di programmi
2022-10-26 16:48:00 +02:00
Samuele Locatelli 421f382c65 Merge branch 'release/AddTestClientMan' 2022-10-26 16:47:40 +02:00
Samuele Locatelli 66865195d5 cleanup + output su LIB 2022-10-26 16:46:03 +02:00
Samuele Locatelli 2e29127d19 Prima release TestClientMan 2022-10-26 15:04:55 +02:00
Samuele Locatelli 1f498b01d1 Merge tag 'UpdateLogCreazioneCSV' into develop
Aggiunta log info in fase creazione CSV
2022-10-21 15:37:15 +02:00
Samuele Locatelli e93aec990a Merge branch 'release/UpdateLogCreazioneCSV' 2022-10-21 15:37:00 +02:00
Samuele Locatelli 601f48ab8a update log fase creazione CSV 2022-10-21 15:36:38 +02:00
Samuele Locatelli 519b608870 Merge tag 'UpdateExportInt' into develop
update gestione export INT x CSV
2022-10-20 11:45:44 +02:00
Samuele Locatelli 557499592f Merge branch 'release/UpdateExportInt' 2022-10-20 11:45:36 +02:00
Samuele Locatelli 1248ba0cbf Test modifica x filtro RunModeVal 2022-10-20 11:45:13 +02:00
Samuele Locatelli b64df4682f Fix keyRunMode x OPC UA Cimolai 2022-10-20 11:42:03 +02:00
Samuele Locatelli b47882d0fc Merge tag 'UpdateBagliettoHeader' into develop
update x header e problema converisone stringhe da float con , --> .
2022-10-20 10:12:07 +02:00
Samuele Locatelli e741eaa88a Merge branch 'release/UpdateBagliettoHeader' 2022-10-20 10:11:50 +02:00
Samuele Locatelli d042c077bb Baglietto:
- update x header opzionale
- update valori string/decimal
2022-10-20 10:11:28 +02:00
Samuele Locatelli 9656a803aa Merge tag 'FixDownloadLocal' into develop
Fix download dir
2022-10-19 15:59:57 +02:00
Samuele Locatelli 412de6b7ed Merge branch 'release/FixDownloadLocal' 2022-10-19 15:59:13 +02:00
Samuele Locatelli 02cbc242d9 Fix local download path 2022-10-19 15:58:56 +02:00
Samuele Locatelli 98b9dd4397 Merge tag 'FixAppDir' into develop
Fix directory avvio (IOB-WIN e non IOB-MAN)
2022-10-19 15:45:56 +02:00
Samuele Locatelli cd4a8aef8f Merge branch 'release/FixAppDir' 2022-10-19 15:45:45 +02:00
Samuele Locatelli 9c1d3dabcf Fix dir eseguibile 2022-10-19 15:45:29 +02:00
Samuele Locatelli 29e082c265 Merge tag 'TestDir' into develop
Test directory
2022-10-19 15:37:39 +02:00
Samuele Locatelli a991542ff3 Merge branch 'release/TestDir' 2022-10-19 15:37:31 +02:00
Samuele Locatelli 5487eff9a0 Update test dir path 2022-10-19 15:37:17 +02:00
Samuele Locatelli b42f855ffa Merge tag 'UpdateFtpRemote' into develop
Update gestione FTP remote
2022-10-19 15:25:24 +02:00
Samuele Locatelli d830f65aa6 Merge branch 'release/UpdateFtpRemote' 2022-10-19 15:25:15 +02:00
Samuele Locatelli 29b640710a Update gestione FTP
- check cambaiti x test VSFTP
- fix gestione home dir
- fix download e spostamento locale
2022-10-19 15:24:55 +02:00
Samuele Locatelli 52eae095bb Merge tag 'LogMoveDir' into develop
Aggiunto lgo operazione move dir
2022-10-19 11:58:57 +02:00
Samuele Locatelli 29e4de3afa Merge branch 'release/LogMoveDir' 2022-10-19 11:58:44 +02:00
Samuele Locatelli 5460cf1f20 Update move path fase 2022-10-19 11:58:18 +02:00
Samuele Locatelli 915c2f4ff3 Merge tag 'UpdateSimFtp' into develop
Update sim ftp x parametri e gest folder locale
2022-10-19 11:46:59 +02:00
Samuele Locatelli 01311a846a Merge branch 'release/UpdateSimFtp' 2022-10-19 11:46:47 +02:00
Samuele Locatelli aa77100740 Update conf x gestione local/rem dir ogni SIM 2022-10-19 11:46:28 +02:00
Samuele Locatelli 248dc49254 Minor refresh 2022-10-19 11:00:57 +02:00
Samuele Locatelli 64284dd8dd Merge tag 'FixValoriEdit' into develop
Fix valori edit x CIMOLAI
2022-10-18 20:43:44 +02:00
Samuele Locatelli febdc131eb Merge branch 'release/FixValoriEdit' 2022-10-18 20:43:25 +02:00
Samuele Locatelli a8068f3841 Fix decodifica valori editati x parametri CIMOLAI 2022-10-18 20:43:07 +02:00
Samuele Locatelli 5990bbc385 Merge tag 'UpdateNugetPackDeps' into develop
Update deps nuget x EgwProxy
2022-10-18 15:54:57 +02:00
Samuele Locatelli ef1dc655d4 Merge branch 'release/UpdateNugetPackDeps' 2022-10-18 15:54:32 +02:00
Samuele Locatelli 568e65946a Update NugetPack EgwProxy
- ftp
- icoel
2022-10-18 15:54:07 +02:00
Samuele Locatelli ad6b0478f3 Merge commit 'de9b6fa3fb8a7d7c2a0f6d4bedfbba1f71dbcb94' into SDK/Icoel 2022-10-18 15:49:34 +02:00
Samuele Locatelli de9b6fa3fb Update nuget Icoel con EntityFramework 6.4.4 2022-10-18 15:47:44 +02:00
Samuele Locatelli 89c964c3cd COmpleto update nuspec x Icoel proxy 2022-10-18 15:41:12 +02:00
Samuele Locatelli a3acb09a03 Ancora update nuget deps Icoel 2022-10-18 15:36:37 +02:00
Samuele Locatelli e0cb419f82 Update nuspec x Icoel package... inizio 2022-10-18 15:33:42 +02:00
Samuele Locatelli 414d5df6ee Update nuget/nuspec 2022-10-18 15:23:15 +02:00
Samuele Locatelli 962027e436 Update conf dipendenze nuget 2022-10-18 15:15:51 +02:00
Samuele Locatelli af2cbd6beb update nuget dep x FTP proxy 2022-10-18 15:13:21 +02:00
Samuele Locatelli ffc6e8be5e Merge tag 'UpdateWpsDrivers' into develop
Update dirvers x CHROME/FIREFOX/EDGE
2022-10-18 13:44:56 +02:00
Samuele Locatelli 7566a5c369 Merge branch 'release/UpdateWpsDrivers' 2022-10-18 13:44:45 +02:00
Samuele Locatelli cdad086744 Aggiunto driver EDGE + udpate selenium drivers 2022-10-18 13:44:24 +02:00
Samuele Locatelli 5b45e7ddfc Typo fix 2022-10-18 13:12:17 +02:00
Samuele Locatelli cb29265547 Update gestione FTP x remote dir 2022-10-18 12:49:07 +02:00
Samuele Locatelli 7aee0d92d9 Merge branch 'release/FixCimolaiVetoFLV' 2022-10-14 15:50:34 +02:00
Samuele E. Locatelli eadc2c6eb5 Merge remote-tracking branch 'origin/develop' into develop 2022-10-14 15:40:46 +02:00
Samuele Locatelli 93a8bc2315 Aggiunto filtro in procRunMode 2022-10-14 15:40:08 +02:00
Samuele Locatelli ad76b97930 Merge tag 'AddVetoFluxLogValueOpcUa' into develop
Update CIMOLAI/Baglietto x filtro OPC-UA x key/val singolo valore OPC-UA
2022-10-14 15:08:52 +02:00
Samuele Locatelli c8aa06098d Merge branch 'release/AddVetoFluxLogValueOpcUa' 2022-10-14 15:08:33 +02:00
Samuele Locatelli c812e82bf4 Update conf x escludere singoli key/val da invio 2022-10-14 15:08:00 +02:00
Samuele Locatelli 57b068bf02 Merge tag 'FIxCimolaiLavora45' into develop
Esclusi comandi ACT 4 e 5 di sterzatura
2022-10-10 17:15:46 +02:00
Samuele Locatelli 3a82500232 Merge branch 'release/FIxCimolaiLavora45' 2022-10-10 17:15:35 +02:00
Samuele Locatelli dd090d5adb Escluso attività 4-5 x stato lavora 2022-10-10 17:15:12 +02:00
Samuele Locatelli 8eadfce339 Merge tag 'UpdateCimolayActivity' into develop
Aggiornamento x cimolay gestione attività corrente
2022-10-10 16:10:44 +02:00
Samuele Locatelli ee286d0049 Merge branch 'release/UpdateCimolayActivity' 2022-10-10 16:10:33 +02:00
Samuele Locatelli b57104507f Update CIMOLAI da testare 2022-10-10 16:09:42 +02:00
Samuele Locatelli 32656645f7 update OPC cimolai 2022-10-10 12:40:07 +02:00
Samuele Locatelli 679388ef20 update OPC Cimolai: richiesta snapshot (da testare) 2022-10-10 12:40:01 +02:00
Samuele Locatelli fc806af86e refresh OPC UA e modifiche varie baglietto 2022-10-08 17:48:08 +02:00
Samuele Locatelli 95dbe07693 Update metodi get in SIM e CIMOLAI
- da ri-testare in sim
- da testare in prod
- DOVREBBE aver tutto x FTP
2022-10-07 20:02:44 +02:00
Samuele Locatelli 79b37db58f update test x SIMUL 01 2022-10-07 19:55:46 +02:00
Samuele Locatelli c7f640af1e Metodi get da IO:
- scarica e deserializza
- da rivedere il distinct lista articoli...
2022-10-06 19:23:23 +02:00
Samuele Locatelli 35637bb693 Update conf baglietto x FTP 2022-10-06 12:26:49 +02:00
Samuele Locatelli bf0ee03589 Test FTP x SIMUL_09 2022-10-06 12:26:39 +02:00
Samuele Locatelli 1a563e3865 Area CONF:
- review file da includere/escludere da setup CONF base
2022-10-06 12:25:53 +02:00
Samuele Locatelli bf2c780049 Completato setup/test x invio FTP 2022-10-06 12:19:47 +02:00
Samuele Locatelli 0778d44235 PRIMO export CSV ok... 2022-10-05 20:05:16 +02:00
Samuele Locatelli 5861298b91 Bozza test export csv
- esporta i file
- NON rispetta description
- no rispetta ordine
2022-10-05 18:26:40 +02:00
Samuele Locatelli e47ffe7b4e Merge tag 'FixMtcNoTask2exe' into develop
Fix gesitone tast2exe "vuota" per MTConnect
2022-10-05 09:34:01 +02:00
Samuele Locatelli fe39b23e74 Merge branch 'release/FixMtcNoTask2exe' 2022-10-05 09:33:48 +02:00
Samuele Locatelli 20a11f61e7 Update gestione Task2Exe x MTC:
- ad esempio biglia 438 jetco NON esegue task setup (MTC è readOnly)
2022-10-05 09:33:25 +02:00
Samuele Locatelli a97546920e Merge branch 'develop' 2022-10-04 18:47:16 +02:00
Samuele Locatelli bdeb60507c Merge branch 'SDK/Ftp' into develop 2022-10-04 18:47:03 +02:00
Samuele Locatelli d9711f5dd9 Merge tag 'AddSdkFtp' into develop
Aggiunta conf x nuovo SDK Ftp, sistemata parte NuGet e parte DocFx
2022-10-04 18:46:36 +02:00
Samuele Locatelli bfeda7ed6a Merge branch 'release/AddSdkFtp' 2022-10-04 18:46:03 +02:00
Samuele Locatelli 7a3e03c053 Fix conf x docfx 2022-10-04 18:44:36 +02:00
Samuele Locatelli b2e5f82de5 Merge branch 'develop' into SDK/Ftp 2022-10-04 18:41:18 +02:00
Samuele Locatelli e4db9763c4 Update x FTP
- conf x docFx
- conf x nuget send
2022-10-04 18:40:01 +02:00
Samuele Locatelli 21770cfa66 Merge branch 'SDK/Ftp' into develop 2022-10-04 18:30:49 +02:00
Samuele Locatelli d233c51364 Update progetto netFramework 4.6.2 x FTP 2022-10-04 18:27:59 +02:00
Samuele Locatelli be51449c62 Update YAML x nuovo SDK Ftp 2022-10-04 16:57:56 +02:00
Samuele Locatelli e9f5244b81 Fix metodo controllo upload file 2022-10-04 16:52:44 +02:00
Samuele Locatelli be6e838a36 Completata implementaizone test FTP
- errore post upl,oad file
- ok altri metodi
2022-10-04 16:49:42 +02:00
Samuele Locatelli 9c2fb93bad Ancor aupdate test FTP 2022-10-04 12:22:03 +02:00
Samuele Locatelli 5d8ac192ac OK primo test ftp
- crea directory
2022-10-04 11:05:34 +02:00
Samuele Locatelli fa7eb5ad13 bozza preliminare client FTP (da testare) 2022-10-03 19:23:50 +02:00
Samuele Locatelli f780f99705 minor cleanup 2022-10-03 11:20:23 +02:00
Samuele Locatelli ab2323bf3f Merge tag 'UpdateLascoString' into develop
Update stringhe siemens x LASCO
2022-09-30 16:08:14 +02:00
Samuele Locatelli 0829378d59 Merge branch 'release/UpdateLascoString' 2022-09-30 16:08:06 +02:00
Samuele Locatelli be6f944646 Fix calcolo lungh totale x stringhge siemens (errore LASCO) 2022-09-30 16:07:46 +02:00
Samuele Locatelli 36e6038de4 Merge tag 'UpdateSimec' into develop
Update gesitone salvataggio num pz richeisti x SIMEC
2022-09-30 13:05:42 +02:00
Samuele Locatelli e11b88ce62 Merge branch 'release/UpdateSimec' 2022-09-30 13:05:31 +02:00
Samuele Locatelli 5296b91f03 Update SIMEC x scrittura num pezzi 2022-09-30 13:05:11 +02:00
Samuele Locatelli e01fdc7d94 Merge tag 'UpdateLastWithMemMapR' into develop
Update LASCO x gestioen conf da json memorie/traduzioni
2022-09-29 16:09:30 +02:00
Samuele Locatelli c592f485ec Merge branch 'release/UpdateLastWithMemMapR' 2022-09-29 16:09:19 +02:00
Samuele Locatelli 36cdf993b8 Update LASCO x Valvital 2022-09-29 16:08:51 +02:00
Samuele Locatelli d474a5f75c Update sim ODL x 24h (1440) 2022-09-29 16:08:37 +02:00
Samuele Locatelli 0ce2852e9a Merge tag 'TestFixRestartTooFreq' into develop
Tentativo riduzione log in case di ri-connesisone notturna
2022-09-29 12:05:35 +02:00
Samuele Locatelli 45cecaa3cb Merge branch 'release/TestFixRestartTooFreq' 2022-09-29 12:05:10 +02:00
Samuele Locatelli 1cc9973a2f Gestione log con veto
TryFix condizioni reboot troppo rapido
2022-09-29 12:04:22 +02:00
Samuele Locatelli e201b3666d Merge tag 'FixFLuxLogVerbose' into develop
Update verbosità fluxLog (veto su 2 livelli)
2022-09-26 18:30:25 +02:00
Samuele Locatelli 067bc6ef47 Merge branch 'release/FixFLuxLogVerbose' 2022-09-26 18:30:13 +02:00
Samuele Locatelli 6b40ebfe9f FluxLog:
- check invio start IOB da AdapterForm/app.config
- aggiunto invio WDST da conf singolo *.ini (es Baglietto)
2022-09-26 18:29:05 +02:00
Samuele Locatelli 3e8418c8ab Merge tag 'updateSdkObjItemPar' into develop
Update adapter x nuova struttura parametri da aggiornare
2022-09-22 19:01:15 +02:00
Samuele Locatelli f56d389946 Merge branch 'release/updateSdkObjItemPar' 2022-09-22 19:00:46 +02:00
Samuele Locatelli da056d95a0 Fix x nuova gestione parametri da objItem SDK 2022-09-22 19:00:17 +02:00
Samuele Locatelli 18510afaf6 Update log.trace x individuare tryDisconnect 2022-09-22 17:24:17 +02:00
Samuele Locatelli 924944a425 Merge tag 'UpdateOmpVerboseLogResetContapezzi' into develop
Update x gestione log verboso contapezzi OMP
2022-09-21 18:30:50 +02:00
Samuele Locatelli d31eb46ec8 Merge branch 'release/UpdateOmpVerboseLogResetContapezzi' 2022-09-21 18:30:41 +02:00
Samuele Locatelli 0ac53b3219 Merge remote-tracking branch 'origin/develop' into develop 2022-09-21 18:30:10 +02:00
Samuele Locatelli 36170f369a Update x log verboso OMP x scrittura contapezzi 2022-09-21 18:29:36 +02:00
Samuele E. Locatelli 183c441430 Merge tag 'updateCheckAlarms' into develop
Fix gestione alalrmi 32 bit con mask x ModBus
2022-09-20 11:32:13 +02:00
Samuele E. Locatelli 6ad13b80b2 Merge branch 'release/updateCheckAlarms' 2022-09-20 11:31:46 +02:00
Samuele E. Locatelli b9578f4dab Fix gestione allarmi:
- update config finassi
- fix check allarmi 32 bit
2022-09-20 11:30:29 +02:00
Samuele E. Locatelli 57f13e31db Merge branch 'master' into develop 2022-09-19 18:26:05 +02:00
Samuele E. Locatelli 6d31362a9c Update IOB-WIN Helpi:
- status, il valore 2 come 4 è lavora
2022-09-19 18:25:50 +02:00
Samuele E. Locatelli 6a2c39e3cf Merge branch 'develop' 2022-09-16 18:00:43 +02:00
Samuele E. Locatelli 5c385bd58e Fix EStop (non era negato) 2022-09-16 18:00:34 +02:00
Samuele E. Locatelli 4c264dbfb5 Merge branch 'FeatureOpcUaBaglietto' into develop 2022-09-16 17:17:00 +02:00
Samuele E. Locatelli 3db4688e20 Merge branch 'FeatureOpcUaBaglietto' 2022-09-16 17:16:41 +02:00
Samuele E. Locatelli ef83c4ad66 Fix contapezzi PLC x ModBus (dati float) 2022-09-16 17:16:32 +02:00
Samuele Locatelli b768a8d5aa Merge branch 'master' into FeatureOpcUaBaglietto 2022-09-16 16:23:39 +02:00
Samuele Locatelli 9a4c0a935d Merge branch 'develop' 2022-09-16 16:23:23 +02:00
Samuele Locatelli b2128bc23b Update modbus x HELPI e contapezzi 2022-09-16 16:23:13 +02:00
Samuele E. Locatelli 5b6d9d7801 Merge remote-tracking branch 'origin/develop' into FeatureOpcUaBaglietto 2022-09-12 10:30:19 +02:00
Samuele E. Locatelli 579b59e9d5 Fix conteggio messaggi allarme in avvio IOB 2022-09-12 10:29:45 +02:00
Samuele Locatelli 8504b8aef7 Merge branch 'develop' 2022-09-12 10:01:22 +02:00
Samuele Locatelli 7457fae6f8 Merge remote-tracking branch 'origin/FeatureOpcUaBaglietto' into develop 2022-09-12 10:01:15 +02:00
Samuele E. Locatelli ab106cc8c4 Merge remote-tracking branch 'origin/develop' into FeatureOpcUaBaglietto 2022-09-12 09:55:54 +02:00
zaccaria.majid 75f7a19418 correzione errori di battitura file
nel readme nella cartella utilityScripts
2022-09-12 09:14:32 +02:00
zaccaria.majid b20f37140d Merge branch 'FeatureOpcUaBaglietto' of https://gitlab.steamware.net/steamware/Mapo-IOB-WIN into FeatureOpcUaBaglietto 2022-09-12 08:41:50 +02:00
zaccaria.majid 663e8459d7 fix script per file csv 2022-09-12 08:40:08 +02:00
Samuele Locatelli f5f04c68d1 Allarmi OPC-UA:
- bozza recupero dati da provare
- setup Baglietto
2022-09-09 17:14:49 +02:00
Samuele Locatelli 30f0601a09 CodeMaid
- fix IobGeneric + IobModBusTCP
2022-09-09 17:09:06 +02:00
Samuele Locatelli 5ace8f2fac Gestione allarmi:
- spostato da ModBus/Siemens a IobGeneric metodo hasAlarms
- implementaizoni in override di base
2022-09-09 17:04:17 +02:00
Samuele Locatelli b1626b1381 Fix errore decoficia allarmi 8bit 2022-09-09 16:30:46 +02:00
Samuele E. Locatelli 47a796b945 Merge remote-tracking branch 'origin/develop' into FeatureOpcUaBaglietto 2022-09-09 15:53:50 +02:00
Samuele Locatelli acc0bf2734 UPdate readme + test export CIMOLAI 2022-09-09 15:50:59 +02:00
Samuele Locatelli c139c6e7ce Merge remote-tracking branch 'origin/FeatureOpcUaBaglietto' into develop 2022-09-09 15:32:42 +02:00
Samuele Locatelli de21437881 Readme iniziale 2022-09-09 15:32:18 +02:00
Samuele Locatelli 864c71a79f Spostsamento script in folder specifica 2022-09-09 15:32:12 +02:00
Samuele E. Locatelli 0c8ea6f344 Merge branch 'FeatureOpcUaBaglietto' of https://gitlab.steamware.net/steamware/Mapo-IOB-WIN into FeatureOpcUaBaglietto 2022-09-09 15:17:17 +02:00
Samuele E. Locatelli 52268e633c Fix filtraggio valori BLINK
- Baglietto (NONE)
- FInassi (131, B0,B1,B7)
2022-09-09 15:17:07 +02:00
Samuele Locatelli c95eacf22b Merge remote-tracking branch 'origin/FeatureOpcUaBaglietto' into develop 2022-09-09 15:09:21 +02:00
zaccaria.majid fba5879902 fix script 2022-09-09 12:42:17 +02:00
zaccaria.majid d1db6dbefc Merge branch 'FeatureOpcUaBaglietto' of https://gitlab.steamware.net/steamware/Mapo-IOB-WIN into FeatureOpcUaBaglietto 2022-09-09 12:27:46 +02:00
zaccaria.majid d6e9371d24 completamento script automazione+fix file allarmi 2022-09-09 12:27:40 +02:00
Samuele E. Locatelli cd99295817 Merge branch 'develop' into FeatureOpcUaBaglietto 2022-09-08 19:25:01 +02:00
Samuele Locatelli d7690b8d1d Merge branch 'develop' of https://gitlab.steamware.net/steamware/Mapo-IOB-WIN into develop 2022-09-08 19:23:41 +02:00
Samuele Locatelli d2b46deff1 Merge tag 'RealignPostCodeMaid' into develop
Riallineamento post CodeMaid globale
2022-09-08 19:23:15 +02:00
Samuele Locatelli 93b2199f1c Merge branch 'release/RealignPostCodeMaid' 2022-09-08 19:23:01 +02:00
Samuele Locatelli 0a5b05467a CodeMaid:
- ancora update... principalmente siemens S7
2022-09-08 19:22:26 +02:00
Samuele Locatelli b09576f91a CodeMaid: ancora update struttura 2022-09-08 19:11:47 +02:00
Samuele Locatelli 6a2ca75de7 CodeMaid:
- ancora update struttura codice IOB-WIN-NEXT
2022-09-08 19:04:48 +02:00
Samuele Locatelli d37d71c51d CodeMaid:
- ancora fix librerie base IOB-UT-NEXT
2022-09-08 18:52:30 +02:00
Samuele Locatelli 3a7eff3554 Refactor CodeMaid classi ultime toccate 2022-09-08 18:47:43 +02:00
Samuele Locatelli 1e9fe1be3d Merge remote-tracking branch 'origin/FeatureOpcUaBaglietto' into develop 2022-09-08 18:43:48 +02:00
Samuele E. Locatelli f270bac1db Merge branch 'develop' of https://gitlab.steamware.net/steamware/Mapo-IOB-WIN into develop 2022-09-08 18:43:37 +02:00
Samuele E. Locatelli c609e7644e Merge branch 'FeatureOpcUaBaglietto' into develop 2022-09-08 18:43:27 +02:00
Samuele E. Locatelli 0901fabe62 Merge tag 'OpcUacPingRetry' into develop
Update codice
2022-09-08 18:43:09 +02:00
Samuele E. Locatelli 61341e2ab8 Merge branch 'FeatureOpcUaBaglietto' of https://gitlab.steamware.net/steamware/Mapo-IOB-WIN into FeatureOpcUaBaglietto 2022-09-08 18:42:57 +02:00
Samuele E. Locatelli d8262e82e9 update conf x baglietto x RunMode 2022-09-08 18:42:48 +02:00
Samuele E. Locatelli 0b0ec306b3 Aggiunto metodo x processing runMode con traduzione 2022-09-08 18:42:38 +02:00
Samuele Locatelli 09dcff9303 Fix pulizia area conf in yaml 2022-09-08 18:42:00 +02:00
Samuele E. Locatelli a28c0acc48 Merge branch 'hotfix/OpcUacPingRetry' 2022-09-08 16:45:42 +02:00
Samuele E. Locatelli 2211fc284d OPC-UA
- aggiunto retry ping con wait random
- conf Finassi e Baglietto x usare questo ritardo e retry
2022-09-08 16:44:01 +02:00
zaccaria.majid 88089c5a7c modifica guppi 2022-09-08 15:02:20 +02:00
zaccaria.majid 1dd6ca4511 Merge branch 'FeatureOpcUaBaglietto' of https://gitlab.steamware.net/steamware/Mapo-IOB-WIN into FeatureOpcUaBaglietto 2022-09-08 14:53:42 +02:00
zaccaria.majid 41e276f069 fine compilazione conf allarmi baglietto 2022-09-08 14:53:32 +02:00
Samuele E. Locatelli 90f735ceb0 OPC-UA:
- modifica gestione file conf XML base x client
2022-09-08 11:58:25 +02:00
Samuele E. Locatelli f0a0e0cb2d Merge remote-tracking branch 'origin/develop' into FeatureOpcUaBaglietto 2022-09-08 11:27:35 +02:00
Samuele Locatelli 1aa4f7da12 Merge remote-tracking branch 'origin/FeatureOpcUaBaglietto' 2022-09-08 11:26:47 +02:00
Samuele E. Locatelli 3c5004253d Test x OMP... 2022-09-08 11:25:39 +02:00
Samuele E. Locatelli 9f7bfebf97 Fix configurazione x OMP FInassi 2022-09-08 11:25:07 +02:00
Samuele E. Locatelli 1e7bf45e8b Cimolai:
- conf OPC-UA ora è corretta (da completare)
2022-09-07 18:36:16 +02:00
Samuele E. Locatelli 1cb0bc84b1 OPC-UA Cimolai:
- conf OPC-UA aggiornata
- fix gestione contapezzi
2022-09-07 18:29:52 +02:00
zaccaria.majid f82824fc41 Compilazione parte di file configurazione allarmi 2022-09-07 17:38:39 +02:00
Samuele E. Locatelli dfe57d73de Setup preliminare conf allarmi 2022-09-07 12:29:46 +02:00
Samuele E. Locatelli 1502588443 Priam release OPC Cimolai (replica da OMP) 2022-09-07 12:17:18 +02:00
Samuele E. Locatelli afa2b2b069 Fix x remote debug Baglietto 2022-09-07 12:17:01 +02:00
Samuele E. Locatelli 04d42a0bc1 Prima conf di test x Cimolai 2022-09-07 12:16:46 +02:00
Samuele E. Locatelli 0ea4e7e122 Aggiunta conf x OPC MBH CImolai 2022-09-07 12:16:30 +02:00
646 changed files with 62535 additions and 11273 deletions
+162 -5
View File
@@ -35,9 +35,9 @@ variables:
# helper x fix version number
.version-fix: &version-fix
- |
$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_DEB = $env:VERS_MAIN+"."+(get-date format yyMM)+"-beta."+(get-date format dHH)
$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_DEB = $env:VERS_MAIN+"."+(get-date -format yyMM)+"-beta."+(get-date -format dHH)
$env:NEW_COPYRIGHT = "EgalWare @ 2006-" + (get-date -format yyyy)
$contenuto = Get-Content -path 'VersGen\VersGen.cs' -Raw
$newContenuto = $contenuto -replace '0.0.0.0', $env:NEW_REL
@@ -46,7 +46,7 @@ variables:
# display versioni generate
$resoconto = "Effettuato fix file VersGen | release v: " + $env:NUM_REL + " | debug v: " + $env:NUM_DEB;
Write-Output $resoconto;
echo "replace completati"
echo "Replace completati"
# helper x fix nuspec file
.nuspec-fix: &nuspec-fix
@@ -93,7 +93,7 @@ variables:
$Target = "Releases\" + $CI_COMMIT_BRANCH + "\" + $env:APP_NAME + ".zip"
cd "$env:APP_NAME\bin\"
$Source = "*"
7zip a -tzip $Target $Source -xr!DATA
7zip a -tzip $Target $Source -xr!DATA\CONF
echo "called ZIP $Source --> $Target"
# helper creazione hash files
@@ -201,6 +201,23 @@ IOB-WIN-NEXT:build:
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.Ftp:build:
stage: build
tags:
- win
variables:
APP_NAME: EgwProxy.Ftp
only:
refs:
- develop
- SDK/Ftp
before_script:
- *nuget-fix
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
- *version-fix
script:
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=Release /p:Platform="x86" /p:OutputPath=bin/ /nodeReuse:false /verbosity:minimal /m'
EgwProxy.Icoel:build:
stage: build
tags:
@@ -252,9 +269,50 @@ EgwProxy.OsaiCncLib:build:
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.SqlDb:build:
stage: build
tags:
- win
variables:
APP_NAME: EgwProxy.SqlDb
only:
refs:
- develop
- SDK/SqlDb
before_script:
- *nuget-fix
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
- *version-fix
script:
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=Release /p:Platform="x86" /p:OutputPath=bin/ /nodeReuse:false /verbosity:minimal /m'
# --------------------------------
# STAGING: (nuget beta)
# --------------------------------
EgwProxy.Ftp:build:staging:
stage: staging
needs: ["EgwProxy.Ftp:build"]
tags:
- win
variables:
CONFIG: Debug
APP_NAME: EgwProxy.Ftp
only:
refs:
- develop
before_script:
- *nuget-fix
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
- *version-fix
- *nuspec-fix
script:
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=$env:CONFIG /p:Platform="Any CPU" /p:OutputPath=bin/$env:CONFIG /verbosity:minimal /m'
- '& Remove-Item *.nupkg'
- '& $env:NUGET_PATH pack "$env:APP_NAME.Debug.nuspec"'
- '& "$env:NUGET_PATH" setapikey fe387daa-d07c-3207-877e-96c8be1be91b -source http://nexus.steamware.net/repository/nuget-hosted'
- '& "$env:NUGET_PATH" push *$env:NUM_DEB.nupkg -Source http://nexus.steamware.net/repository/nuget-hosted'
EgwProxy.Icoel:build:staging:
stage: staging
needs: ["EgwProxy.Icoel:build"]
@@ -326,6 +384,29 @@ EgwProxy.OsaiCncLib:build:staging:
- '& "$env:NUGET_PATH" setapikey fe387daa-d07c-3207-877e-96c8be1be91b -source http://nexus.steamware.net/repository/nuget-hosted'
- '& "$env:NUGET_PATH" push *$env:NUM_DEB.nupkg -Source http://nexus.steamware.net/repository/nuget-hosted'
EgwProxy.SqlDb:build:staging:
stage: staging
needs: ["EgwProxy.SqlDb:build"]
tags:
- win
variables:
CONFIG: Debug
APP_NAME: EgwProxy.SqlDb
only:
refs:
- develop
before_script:
- *nuget-fix
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
- *version-fix
- *nuspec-fix
script:
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=$env:CONFIG /p:Platform="Any CPU" /p:OutputPath=bin/$env:CONFIG /verbosity:minimal /m'
- '& Remove-Item *.nupkg'
- '& $env:NUGET_PATH pack "$env:APP_NAME.Debug.nuspec"'
- '& "$env:NUGET_PATH" setapikey fe387daa-d07c-3207-877e-96c8be1be91b -source http://nexus.steamware.net/repository/nuget-hosted'
- '& "$env:NUGET_PATH" push *$env:NUM_DEB.nupkg -Source http://nexus.steamware.net/repository/nuget-hosted'
# --------------------------------
# RELEASE
# --------------------------------
@@ -398,6 +479,30 @@ IOB-WIN-NEXT:release:
- *hashBuild
- *nexusUpload
EgwProxy.Ftp:build:release:
stage: release
needs: ["EgwProxy.Ftp:build"]
tags:
- win
variables:
CONFIG: Release
APP_NAME: EgwProxy.Ftp
only:
refs:
- SDK/Ftp
before_script:
- *nuget-fix
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
- *version-fix
- *nuspec-fix
script:
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=$env:CONFIG /p:Platform="Any CPU" /p:OutputPath=bin/$env:CONFIG /verbosity:minimal /m'
- '& Remove-Item *.nupkg'
- '& $env:NUGET_PATH pack "$env:APP_NAME.Release.nuspec"'
# - '& "$env:NUGET_PATH" pack "$env:APP_NAME\$env:APP_NAME.csproj" -properties Configuration=$env:CONFIG -Version $env:NUM_REL'
- '& "$env:NUGET_PATH" setapikey fe387daa-d07c-3207-877e-96c8be1be91b -source http://nexus.steamware.net/repository/nuget-hosted'
- '& "$env:NUGET_PATH" push *$env:NUM_REL.nupkg -Source http://nexus.steamware.net/repository/nuget-hosted'
EgwProxy.Icoel:build:release:
stage: release
needs: ["EgwProxy.Icoel:build"]
@@ -469,9 +574,47 @@ EgwProxy.OsaiCncLib:build:release:
- '& "$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'
EgwProxy.SqlDb:build:release:
stage: release
needs: ["EgwProxy.SqlDb:build"]
tags:
- win
variables:
CONFIG: Release
APP_NAME: EgwProxy.SqlDb
only:
refs:
- SDK/SqlDb
before_script:
- *nuget-fix
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
- *version-fix
- *nuspec-fix
script:
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=$env:CONFIG /p:Platform="Any CPU" /p:OutputPath=bin/$env:CONFIG /verbosity:minimal /m'
- '& Remove-Item *.nupkg'
- '& $env:NUGET_PATH pack "$env:APP_NAME.Release.nuspec"'
# - '& "$env:NUGET_PATH" pack "$env:APP_NAME\$env:APP_NAME.csproj" -properties Configuration=$env:CONFIG -Version $env:NUM_REL'
- '& "$env:NUGET_PATH" setapikey fe387daa-d07c-3207-877e-96c8be1be91b -source http://nexus.steamware.net/repository/nuget-hosted'
- '& "$env:NUGET_PATH" push *$env:NUM_REL.nupkg -Source http://nexus.steamware.net/repository/nuget-hosted'
# --------------------------------
# DocFx
# --------------------------------
EgwProxy.Ftp:docfx:
stage: docfx
needs: ["EgwProxy.Ftp:build"]
tags:
- win
variables:
APP_NAME: EgwProxy.Ftp
only:
- SDK/Ftp
script:
- docfx $env:APP_NAME/docfx.json
- mv $env:APP_NAME/_site "docfx"
- *DocReplica
EgwProxy.Icoel:docfx:
stage: docfx
needs: ["EgwProxy.Icoel:build"]
@@ -514,6 +657,20 @@ EgwProxy.OsaiCncLib:docfx:
- mv $env:APP_NAME/_site "docfx"
- *DocReplica
EgwProxy.SqlDb:docfx:
stage: docfx
needs: ["EgwProxy.Icoel:build"]
tags:
- win
variables:
APP_NAME: EgwProxy.Icoel
only:
- SDK/Icoel
script:
- docfx $env:APP_NAME/docfx.json
- mv $env:APP_NAME/_site "docfx"
- *DocReplica
IOB-WIN-NEXT:docfx:
stage: docfx
needs: ["IOB-WIN-NEXT:build"]
+11
View File
@@ -0,0 +1,11 @@
# 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
View File
Binary file not shown.
+72
View File
@@ -0,0 +1,72 @@
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>
/// Parametri per processing file string --&gt; int
/// </summary>
public Dictionary<string, int> ProcessParamInt { get; set; } = new Dictionary<string, int>();
/// <summary>
/// Parametri per processing file string --&gt; 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>
/// 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
}
}
+15
View File
@@ -0,0 +1,15 @@
<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>
+37
View File
@@ -0,0 +1,37 @@
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
}
/// <summary>
/// Modalità ritorno risultati
/// </summary>
[JsonConverter(typeof(StringEnumConverter))]
public enum ReturnMode
{
ND = 0,
Console,
File,
Redis
}
}
+107
View File
@@ -0,0 +1,107 @@
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;
}
}
}
+32
View File
@@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCApp.Core
{
public class RedisMan
{
protected string connString = "";
protected string servAddr = "";
protected int servPort = 0;
protected int redisDb = 0;
public RedisMan(string server, int port, int db)
{
servAddr = server;
servPort = port;
redisDb = db;
connString = $"{servAddr}:{servPort},db={redisDb},abortConnect=false,ssl=false";
}
public bool writeData(string redKey, string rawData)
{
return false;
}
public string getRSV(string redKey)
{
return "";
}
}
}
+28
View File
@@ -0,0 +1,28 @@
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
}
}
+37
View File
@@ -0,0 +1,37 @@
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
@@ -0,0 +1,32 @@
<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>
+373
View File
@@ -0,0 +1,373 @@
using EgwCApp.Core;
using Newtonsoft.Json;
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);
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
}
}
+61
View File
@@ -0,0 +1,61 @@
// 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;
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!");
}
}
@@ -0,0 +1,18 @@
<?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>
+4
View File
@@ -0,0 +1,4 @@
@echo off
REM compilo in publish
dotnet publish EgwCApp.ExcImport.csproj -p:PublishSingleFile=true -r win-x64 -c Release --self-contained false
+25
View File
@@ -0,0 +1,25 @@
{
"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"
}
@@ -0,0 +1,6 @@
{
"FilePath": "C:\\Temp\\test.log",
"ProcessParams": {},
"Return": "Console",
"Type": "Excel"
}
@@ -0,0 +1,25 @@
{
"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"
}
+9
View File
@@ -0,0 +1,9 @@
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
@@ -0,0 +1,42 @@
<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>
+114
View File
@@ -0,0 +1,114 @@
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 = $"./{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
}
}
+65
View File
@@ -0,0 +1,65 @@
// 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(), "*.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.
+6
View File
@@ -0,0 +1,6 @@
@echo off
REM recupero versione compilata
ROBOCOPY %1 %2 *.exe /MIR
echo Eseguito restore CApp!
+37
View File
@@ -0,0 +1,37 @@
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
@@ -0,0 +1,20 @@
<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>
+378
View File
@@ -0,0 +1,378 @@
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
}
}
+62
View File
@@ -0,0 +1,62 @@
// 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!");
}
}
@@ -0,0 +1,18 @@
<?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>
+4
View File
@@ -0,0 +1,4 @@
@echo off
REM compilo in publish
dotnet publish EgwCApp.ExcImport.csproj -p:PublishSingleFile=true -r win-x64 -c Release --self-contained false
+25
View File
@@ -0,0 +1,25 @@
{
"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"
}
+6
View File
@@ -0,0 +1,6 @@
{
"FilePath": "C:\\Temp\\test.log",
"ProcessParams": {},
"Return": "Console",
"Type": "Excel"
}
@@ -0,0 +1,25 @@
{
"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"
}
+9
View File
@@ -0,0 +1,9 @@
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
@@ -0,0 +1,21 @@
<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>
+120
View File
@@ -0,0 +1,120 @@
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
}
}
+65
View File
@@ -0,0 +1,65 @@
// 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.
+6
View File
@@ -0,0 +1,6 @@
@echo off
REM recupero versione compilata
ROBOCOPY %1 %2 *.exe /MIR
echo Eseguito restore CApp!
+31
View File
@@ -0,0 +1,31 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.32901.82
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EgwProxy.Ftp.Test", "EgwProxy.Ftp.Test\EgwProxy.Ftp.Test.csproj", "{A655A6AC-5997-46F9-9752-8C621B80516C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EgwProxy.Ftp", "EgwProxy.Ftp\EgwProxy.Ftp.csproj", "{35D95ED8-E48A-434D-A305-A83E48C8FC6F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A655A6AC-5997-46F9-9752-8C621B80516C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A655A6AC-5997-46F9-9752-8C621B80516C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A655A6AC-5997-46F9-9752-8C621B80516C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A655A6AC-5997-46F9-9752-8C621B80516C}.Release|Any CPU.Build.0 = Release|Any CPU
{35D95ED8-E48A-434D-A305-A83E48C8FC6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{35D95ED8-E48A-434D-A305-A83E48C8FC6F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{35D95ED8-E48A-434D-A305-A83E48C8FC6F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{35D95ED8-E48A-434D-A305-A83E48C8FC6F}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {E2472E21-58D3-4EAD-BC4A-BC3915B18BEF}
EndGlobalSection
EndGlobal
+26
View File
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>EgwProxy.Ftp</id>
<version>#version#</version>
<title>EgwProxy.Ftp</title>
<authors>Samuele E. Locatelli, EgalWare</authors>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<license type="expression">MIT</license>
<description>Libreria per comunicazione con server Ftp (IOB-WIN-NEXT) - beta/unstable</description>
<releaseNotes>#releaseNotes#</releaseNotes>
<copyright>#copyright#</copyright>
<tags>EgwProxy.Ftp EgwProxy Ftp</tags>
<dependencies>
<group>
<dependency id="FluentFTP" version="41.0.0" />
<dependency id="Microsoft.Extensions.Logging.Abstractions" version="2.1.0" />
</group>
</dependencies>
</metadata>
<files>
<file src="EgwProxy.Ftp\bin\Debug\EgwProxy*.dll" target="lib" />
<file src="EgwProxy.Ftp\bin\Debug\EgwProxy*.config" target="lib" />
<file src="EgwProxy.Ftp\bin\Debug\EgwProxy*.pdb" target="lib" />
</files>
</package>
+23
View File
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>EgwProxy.Ftp</id>
<version>#version#</version>
<title>EgwProxy.Ftp</title>
<authors>Samuele E. Locatelli, EgalWare</authors>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<license type="expression">MIT</license>
<description>Libreria per comunicazione con server Ftp (IOB-WIN-NEXT)</description>
<releaseNotes>#releaseNotes#</releaseNotes>
<copyright>#copyright#</copyright>
<tags>EgwProxy.Ftp EgwProxy Ftp</tags>
<dependencies>
<dependency id="FluentFTP" version="41.0.0" />
<dependency id="Microsoft.Extensions.Logging.Abstractions" version="2.1.0" />
</dependencies>
</metadata>
<files>
<file src="EgwProxy.Ftp\bin\Release\EgwProxy*.dll" target="lib" />
<file src="EgwProxy.Ftp\bin\Release\EgwProxy*.config" target="lib" />
</files>
</package>
+51
View File
@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
</startup>
<appSettings>
<add key="testFile" value="conf/testSetup.json" />
<add key="server" value="ftp.steamware.net" />
<add key="userName" value="testftpuser" />
<add key="passwd" value="we4reFromB3rghem!" />
<add key="rawCert" value="" />
<add key="skipCert" value="true" />
<add key="ClientSettingsProvider.ServiceUri" value="" />
</appSettings>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Text.Encodings.Web" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.5.1" newVersion="4.0.5.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.web>
<membership defaultProvider="ClientAuthenticationMembershipProvider">
<providers>
<add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" />
</providers>
</membership>
<roleManager defaultProvider="ClientRoleProvider" enabled="true">
<providers>
<add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" />
</providers>
</roleManager>
</system.web>
</configuration>
@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{A655A6AC-5997-46F9-9752-8C621B80516C}</ProjectGuid>
<OutputType>Exe</OutputType>
<RootNamespace>EgwProxy.Ftp.Test</RootNamespace>
<AssemblyName>EgwProxy.Ftp.Test</AssemblyName>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="FluentFTP, Version=41.0.0.0, Culture=neutral, PublicKeyToken=f4af092b1d8df44f, processorArchitecture=MSIL">
<HintPath>..\packages\FluentFTP.41.0.0\lib\net462\FluentFTP.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Logging.Abstractions, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Logging.Abstractions.2.1.0\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="TestSetup.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="conf\testSetup.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="conf\.placeholder" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<Content Include="test\FileProva.txt">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<Folder Include="temp\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\EgwProxy.Ftp\EgwProxy.Ftp.csproj">
<Project>{35d95ed8-e48a-434d-a305-a83e48c8fc6f}</Project>
<Name>EgwProxy.Ftp</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
+374
View File
@@ -0,0 +1,374 @@
using Newtonsoft.Json;
using System;
using System.Configuration;
using System.IO;
using static System.Net.Mime.MediaTypeNames;
namespace EgwProxy.Ftp.Test
{
internal class Program
{
#region Protected Methods
/// <summary>
/// legge conf in formato stringa
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
protected static string ReadSetting(string key)
{
string answ = "";
try
{
answ = $"{ConfigurationManager.AppSettings[key]}" ?? "";
}
catch (Exception exc)
{
Console.Write("Eccezione in ReadSettings");
Console.Write(exc.Message);
}
return answ;
}
#endregion Protected Methods
#region Private Fields
/// <summary>
/// Helper separatore dash
/// </summary>
private const string separator = "------------------------";
#endregion Private Fields
#region Private Methods
/// <summary>
/// Programma principale
/// </summary>
/// <param name="args"></param>
private static void Main(string[] args)
{
Console.WriteLine(separator);
Console.WriteLine("Test FTP Client");
Console.WriteLine(separator);
Console.WriteLine();
string exePath = System.Reflection.Assembly.GetExecutingAssembly().Location;
string BaseDirectory = System.IO.Path.GetDirectoryName(exePath);
string testFile = Path.Combine(BaseDirectory, ReadSetting("testFile"));
Manager ftpClient = new Manager("", "", "", "", false);
if (!string.IsNullOrEmpty(testFile))
{
Console.WriteLine(separator);
Console.WriteLine($"Mode json ({testFile})");
Console.WriteLine(separator);
Console.WriteLine();
if (File.Exists(testFile))
{
var rawData = File.ReadAllText(testFile);
if (!string.IsNullOrEmpty(rawData))
{
TestSetup testConf = new TestSetup();
try
{
testConf = JsonConvert.DeserializeObject<TestSetup>(rawData);
}
catch
{ }
// setup server
ftpClient = new Manager(testConf.server, testConf.user, testConf.password, testConf.rawCert, testConf.skipCert);
serverTest(ftpClient);
// eseguo per ogni step
foreach (var item in testConf.steps)
{
Console.WriteLine($"------ Step {item.id} | {item.description} ------");
string esitoStep = "";
switch (item.action)
{
case stepType.checkDir:
if (item.paramList != null && item.paramList.Count > 0)
{
string dir2check = item.paramList[0];
var dirCheckExists = ftpClient.dirExists(dir2check);
esitoStep = dirCheckExists ? $"Directory {dir2check} found!" : $"Directory {dir2check} NOT found!";
}
else
{
esitoStep = "Error: missing parameter!";
}
break;
case stepType.checkFile:
if (item.paramList != null && item.paramList.Count > 0)
{
string file2check = item.paramList[0];
var dirCheckExists = ftpClient.fileExists(file2check);
esitoStep = dirCheckExists ? $"File {file2check} found!" : $"File {file2check} NOT found!";
}
else
{
esitoStep = "Error: missing parameter!";
}
break;
case stepType.createDir:
if (item.paramList != null && item.paramList.Count > 0)
{
string dir2check = item.paramList[0];
var preTest = ftpClient.dirExists(dir2check);
if (preTest)
{
esitoStep = "Error: Folder already exists!";
}
else
{
var dirCreate = ftpClient.createDir(dir2check);
esitoStep = dirCreate ? $"Directory {dir2check} created!" : $"Error: {dir2check} NOT created!";
}
}
else
{
esitoStep = "Error: missing parameter!";
}
break;
case stepType.delDir:
if (item.paramList != null && item.paramList.Count > 0)
{
string dir2check = item.paramList[0];
var preTest = ftpClient.dirExists(dir2check);
if (preTest)
{
var dirDelete = ftpClient.deleteDir(dir2check);
esitoStep = dirDelete ? $"Directory {dir2check} deleted!" : $"Error: {dir2check} NOT deleted!";
}
else
{
esitoStep = "Error: Folder doesn't exists, delete not possible!";
}
}
else
{
esitoStep = "Error: missing parameter!";
}
break;
case stepType.delFile:
if (item.paramList != null && item.paramList.Count > 0)
{
string file2check = item.paramList[0];
var preTest = ftpClient.fileExists(file2check);
if (preTest)
{
var dirDelete = ftpClient.deleteFile(file2check);
esitoStep = dirDelete ? $"File {file2check} deleted!" : $"Error: {file2check} NOT deleted!";
}
else
{
esitoStep = "Error: File doesn't exists, delete not possible!";
}
}
else
{
esitoStep = "Error: missing parameter!";
}
break;
case stepType.downloadDir:
if (item.paramList != null && item.paramList.Count > 1)
{
string dir2check = item.paramList[0];
string localDir = Path.Combine(BaseDirectory, item.paramList[1]);
var preTest = ftpClient.dirExists(dir2check);
if (preTest)
{
var dirDelete = ftpClient.getDir(localDir, dir2check);
esitoStep = dirDelete ? $"Directory {dir2check} downloaded!" : $"Error: {dir2check} NOT downloaded!";
}
else
{
esitoStep = "Error: Folder doesn't exists, download not possible!";
}
}
else
{
esitoStep = "Error: missing parameters!";
}
break;
case stepType.downloadFile:
if (item.paramList != null && item.paramList.Count > 1)
{
string dir2check = item.paramList[0];
string localDir = Path.Combine(BaseDirectory, item.paramList[1]);
var preTest = ftpClient.dirExists(dir2check);
if (preTest)
{
var dirDelete = ftpClient.getDir(localDir, dir2check);
esitoStep = dirDelete ? $"Directory {dir2check} downloaded!" : $"Error: {dir2check} NOT downloaded!";
}
else
{
esitoStep = "Error: Folder doesn't exists, download not possible!";
}
}
else
{
esitoStep = "Error: missing parameters!";
}
break;
case stepType.uploadDir:
if (item.paramList != null && item.paramList.Count > 1)
{
string remoteDir = item.paramList[0];
string localDir = Path.Combine(BaseDirectory, item.paramList[1]);
var dirUploaded = ftpClient.sendDir(localDir, remoteDir);
esitoStep = dirUploaded ? $"Directory {remoteDir} uploaded!" : $"Error: {remoteDir} NOT uploaded!";
}
else
{
esitoStep = "Error: missing parameters!";
}
break;
case stepType.uploadFile:
if (item.paramList != null && item.paramList.Count > 1)
{
string remotePath = item.paramList[0];
string localPath = Path.Combine(BaseDirectory, item.paramList[1]);
var fileUploaded = ftpClient.sendFile(localPath, remotePath);
esitoStep = fileUploaded ? $"File {remotePath} uploaded!" : $"Error: {remotePath} NOT uploaded!";
}
else
{
esitoStep = "Error: missing parameters!";
}
break;
case stepType.listContent:
if (item.paramList != null && item.paramList.Count > 0)
{
string remoteDir = item.paramList[0];
var preTest = ftpClient.dirExists(remoteDir);
if (preTest)
{
var listResult = ftpClient.listDir(remoteDir, false);
Console.WriteLine($"Content of dir {remoteDir}:");
foreach (var itemList in listResult)
{
Console.WriteLine(itemList);
}
}
else
{
esitoStep = "Error: Folder doesn't exists, list not possible!";
}
}
else
{
esitoStep = "Error: missing parameter!";
}
break;
default:
break;
}
Console.WriteLine(esitoStep);
Console.WriteLine($"------ Done Step {item.id} ------");
Console.WriteLine();
Console.WriteLine("Press a key to continue...");
Console.ReadKey();
}
}
}
}
// test base su server steamware
else
{
Console.WriteLine(separator);
Console.WriteLine("Mode: base");
Console.WriteLine(separator);
Console.WriteLine();
string sSkipCert = ReadSetting("skipCert");
bool skipCert = false;
bool.TryParse(sSkipCert, out skipCert);
ftpClient = new Manager(ReadSetting("server"), ReadSetting("userName"), ReadSetting("passwd"), ReadSetting("rawCert"), skipCert);
serverTest(ftpClient);
Console.WriteLine("--- Folder ---");
var testExists = ftpClient.dirExists($"data/test_folder");
if (testExists)
{
Console.WriteLine("Folder already exists!");
}
else
{
Console.WriteLine("--- Create folder ---");
var testCreate = ftpClient.createDir($"data/test_folder");
Console.WriteLine();
}
Console.WriteLine("Contenuto folder remota: ");
var folderContent = ftpClient.listDir("data/", true);
foreach (var item in folderContent)
{
Console.WriteLine(item);
}
Console.WriteLine();
Console.WriteLine("Premere un tasto x continuare...");
Console.ReadKey();
Console.WriteLine("--- Upload file ---");
ftpClient.sendFile("test/FileProva.txt", "data/test_folder/FileProva.txt");
Console.WriteLine("Contenuto folder remota: ");
folderContent = ftpClient.listDir("data/", true);
foreach (var item in folderContent)
{
Console.WriteLine(item);
}
Console.WriteLine();
Console.WriteLine("Premere un tasto x continuare...");
Console.ReadKey();
Console.WriteLine("--- Download File ---");
ftpClient.getFile("test/FileProva_02.txt", "data/test_folder/FileProva.txt");
Console.WriteLine("Contenuto folder remota: ");
folderContent = ftpClient.listDir("data/", true);
foreach (var item in folderContent)
{
Console.WriteLine(item);
}
Console.WriteLine();
Console.WriteLine("Premere un tasto x continuare...");
Console.ReadKey();
}
}
private static void serverTest(Manager ftpClient)
{
Console.WriteLine(separator);
var testServer = ftpClient.serverOk();
Console.WriteLine($"Test connessione: esito {testServer}");
var srvType = ftpClient.serverType();
Console.WriteLine($"Server: {srvType}");
Console.WriteLine(separator);
Console.WriteLine();
}
#endregion Private Methods
}
}
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("EgwProxy.Ftp.Test")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("EgwProxy.Ftp.Test")]
[assembly: AssemblyCopyright("Copyright © 2022")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("a655a6ac-5997-46f9-9752-8c621b80516c")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
+42
View File
@@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwProxy.Ftp.Test
{
public class TestSetup
{
public string server { get; set; } = "";
public string user { get; set; } = "";
public string password { get; set; } = "";
public string rawCert { get; set; } = "";
public bool skipCert { get; set; } = false;
public List<singleStep> steps { get; set; }
}
public class singleStep
{
public string id { get; set; } = "00";
public string description { get; set; } = "00";
public stepType action { get; set; } = stepType.checkDir;
public List<string> paramList { get; set; } = new List<string>();
}
public enum stepType
{
checkDir,
checkFile,
createDir,
delDir,
delFile,
downloadDir,
downloadFile,
uploadDir,
uploadFile,
listContent
}
}
+1
View File
@@ -0,0 +1 @@

+76
View File
@@ -0,0 +1,76 @@
{
"server": "ftp.steamware.net",
"user": "testftpuser",
"password": "we4reFromB3rghem!",
"rawCert": "",
"skipCert": true,
"steps": [
{
"id": "01",
"description": "Test base directory",
"action": "checkDir",
"paramList": [
"data/"
]
},
{
"id": "02",
"description": "Create directory",
"action": "createDir",
"paramList": [
"data/test_directory"
]
},
{
"id": "03",
"description": "Upload File",
"action": "uploadFile",
"paramList": [
"data/test_directory/FileProva.txt",
"test/FileProva.txt"
]
},
{
"id": "04",
"description": "Browse Directory",
"action": "listContent",
"paramList": [
"data/test_directory/"
]
},
{
"id": "05",
"description": "Upload File",
"action": "uploadFile",
"paramList": [
"data/test_directory/FileProva_02.txt",
"test/FileProva.txt"
]
},
{
"id": "06",
"description": "Browse Directory",
"action": "listContent",
"paramList": [
"data/test_directory/"
]
},
{
"id": "07",
"description": "Download Directory",
"action": "downloadDir",
"paramList": [
"data/test_directory/",
"temp/mirror"
]
},
{
"id": "08",
"description": "Delete Remote Directory",
"action": "delDir",
"paramList": [
"data/test_directory/"
]
}
]
}
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="FluentFTP" version="41.0.0" targetFramework="net462" />
<package id="Microsoft.Extensions.Logging.Abstractions" version="2.1.0" targetFramework="net462" />
<package id="Newtonsoft.Json" version="13.0.1" targetFramework="net462" />
</packages>
+1
View File
@@ -0,0 +1 @@
File di prova
+57
View File
@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{35D95ED8-E48A-434D-A305-A83E48C8FC6F}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>EgwProxy.Ftp</RootNamespace>
<AssemblyName>EgwProxy.Ftp</AssemblyName>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="FluentFTP, Version=41.0.0.0, Culture=neutral, PublicKeyToken=f4af092b1d8df44f, processorArchitecture=MSIL">
<HintPath>..\packages\FluentFTP.41.0.0\lib\net462\FluentFTP.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Logging.Abstractions, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Logging.Abstractions.2.1.0\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Manager.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
+325
View File
@@ -0,0 +1,325 @@
using FluentFTP;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Security;
namespace EgwProxy.Ftp
{
/// <summary>
/// Client per operazioni FTP, basato su FluentFTP: https://github.com/robinrodricks/FluentFTP/wiki/Quick-Start-Example
/// </summary>
public class Manager
{
#region Public Constructors
/// <summary>
/// Inizializzazione di oggetto per comunicazione FTP
/// </summary>
/// <param name="server"></param>
/// <param name="userName"></param>
/// <param name="passwd"></param>
/// <param name="rawCert"></param>
/// <param name="skipCert"></param>
public Manager(string server, string userName, string passwd, string rawCert, bool skipCert)
{
_server = server;
_userName = userName;
_passwd = passwd;
_skipCert = skipCert;
_rawCert = rawCert;
if (!string.IsNullOrEmpty(server))
{
// se ho user/pwd è autenticato...
if (!string.IsNullOrEmpty(userName) && !string.IsNullOrEmpty(passwd))
{
client = new FtpClient(server, userName, passwd);
}
//.. altrimenti anonimo...
else
{
client = new FtpClient(server);
}
}
}
#endregion Public Constructors
#region Public Methods
/// <summary>
/// Creazione directory remota
/// </summary>
/// <param name="remoteDir">Nome directory remota da creare (ad es: @"/public_html/videos")</param>
public bool createDir(string remoteDir)
{
tryConnect();
// upload della folder + files, cancellazione extra files = mirroring
bool answ = client.CreateDirectory(remoteDir);
// chiudo!
client.Disconnect();
return answ;
}
/// <summary>
/// Eliminazionedirectory remota
/// </summary>
/// <param name="remoteDir">Nome directory remota da eliminare</param>
public bool deleteDir(string remoteDir)
{
tryConnect();
bool answ = false;
try
{
// Elimina folder
client.DeleteDirectory(remoteDir);
answ = true;
}
catch
{ }
// chiudo!
client.Disconnect();
return answ;
}
/// <summary>
/// Eliminazionedirectory remota
/// </summary>
/// <param name="remoteFile">Nome file remoto da eliminare</param>
public bool deleteFile(string remoteFile)
{
tryConnect();
bool answ = false;
try
{
// Elimina folder
client.DeleteFile(remoteFile);
answ = true;
}
catch
{ }
// chiudo!
client.Disconnect();
return answ;
}
/// <summary>
/// Verifica esistenza directory su server FTP remoto
/// </summary>
/// <param name="remotePath">Percorso remoto da testare (ad es "/htdocs/extras/")</param>
/// <returns></returns>
public bool dirExists(string remotePath)
{
tryConnect();
bool answ = client.DirectoryExists(remotePath);
// chiudo!
client.Disconnect();
return answ;
}
/// <summary>
/// Verifica esistenza file su server FTP remoto
/// </summary>
/// <param name="remotePath">Percorso remoto da testare (ad es "/htdocs/big2.txt")</param>
/// <returns></returns>
public bool fileExists(string remotePath)
{
tryConnect();
bool answ = client.FileExists(remotePath);
// chiudo!
client.Disconnect();
return answ;
}
/// <summary>
/// Scaricamento intera directory, modalità MIRROR
/// </summary>
/// <param name="dirPath">Path directory da inviare (ad es:@"C:\website\videos\")</param>
/// <param name="remoteDir">Nome remoto file per caricamento (ad es: @"/public_html/videos")</param>
public bool getDir(string dirPath, string remoteDir)
{
bool answ = false;
tryConnect();
try
{
// upload della folder + files, cancellazione extra files = mirroring
var result = client.DownloadDirectory(dirPath, remoteDir, FtpFolderSyncMode.Mirror);
answ = (result != null && result.Count > 0);
}
catch
{ }
// chiudo!
client.Disconnect();
return answ;
}
/// <summary>
/// Download singolo file
/// </summary>
/// <param name="fileName">Path locale del file da inviare (ad es: @"C:\MyVideo.mp4")</param>
/// <param name="remoteName">NOme remoto file per caricamento (ad es: "/htdocs/MyVideo.mp4")</param>
public bool getFile(string fileName, string remoteName)
{
bool answ = false;
tryConnect();
// effettuo caricamento puntuale
var result = client.DownloadFile(fileName, remoteName);
answ = result == FtpStatus.Success;
// chiudo!
client.Disconnect();
return answ;
}
/// <summary>
/// Mostra contenuto directory remota
/// </summary>
/// <param name="remoteDir">Nome directory remota da leggere (ad es: @"/public_html/videos")</param>
/// <param name="recurse">Indica se fare search ricorsivo</param>
public List<string> listDir(string remoteDir, bool recurse)
{
tryConnect();
// upload della folder + files, cancellazione extra files = mirroring
FtpListItem[] dirContent;
if (recurse)
{
dirContent = client.GetListing(remoteDir, FtpListOption.Recursive);
}
else
{
dirContent = client.GetListing(remoteDir);
}
client.Disconnect();
var answ = dirContent.Select(x => $"{x.Type} - {x.Name}").ToList();
// chiudo!
return answ;
}
/// <summary>
/// Caricamento intera directory, modalità MIRROR
/// </summary>
/// <param name="dirPath">Path directory da inviare (ad es:@"C:\website\videos\")</param>
/// <param name="remoteDir">Nome remoto file per caricamento (ad es: @"/public_html/videos")</param>
public bool sendDir(string dirPath, string remoteDir)
{
bool answ = false;
tryConnect();
// upload della folder + files, cancellazione extra files = mirroring
var result = client.UploadDirectory(dirPath, remoteDir, FtpFolderSyncMode.Mirror);
answ = (result != null && result.Count > 0);
// chiudo!
client.Disconnect();
return answ;
}
/// <summary>
/// Caricamento singolo file
/// </summary>
/// <param name="fileName">Path locale del file da inviare (ad es: @"C:\MyVideo.mp4")</param>
/// <param name="remoteName">NOme remoto file per caricamento (ad es: "/htdocs/MyVideo.mp4")</param>
public bool sendFile(string fileName, string remoteName)
{
bool answ = false;
tryConnect();
// effettuo caricamento puntuale
var result = client.UploadFile(fileName, remoteName);
answ = result == FtpStatus.Success;
// se insuccesso --> controllo se ci sia file...
if (!answ)
{
answ = fileExists(remoteName);
}
// chiudo!
client.Disconnect();
return answ;
}
/// <summary>
/// Verifica connessione con server FTP remoto
/// </summary>
/// <returns></returns>
public bool serverOk()
{
tryConnect();
bool answ = client.IsConnected;
// chiudo!
client.Disconnect();
return answ;
}
/// <summary>
/// Restituisce tipo server remoto
/// </summary>
/// <returns></returns>
public string serverType()
{
tryConnect();
FtpServer srvType = client.ServerType;
// chiudo!
client.Disconnect();
return $"{srvType}";
}
#endregion Public Methods
#region Protected Fields
protected bool _skipCert = false;
#endregion Protected Fields
#region Protected Properties
protected string _passwd { get; set; } = "";
protected string _rawCert { get; set; } = "";
protected string _server { get; set; } = "";
protected string _userName { get; set; } = "";
#endregion Protected Properties
#region Private Properties
private FtpClient client { get; set; }
#endregion Private Properties
#region Private Methods
private void Client_ValidateCertificate(FluentFTP.Client.BaseClient.BaseFtpClient control, FtpSslValidationEventArgs e)
{
if (e.PolicyErrors == SslPolicyErrors.None || _skipCert || e.Certificate.GetRawCertDataString() == _rawCert)
{
e.Accept = true;
}
else
{
Console.WriteLine($"{e.PolicyErrors}");
Console.WriteLine($"Cert:{Environment.NewLine}{e.Certificate}");
Console.WriteLine($"RawString:{Environment.NewLine}{e.Certificate.GetRawCertDataString()}");
throw new Exception($"{e.PolicyErrors}{Environment.NewLine}{e.Certificate.GetRawCertDataString()}");
}
}
private void tryConnect()
{
// connect to the server and automatically detect working FTP settings
if (!client.IsConnected)
{
var profiles = client.AutoDetect();
#if false
// if any profiles are found, print the code to the console
if (profiles.Count > 0)
{
var code = profiles[0].ToCode();
Console.WriteLine(code);
}
#endif
client.ValidateCertificate += Client_ValidateCertificate;
client.AutoConnect();
}
}
#endregion Private Methods
}
}
+36
View File
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("EgwProxy.Ftp")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("EgwProxy.Ftp")]
[assembly: AssemblyCopyright("Copyright © 2022")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("35d95ed8-e48a-434d-a305-a83e48c8fc6f")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
+69
View File
@@ -0,0 +1,69 @@
{
"metadata": [
{
"src": [
{
"files": [
"*.csproj",
"*.vbproj"
],
"cwd": ".",
"exclude": [
"**/obj/**",
"**/bin/**",
"_site/**"
]
}
],
"dest": "obj/api"
}
],
"build": {
"content": [
{
"files": [
"api/**.yml"
],
"cwd": "obj"
},
{
"files": [
"api/*.md",
"articles/**.md",
"toc.yml",
"*.md"
],
"exclude": [
"obj/**",
"_site/**"
]
}
],
"resource": [
{
"files": [
"images/**"
],
"exclude": [
"obj/**",
"_site/**"
]
}
],
"overwrite": [
{
"files": [
"apidoc/**.md"
],
"exclude": [
"obj/**",
"_site/**"
]
}
],
"dest": "_site",
"template": [
"default"
]
}
}
+17
View File
@@ -0,0 +1,17 @@
# EgwProxy.Ftp Library
Documentazione relativa alla libreria di interfaccia via FTP con server generici.
Disponibile in forma di pacchetto nuget sul repo aziendale nexus.steamware.net: i pacchetti sono disponibili all'indirizzo
https://nexus.steamware.net/#browse/browse:nuget-hosted
Vedere la sezione Articles per maggiori informazioni sulle definizioni, l'impiego ed esempi.
## Articles
Per maggiori dettagli, definizioni e demo funzionamento si rimanda alla sezione Articles
## Api
Per ogni dettaglio e riferimento alla libreria si rimanda alla sezione Api Documentation
+5
View File
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="FluentFTP" version="41.0.0" targetFramework="net462" />
<package id="Microsoft.Extensions.Logging.Abstractions" version="2.1.0" targetFramework="net462" />
</packages>
+6
View File
@@ -0,0 +1,6 @@
- name: Articles
href: articles/
- name: API Documentation
href: obj/api/
homepage: api/index.md
+21 -17
View File
@@ -1,29 +1,29 @@
<?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>
<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" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.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" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
@@ -37,6 +37,10 @@
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
@@ -35,47 +35,14 @@
<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 Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.5.2.3\lib\net46\NLog.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
@@ -83,76 +50,48 @@
</Reference>
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Configuration" />
<Reference Include="System.Configuration.ConfigurationManager, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Configuration.ConfigurationManager.5.0.0\lib\net461\System.Configuration.ConfigurationManager.dll</HintPath>
</Reference>
<Reference Include="System.Core" />
<Reference Include="System.Data.OracleClient" />
<Reference Include="System.Diagnostics.DiagnosticSource, Version=4.0.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Diagnostics.DiagnosticSource.4.6.0\lib\net46\System.Diagnostics.DiagnosticSource.dll</HintPath>
</Reference>
<Reference Include="System.Drawing" />
<Reference Include="System.IdentityModel" />
<Reference Include="System.IdentityModel.Tokens.Jwt, Version=6.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\System.IdentityModel.Tokens.Jwt.6.8.0\lib\net461\System.IdentityModel.Tokens.Jwt.dll</HintPath>
</Reference>
<Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.4.3.0\lib\net462\System.IO.dll</HintPath>
</Reference>
<Reference Include="System.IO.Compression, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.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 Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.5\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 Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\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 Include="System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.AccessControl.6.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>
@@ -186,14 +125,11 @@
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.targets" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>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>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.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>
+5 -24
View File
@@ -1,36 +1,17 @@
<?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="NLog" version="5.2.3" 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.IO.Compression" version="4.3.0" targetFramework="net462" />
<package id="System.Memory" version="4.5.5" 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.CompilerServices.Unsafe" version="6.0.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.AccessControl" version="6.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>
+4
View File
@@ -11,6 +11,10 @@
<releaseNotes>#releaseNotes#</releaseNotes>
<copyright>#copyright#</copyright>
<tags>EgwProxy.Icoel EgwProxy Icoel</tags>
<dependencies>
<dependency id="NLog" version="5.1.2" />
<dependency id="EntityFramework" version="6.4.4" />
</dependencies>
</metadata>
<files>
<file src="EgwProxy.Icoel\bin\Debug\EgwProxy*.dll" target="lib" />
+4
View File
@@ -11,6 +11,10 @@
<releaseNotes>#releaseNotes#</releaseNotes>
<copyright>#copyright#</copyright>
<tags>EgwProxy.Icoel EgwProxy Icoel</tags>
<dependencies>
<dependency id="NLog" version="5.1.2" />
<dependency id="EntityFramework" version="6.4.4" />
</dependencies>
</metadata>
<files>
<file src="EgwProxy.Icoel\bin\Release\EgwProxy*.dll" target="lib" />
+34 -30
View File
@@ -1,25 +1,25 @@
<?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>
<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>
@@ -38,23 +38,23 @@
<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>
-->
<!--
<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" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.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" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
@@ -68,6 +68,10 @@
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
@@ -36,6 +36,9 @@
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.IO.Compression, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
@@ -55,10 +58,14 @@
<None Include="conf.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<Folder Include="INI\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\EgwProxy.Icoel.DataLayer\EgwProxy.Icoel.DataLayer.csproj">
<Project>{E36544CB-D699-48D8-9F81-C2758E7C7D19}</Project>
<Project>{e36544cb-d699-48d8-9f81-c2758e7c7d19}</Project>
<Name>EgwProxy.Icoel.DataLayer</Name>
</ProjectReference>
<ProjectReference Include="..\EgwProxy.Icoel\EgwProxy.Icoel.csproj">
@@ -66,8 +73,5 @@
<Name>EgwProxy.Icoel</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Folder Include="INI\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
+4
View File
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="System.IO.Compression" version="4.3.0" targetFramework="net462" />
</packages>
+6 -2
View File
@@ -36,11 +36,11 @@
<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" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.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" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
@@ -54,6 +54,10 @@
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
+6 -3
View File
@@ -39,14 +39,17 @@
<StartupObject />
</PropertyGroup>
<ItemGroup>
<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 Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.5.2.3\lib\net46\NLog.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.IO.Compression, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Transactions" />
+2 -1
View File
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="NLog" version="4.7.9" targetFramework="net462" />
<package id="NLog" version="5.2.3" targetFramework="net462" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net462" />
</packages>
+24
View File
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<package >
<metadata>
<id>EgwProxy.SqlDb</id>
<version>#version#</version>
<title>EgwProxy.SqlDb</title>
<authors>Samuele E. Locatelli, EgalWare</authors>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<license type="expression">MIT</license>
<description>Libreria per comunicazione con generico DB SqlDb di frontiera x scambio dati (IOB-WIN-NEXT) - beta/unstable</description>
<releaseNotes>#releaseNotes#</releaseNotes>
<copyright>#copyright#</copyright>
<tags>EgwProxy.SqlDb EgwProxy SqlDb</tags>
<dependencies>
<dependency id="NLog" version="5.1.2" />
<dependency id="EntityFramework" version="6.4.4" />
</dependencies>
</metadata>
<files>
<file src="EgwProxy.SqlDb\bin\Debug\EgwProxy*.dll" target="lib" />
<file src="EgwProxy.SqlDb\bin\Debug\EgwProxy*.config" target="lib" />
<file src="EgwProxy.SqlDb\bin\Debug\EgwProxy*.pdb" target="lib" />
</files>
</package>
+23
View File
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<package >
<metadata>
<id>EgwProxy.SqlDb</id>
<version>#version#</version>
<title>EgwProxy.SqlDb</title>
<authors>Samuele E. Locatelli, EgalWare</authors>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<license type="expression">MIT</license>
<description>Libreria per comunicazione con generico DB SqlDb di frontiera x scambio dati (IOB-WIN-NEXT)</description>
<releaseNotes>#releaseNotes#</releaseNotes>
<copyright>#copyright#</copyright>
<tags>EgwProxy.SqlDb EgwProxy SqlDb</tags>
<dependencies>
<dependency id="NLog" version="5.1.2" />
<dependency id="EntityFramework" version="6.4.4" />
</dependencies>
</metadata>
<files>
<file src="EgwProxy.SqlDb\bin\Release\EgwProxy*.dll" target="lib" />
<file src="EgwProxy.SqlDb\bin\Release\EgwProxy*.config" target="lib" />
</files>
</package>
+25
View File
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<!-- 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="testFile" value="conf/testSetup.json" />
<add key="server" value="SQL2016DEV" />
<add key="userName" value="sa" />
<add key="passwd" value="keyhammer16" />
<add key="ClientSettingsProvider.ServiceUri" value="" />
</appSettings>
<runtime>
</runtime>
</configuration>
@@ -0,0 +1,105 @@
<?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>{A11CA446-AE97-413D-A567-45A081F003DB}</ProjectGuid>
<OutputType>Exe</OutputType>
<RootNamespace>EgwProxy.SqlDb.Test</RootNamespace>
<AssemblyName>EgwProxy.SqlDb.Test</AssemblyName>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</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>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Remote_DEBUG|AnyCPU'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\Remote_DEBUG\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<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="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<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" />
<Compile Include="TestSetup.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="conf\.placeholder" />
<None Include="conf\testSetup.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="packages.config" />
<None Include="postBuildTgt.bat" />
<None Include="setupTgt.bat" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\EgwProxy.SqlDb\EgwProxy.SqlDb.csproj">
<Project>{a5f9e2c8-b866-4470-923c-11ba35270963}</Project>
<Name>EgwProxy.SqlDb</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.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'))" />
</Target>
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.targets" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" />
<PropertyGroup>
<PreBuildEvent>"$(ProjectDir)setupTgt.bat" "$(ConfigurationName)" "$(ProjectDir)"</PreBuildEvent>
</PropertyGroup>
<PropertyGroup>
<PostBuildEvent>"$(ProjectDir)postBuildTgt.bat" "$(ConfigurationName)" "$(TargetDir)"</PostBuildEvent>
</PropertyGroup>
</Project>
+296
View File
@@ -0,0 +1,296 @@
using EgwProxy.SqlDb.Controllers;
using EgwProxy.SqlDb.DbModels;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Text;
using static System.Net.Mime.MediaTypeNames;
namespace EgwProxy.SqlDb.Test
{
internal class Program
{
#region Protected Methods
/// <summary>
/// legge conf in formato stringa
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
protected static string ReadSetting(string key)
{
string answ = "";
try
{
answ = $"{ConfigurationManager.AppSettings[key]}" ?? "";
}
catch (Exception exc)
{
Console.Write("Eccezione in ReadSettings");
Console.Write(exc.Message);
}
return answ;
}
#endregion Protected Methods
#region Private Fields
/// <summary>
/// Helper separatore dash
/// </summary>
private const string separator = "------------------------";
#endregion Private Fields
#region Private Methods
/// <summary>
/// Programma principale
/// </summary>
/// <param name="args"></param>
private static void Main(string[] args)
{
Console.WriteLine(separator);
Console.WriteLine("Test DB Client");
Console.WriteLine(separator);
Console.WriteLine();
string exePath = System.Reflection.Assembly.GetExecutingAssembly().Location;
string BaseDirectory = Path.GetDirectoryName(exePath);
string testFile = Path.Combine(BaseDirectory, ReadSetting("testFile"));
string connStr = "";
DbController dbClient = new DbController(connStr);
if (!string.IsNullOrEmpty(testFile))
{
Console.WriteLine(separator);
Console.WriteLine($"Mode json ({testFile})");
Console.WriteLine(separator);
Console.WriteLine();
if (File.Exists(testFile))
{
var rawData = File.ReadAllText(testFile);
if (!string.IsNullOrEmpty(rawData))
{
TestSetup testConf = new TestSetup();
try
{
testConf = JsonConvert.DeserializeObject<TestSetup>(rawData);
}
catch
{ }
// setup server
connStr = $"data source={testConf.server};initial catalog={testConf.dbName};persist security info=True;user id={testConf.user};password={testConf.password};MultipleActiveResultSets=True;App={testConf.app}";
dbClient = new DbController(connStr);
serverTest(dbClient);
// eseguo per ogni step
foreach (var item in testConf.steps)
{
Console.WriteLine($"------ Step {item.id} | {item.description} ------");
StringBuilder sb = new StringBuilder();
sb.AppendLine(separator);
switch (item.action)
{
case stepType.GetSyncState:
var currTab = dbClient.SyncStateGetAll();
if (currTab != null && currTab.Count > 0)
{
foreach (var syncRec in currTab)
{
sb.AppendLine($"{syncRec.TableName} | {syncRec.LastIdx} | {syncRec.Note} | {syncRec.LastUpdate}");
}
}
else
{
sb.AppendLine("Error: Table empty/missing!");
}
sb.AppendLine(separator);
break;
case stepType.ResetPodl:
sb.AppendLine("Inizio reset PODL");
var dbRes = dbClient.ResetPODLMes();
if (dbRes.Count == 0)
{
sb.AppendLine("Pulizia eseguita!");
}
else
{
sb.AppendLine("Problemi con svuotamento tab PODL");
}
sb.AppendLine(separator);
break;
case stepType.SetNewPodl:
sb.AppendLine($"Inizio inserimento {item.paramList.Count} rec");
// creo una lista di PODL da processare...
List<MesPODLReqModel> CurrPodlReq = new List<MesPODLReqModel>();
foreach (var podl in item.paramList)
{
int idxPodl = 0;
int.TryParse(podl, out idxPodl);
MesPODLReqModel newRec = new MesPODLReqModel()
{
Attivabile = true,
CodArticolo = "ART000000",
IdxMacchina = "SIMUL_01",
IdxODL = 0,
IdxPromessa = idxPodl,
NumPezzi = 1
};
CurrPodlReq.Add(newRec);
sb.AppendLine($"Aggiunto PODL{podl:0000000}");
}
// chiamo procedura insert PODL
bool fatto = dbClient.MesPodlWriteReq(CurrPodlReq);
sb.AppendLine($"Records Aggiunti!");
sb.AppendLine(separator);
break;
case stepType.DbMigrateAndSync:
try
{
var esitoMigrate = dbClient.DbForceMigrate();
sb.Append($"Migration: {esitoMigrate}");
}
catch (Exception exc)
{
sb.AppendLine($"eccezione in migrate:{Environment.NewLine}{exc}");
}
break;
case stepType.ExecExportAll:
try
{
var esitoExport = dbClient.SyncStateDoExportAll();
sb.Append($"ExportAll: {esitoExport}");
}
catch (Exception exc)
{
sb.AppendLine($"eccezione in ExportAll:{Environment.NewLine}{exc}");
}
break;
case stepType.ExecImportAll:
try
{
var esitoImport = dbClient.SyncStateDoImportAll();
sb.Append($"ImportAll: {esitoImport}");
}
catch (Exception exc)
{
sb.AppendLine($"eccezione in ImportAll:{Environment.NewLine}{exc}");
}
break;
case stepType.GetMachFluxLog:
try
{
var currFL = dbClient.MachFluxLogGetNew(0);
// mostro le righe
foreach (var fluxRow in currFL)
{
// aggiungo riga in out
sb.Append($"{fluxRow.Id:000} | {fluxRow.DtEvento} | {fluxRow.CodFlux} | {fluxRow.Valore}");
}
// aggiorno syncstate...
int lastIdx = currFL.Max(x => x.Id);
SyncStateModel currSync = new SyncStateModel()
{
LastIdx = lastIdx,
LastUpdate = DateTime.Now,
Note = "Test update",
TableName = "FluxLog"
};
dbClient.SyncStateUpsert(currSync);
}
catch (Exception exc)
{
sb.AppendLine($"eccezione in GetMachFluxLog:{Environment.NewLine}{exc}");
}
break;
case stepType.GetMachProdData:
try
{
var currFL = dbClient.MachProdDataGetNew(0);
// mostro le righe
foreach (var fluxRow in currFL)
{
// aggiungo riga in out
sb.Append($"{fluxRow.Id:000} | {fluxRow.DtEve} | {fluxRow.CodComm} | {fluxRow.Action}");
}
// aggiorno syncstate...
int lastIdx = currFL.Max(x => x.Id);
SyncStateModel currSync = new SyncStateModel()
{
LastIdx = lastIdx,
LastUpdate = DateTime.Now,
Note = "Test update",
TableName = "ProdData"
};
dbClient.SyncStateUpsert(currSync);
}
catch (Exception exc)
{
sb.AppendLine($"eccezione in GetMachProdData:{Environment.NewLine}{exc}");
}
break;
case stepType.GetMachSignLog:
try
{
var currFL = dbClient.MachSigLogGetNew(0);
// mostro le righe
foreach (var fluxRow in currFL)
{
// aggiungo riga in out
sb.Append($"{fluxRow.Id:000} | {fluxRow.DtEve} | {fluxRow.ValInt} | {fluxRow.Valore}");
}
// aggiorno syncstate...
int lastIdx = currFL.Max(x => x.Id);
SyncStateModel currSync = new SyncStateModel()
{
LastIdx = lastIdx,
LastUpdate = DateTime.Now,
Note = "Test update",
TableName = "SignLog"
};
dbClient.SyncStateUpsert(currSync);
}
catch (Exception exc)
{
sb.AppendLine($"eccezione in GetMachSignLog:{Environment.NewLine}{exc}");
}
break;
default:
break;
}
string esitoStep = sb.ToString();
Console.WriteLine(esitoStep);
Console.WriteLine($"------ Done Step {item.id} ------");
Console.WriteLine();
Console.WriteLine("Press a key to continue...");
Console.ReadKey();
}
}
}
}
}
private static void serverTest(DbController dbClient)
{
Console.WriteLine(separator);
string testServer = dbClient.ServerOk();
Console.WriteLine($"Test connessione: esito {testServer}");
Console.WriteLine(separator);
Console.WriteLine();
}
#endregion Private Methods
}
}
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("EgwProxy.SqlDb.Test")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("EgwProxy.SqlDb.Test")]
[assembly: AssemblyCopyright("Copyright © 2023")]
[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("a11ca446-ae97-413d-a567-45a081f003db")]
// 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")]
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,107 @@
ALTER PROCEDURE [dbo].[GetMachineFluxLog]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
BEGIN tran
-- dichiarazioni variabili x recupero dati
DECLARE @LastIdx INT = 0
DECLARE @NewIdx INT = 0
-- recupero valore ultima riga stato processata...
SELECT @LastIdx = ISNULL(LastIdx,0)
FROM SyncState
WHERE TableName = 'ToMachineFluxLog'
-- recupero nuovo MAX idx
SELECT @NewIdx = ISNULL(MAX(ID),0)
FROM syn_M2ERP_MACHINE_STATE
-- eseguo SOLO SE ho dati aggiuntivi...
IF(@NewIdx > @LastIdx)
BEGIN
/* --------------------------------------------------
* Invierò solo VARIAZIONI dei valori
* - CurrentPP (Part Program)
* - ActiveProdOrder (Ordine in esecuzione)
*
* andando ad incrociare ogni record col precedente...
* -------------------------------------------------- */
-- processo dati ORDINI
;WITH cteCurrOrd AS
(
SELECT ID
,ActiveProdOrder
,Targa as IdxMacchina
,[DateTime] AS DtEvento
FROM syn_M2ERP_MACHINE_STATE
WHERE ID > @LastIdx AND ID <= @NewIdx
)
, ctePrevOrd AS
(
SELECT ID
,ActiveProdOrder
,Targa as IdxMacchina
,[DateTime] AS DtEvento
FROM syn_M2ERP_MACHINE_STATE
WHERE ID >= @LastIdx AND ID < @NewIdx
)
-- lego i valori col precedente x calcolare se siano variati x insert valori
INSERT INTO MachineFluxLog(DtEvento, IdxMacchina, CodFlux, Valore, Cnt)
SELECT curr.DtEvento, curr.IdxMacchina, 'ProdOrd' AS CodFlux, curr.ActiveProdOrder as Valore, 0 as Cnt
FROM cteCurrOrd curr
INNER JOIN ctePrevOrd prev
ON curr.ID = prev.ID+1
WHERE curr.ActiveProdOrder <> prev.ActiveProdOrder
-- processo dati Part Program
;WITH cteCurrPP AS
(
SELECT ID
,CurrentPP
,Targa as IdxMacchina
,[DateTime] AS DtEvento
FROM syn_M2ERP_MACHINE_STATE
WHERE ID > @LastIdx AND ID <= @NewIdx
)
, ctePrevPP AS
(
SELECT ID
,CurrentPP
,Targa as IdxMacchina
,[DateTime] AS DtEvento
FROM syn_M2ERP_MACHINE_STATE
WHERE ID >= @LastIdx AND ID < @NewIdx
)
-- lego i valori col precedente x calcolare se siano variati x insert valori
INSERT INTO MachineFluxLog(DtEvento, IdxMacchina, CodFlux, Valore, Cnt)
SELECT curr.DtEvento, curr.IdxMacchina, 'PartProg' as CodFlux, curr.CurrentPP as Valore, 0 as Cnt
FROM cteCurrPP curr
INNER JOIN ctePrevPP prev
ON curr.ID = prev.ID+1
WHERE curr.CurrentPP <> prev.CurrentPP
-- aggiorno valore indice processato
MERGE SyncState AS tgt
USING (SELECT @NewIdx as LastIdx, 'ToMachineFluxLog' AS TableName) as src (LastIdx, TableName)
ON (tgt.TableName = src.TableName)
WHEN MATCHED THEN
UPDATE SET LastIdx = src.LastIdx
,Note = 'UPDATED from ' + CAST(@LastIdx AS NVARCHAR(50))
,LastUpdate = GETDATE()
WHEN NOT MATCHED THEN
INSERT (LastIdx, TableName, Note, LastUpdate)
VALUES (src.LastIdx, src.TableName, 'CREATED', GETDATE());
END
COMMIT tran
END
@@ -0,0 +1,166 @@
ALTER PROCEDURE [dbo].[stp_GetMachineProdData]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
BEGIN tran
-- dichiarazioni variabili x recupero dati
DECLARE @LastIdx INT = 0
DECLARE @NewIdx INT = 0
-- recupero valore ultima riga stato processata...
SELECT @LastIdx = ISNULL(LastIdx,0)
FROM SyncState
WHERE TableName = 'ToMachineProdData'
-- recupero nuovo MAX idx
SELECT @NewIdx = ISNULL(MAX(ID),0)
FROM syn_M2ERP_PRODORDERS
-- eseguo SOLO SE ho dati aggiuntivi...
IF(@NewIdx > @LastIdx)
BEGIN
/* --------------------------------------------------
* Invierò solo VARIAZIONI dei valori
* - CurrentProdOrder (iniziato/concluso)
* - Quantità Produzione
* - dati FluxLog x ordini/quantità/tempi di produzione
*
* andando ad incrociare ogni record col precedente...
* -------------------------------------------------- */
-- processo dati ORDINI
;WITH cteCurrOrd AS
(
SELECT ID
,ProdOrder
,Targa as IdxMacchina
,[DateTime] AS DtEvento
,ProdOrderState
,ProdQty
FROM syn_M2ERP_PRODORDERS
WHERE ID > @LastIdx AND ID <= @NewIdx
)
, ctePrevOrd AS
(
SELECT ID
,ProdOrder
,Targa as IdxMacchina
,[DateTime] AS DtEvento
,ProdOrderState
,ProdQty
FROM syn_M2ERP_PRODORDERS
WHERE ID >= @LastIdx AND ID < @NewIdx
)
, cteActDec AS
(
SELECT curr.DtEvento as DtEve
,curr.IdxMacchina
,CASE
WHEN curr.ProdOrderState = 1 THEN 'StartOrd'
--WHEN curr.ProdOrderState = 2 THEN 'PauseOrd'
WHEN curr.ProdOrderState = 3 THEN 'EndOrd'
--WHEN curr.ProdOrderState = 6 THEN 'InsOrd'
ELSE 'NONE'
END AS OrdAction
,CASE
WHEN LEFT(curr.ProdOrder, 4) = 'PODL' THEN REPLACE(curr.ProdOrder,'PODL','')
ELSE 0 END AS IdxPodl
,CASE
WHEN LEFT(curr.ProdOrder, 3) = 'ODL' THEN REPLACE(curr.ProdOrder,'ODL','')
ELSE 0 END AS IdxOdl
,curr.ProdOrder as CodComm
,curr.ProdQty as PzCount
FROM cteCurrOrd curr
INNER JOIN ctePrevOrd prev
ON curr.ID = prev.ID+1
WHERE (curr.ProdOrder <> prev.ProdOrder)
OR (curr.ProdOrderState <> prev.ProdOrderState)
OR (curr.ProdQty <> prev.ProdQty)
)
-- lego i valori col precedente x calcolare se siano variati x insert valori
INSERT INTO MachineProdData(DtEve, IdxMacchina, Action, IdxPodl, IdxOdl, CodComm, PzCount)
SELECT DtEve, IdxMacchina, OrdAction, IdxPodl, IdxOdl, CodComm, PzCount
FROM cteActDec
WHERE OrdAction <> 'NONE'
-- ora processo ANCHE come fluxLog i record dei degli ordini (cod ordine, tempi...)
;WITH cteCurrOrd AS
(
SELECT ID
,ProdOrder
,Targa as IdxMacchina
,[DateTime] AS DtEvento
,ProdOrderState
,ProdQty
,ElapsedTime
FROM syn_M2ERP_PRODORDERS
WHERE ID > @LastIdx AND ID <= @NewIdx
)
, ctePrevOrd AS
(
SELECT ID
,ProdOrder
,Targa as IdxMacchina
,[DateTime] AS DtEvento
,ProdOrderState
,ProdQty
,ElapsedTime
FROM syn_M2ERP_PRODORDERS
WHERE ID >= @LastIdx AND ID < @NewIdx
)
, cteActDec AS
(
SELECT curr.DtEvento as DtEve
,curr.IdxMacchina
,CASE
WHEN curr.ProdOrderState = 1 THEN 'StartOrd'
--WHEN curr.ProdOrderState = 2 THEN 'PauseOrd'
WHEN curr.ProdOrderState = 3 THEN 'EndOrd'
--WHEN curr.ProdOrderState = 6 THEN 'InsOrd'
ELSE 'NONE'
END AS OrdAction
,CAST(CASE
WHEN LEFT(curr.ProdOrder, 4) = 'PODL' THEN REPLACE(curr.ProdOrder,'PODL','')
ELSE '0' END AS NVARCHAR(50)) AS IdxPodl
,CAST(CASE
WHEN LEFT(curr.ProdOrder, 3) = 'ODL' THEN REPLACE(curr.ProdOrder,'ODL','')
ELSE '0' END AS NVARCHAR(50)) AS IdxOdl
,CAST(curr.ProdOrder AS NVARCHAR(50)) as CodComm
,curr.ProdQty as PzCount
,CAST(curr.ElapsedTime AS NVARCHAR(50)) AS ElapsedTime
FROM cteCurrOrd curr
INNER JOIN ctePrevOrd prev
ON curr.ID = prev.ID+1
WHERE (curr.ProdOrder <> prev.ProdOrder)
OR (curr.ProdOrderState <> prev.ProdOrderState)
OR (curr.ProdQty <> prev.ProdQty)
)
-- lego i valori col precedente x calcolare se siano variati x insert valori
--INSERT INTO MachineFluxLog(DtEvento, IdxMacchina, CodFlux, Valore, Cnt)
SELECT DtEve as DtEvento, IdxMacchina, CodFlux, Valore,0 as Cnt
FROM cteActDec
UNPIVOT (Valore FOR CodFlux IN (CodComm, ElapsedTime, IdxOdl, IdxPOdl)) AS Unpvt
WHERE OrdAction <> 'NONE'
AND Valore <> '0'
-- aggiorno valore indice processato
MERGE SyncState AS tgt
USING (SELECT @NewIdx as LastIdx, 'ToMachineProdData' AS TableName) as src (LastIdx, TableName)
ON (tgt.TableName = src.TableName)
WHEN MATCHED THEN
UPDATE SET LastIdx = src.LastIdx
,Note = 'UPDATED from ' + CAST(@LastIdx AS NVARCHAR(50))
,LastUpdate = GETDATE()
WHEN NOT MATCHED THEN
INSERT (LastIdx, TableName, Note, LastUpdate)
VALUES (src.LastIdx, src.TableName, 'CREATED', GETDATE());
END
COMMIT tran
END
Binary file not shown.
@@ -0,0 +1,36 @@
/****** MoonPro_IOB-ISF_PAMA Script Date: 13/03/2023 19:03:53 ******/
-- creazione sinonimi
CREATE SYNONYM [dbo].[syn_ERP2M] FOR [P_HUB_PLD392].[dbo].[ERP2M]
CREATE SYNONYM [dbo].[syn_M2ERP_MACHINE_STATE] FOR [P_HUB_PLD392].[dbo].[M2ERP_MACHINE_STATE]
CREATE SYNONYM [dbo].[syn_M2ERP_PRODORDERS] FOR [P_HUB_PLD392].[dbo].[M2ERP_PRODORDERS]
GO
-- fix funzione
/***************************************
* FUNCTION f_padLeft
*
* fornisce una stringa della lunghezza desiderata aggiungendo a sx il carattere richiesto alla @string originale
*
* Steamware, S.E.L.
* mod: 2010.03.19
*
****************************************/
create FUNCTION [dbo].[f_padLeft] (@string VARCHAR(255), @desired_length INTEGER, @pad_character CHAR(1))
RETURNS VARCHAR(255) AS
BEGIN
-- Prefix the required number of spaces to bulk up the string and then replace the spaces with the desired character
RETURN CASE
WHEN LEN(@string) < @desired_length
THEN REPLACE(SPACE(@desired_length - LEN(@string)), ' ', @pad_character) + @string
ELSE @string
END
END
GO
-- fix stored specifiche
@@ -0,0 +1,98 @@
select * from ActType
select * from ActList
select * from SyncState
select * from MesPODL_last
select * from MesPODL_req
select * from MachineFluxLog
select * from MachineProdData
select * from MachineSignalLog
-- test scrittura PODL: OK!
exec dbo.SyncPodlToMachine
exec dbo.GetMachineSigLog
select * from SyncState
select * from MachineSignalLog
/*
truncate table MachineFluxLog
update SyncState
set lastidx=0
where TableName='ToMachineFluxLog'
*/
select top 2 * from MachineFluxLog order by 1 desc
select top 2 * from MachineProdData order by 1 desc
select top 10 * from MachineSignalLog order by 1 desc
select * from SyncState
exec dbo.GetMachineFluxLog
select * from MachineFluxLog
select * from syn_ERP2M
select * from syn_M2ERP_MACHINE_STATE
select * from syn_M2ERP_PRODORDERS
select top 10 * from syn_M2ERP_PRODORDERS
where ProdOrder LIKE 'PODL000%'
select top 10 * from syn_M2ERP_PRODORDERS
where ProdOrder LIKE '%ODL%'
order by 1 desc
EXEC GetMachineProdData
SELECT * FROM SyncState
SELECT * FROM MachineFluxLog
SELECT * FROM MachineProdData
SELECT * FROM MachineSignalLog
/*
truncate table MachineProdData
update SyncState
set lastidx=0
where TableName='ToMachineProdData'
*/
select * from ActType
/*
drop table __MigrationHistory
drop table ActList
drop table ActType
drop table MachineEventList
drop table MachineFluxLog
drop table MachinePODL
drop table MesPODL_last
drop table MesPODL_req
drop table SyncState
drop PROCEDURE dbo.BackupDb
drop PROCEDURE dbo.ExportAll
drop PROCEDURE dbo.GetMachineEvList
drop PROCEDURE dbo.GetMachineFluxLog
drop PROCEDURE dbo.ImportAll
drop PROCEDURE dbo.ResetPodlMes
drop PROCEDURE dbo.SyncPodlToMachine
*/
select * from ERP2M
select * from M2ERP_MACHINE_STATE where ActiveProdOrder = 'ODL0003743'
select * from M2ERP_PRODORDERS
select * from M2ERP_PRODORDERS where ProdOrder = 'ODL0003743'
@@ -0,0 +1,49 @@
-- =============================================
-- Author: S.E.L.
-- Create date: 2023.03.17
-- Description: Verifica ordini aperti - EXT schema/special
-- =============================================
CREATE PROCEDURE ext.stp_OrdState
(
@onlyOpen INT = 0 -- 1 = solo ordini rimasti aperti/validi
)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
IF (@onlyOpen = 0)
BEGIN
;WITH cteOrd AS
(
SELECT ProdOrder, MAX(id) as lastID
FROM syn_M2ERP_PRODORDERS
GROUP BY ProdOrder
)
SELECT m2erp.*
FROM syn_M2ERP_PRODORDERS m2erp
INNER JOIN cteord cte ON m2erp.ID=cte.lastID
ORDER BY 1 DESC
END
ELSE
BEGIN
;WITH cteOrd AS
(
SELECT ProdOrder, MAX(id) as lastID
FROM syn_M2ERP_PRODORDERS
GROUP BY ProdOrder
)
SELECT m2erp.*
FROM syn_M2ERP_PRODORDERS m2erp
INNER JOIN cteord cte ON m2erp.ID=cte.lastID
WHERE m2erp.ProdOrderState NOT IN (3,4)
ORDER BY 1 DESC
END
END
GO
+42
View File
@@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwProxy.SqlDb.Test
{
public class TestSetup
{
public string app { get; set; } = "testApp";
public string server { get; set; } = "";
public string user { get; set; } = "";
public string password { get; set; } = "";
public string dbName { get; set; } = "MoonPro_IOB_ISF_PAMA";
public List<singleStep> steps { get; set; }
}
public class singleStep
{
public string id { get; set; } = "00";
public string description { get; set; } = "00";
public stepType action { get; set; } = stepType.None;
public List<string> paramList { get; set; } = new List<string>();
}
public enum stepType
{
None,
DbMigrateAndSync,
ExecExportAll,
ExecImportAll,
GetMachSignLog,
GetMachProdData,
GetMachFluxLog,
GetSyncState,
ResetPodl,
SetNewPodl,
//procPodl
}
}
+1
View File
@@ -0,0 +1 @@

+71
View File
@@ -0,0 +1,71 @@
{
"server": "308SERVER60\\LANTEK",
"user": "steamware",
"password": "viadante16",
"steps": [
{
"id": "00",
"description": "Db Migrate + SYNC",
"action": "DbMigrateAndSync",
"paramList": []
},
{
"id": "01",
"description": "Test SYNC",
"action": "GetSyncState",
"paramList": []
},
{
"id": "02",
"description": "Reset PODL MES",
"action": "ResetPodl",
"paramList": []
},
//{
// "id": "03",
// "description": "upload Test PODL",
// "action": "SetNewPodl",
// "paramList": [
// "1001",
// "1002",
// "1003"
// ]
//}
{
"id": "03",
"description": "Export All",
"action": "ExecExportAll",
"paramList": []
},
{
"id": "04",
"description": "Import All",
"action": "ExecImportAll",
"paramList": []
},
{
"id": "05",
"description": "Get SignLog",
"action": "GetMachSignLog",
"paramList": []
},
{
"id": "06",
"description": "Get ProdData",
"action": "GetMachProdData",
"paramList": []
},
{
"id": "07",
"description": "Get FluxLog",
"action": "GetMachFluxLog",
"paramList": []
},
{
"id": "08",
"description": "Test SYNC",
"action": "GetSyncState",
"paramList": []
}
]
}
+9
View File
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="EntityFramework" version="6.4.4" targetFramework="net462" />
<package id="Newtonsoft.Json" version="13.0.1" targetFramework="net462" />
<package id="System.Configuration.ConfigurationManager" version="7.0.0" targetFramework="net462" />
<package id="System.Security.AccessControl" version="6.0.0" targetFramework="net462" />
<package id="System.Security.Permissions" version="7.0.0" targetFramework="net462" />
<package id="System.Security.Principal.Windows" version="5.0.0" targetFramework="net462" />
</packages>
+74
View File
@@ -0,0 +1,74 @@
@echo off
echo Effettua pulizia post build: configurazione %1. directory %2
RD /S /Q %2"\lib\da"
RD /S /Q %2"\lib\de"
RD /S /Q %2"\lib\es"
RD /S /Q %2"\lib\fr"
RD /S /Q %2"\lib\it"
RD /S /Q %2"\lib\ja-JP"
RD /S /Q %2"\lib\ko"
RD /S /Q %2"\lib\nl"
RD /S /Q %2"\lib\pl"
RD /S /Q %2"\lib\pt"
RD /S /Q %2"\lib\ru"
RD /S /Q %2"\lib\sv"
RD /S /Q %2"\lib\tr"
RD /S /Q %2"\lib\zh"
MOVE /Y %2"da" %2"lib\"
MOVE /Y %2"de" %2"lib\"
MOVE /Y %2"es" %2"lib\"
MOVE /Y %2"fr" %2"lib\"
MOVE /Y %2"it" %2"lib\"
MOVE /Y %2"ja-JP" %2"lib\"
MOVE /Y %2"ko" %2"lib\"
MOVE /Y %2"nl" %2"lib\"
MOVE /Y %2"pl" %2"lib\"
MOVE /Y %2"pt" %2"lib\"
MOVE /Y %2"ru" %2"lib\"
MOVE /Y %2"sv" %2"lib\"
MOVE /Y %2"tr" %2"lib\"
MOVE /Y %2"zh" %2"lib\"
if %1 == "Release" goto Release
if %1 == "Debug" goto Debug
if %1 == "Remote_DEBUG" goto RemoteDebug
:Release
REM INIZIO eliminando i files pdb
del /S %2"*.pdb""
del /S %2"lib/*.pdb""
echo Release: eliminato pdb!!!
goto END
:Debug
echo Debug: nulla da eliminare
REM copia script verso server remoto
REM ROBOCOPY . \\10.150.0.1\Steamware\SqlDbTest-DEB /MIR
goto END
:RemoteDebug
REM copia script verso server remoto
REM echo Debug remoto: effettuo robocopy sync (verificare remote per cliente)
REM FINASSI
REM ROBOCOPY . \\10.150.0.1\Steamware\SqlDbTest-DEB /MIR
REM Baglietto
REM ROBOCOPY . \\192.168.60.15\Steamware\SqlDbTest-DEB /MIR
REM GIACOVELLI LOCOROTONDO
REM ROBOCOPY . \\192.168.1.93\Steamware\SqlDbTest-DEB /MIR
REM IMI Remosa
ROBOCOPY . \\192.168.0.12\Steamware\SqlDbTest-DEB /MIR
REM IOB-WIN-SIM
REM ROBOCOPY . \\IOB-WIN-SIMULA\Steamware\SqlDbTest-DEB /MIR
goto END
:END
echo Fatto!
+25
View File
@@ -0,0 +1,25 @@
@echo off
echo Effettua setup dei file specifici per i vari ambienti pre build installer: verifica da nome configurazione %1
if %1 == "Release" goto Release
if %1 == "Debug" goto Debug
if %1 == "Remote_DEBUG" goto RemoteDebug
:Release
echo Release: nulla da copiare
goto END
:Debug
echo Debug: copia file ini x simulazione Debug
REM del %2"DATA\CONF\EsaKvara.ini"
REM copy %2"Resources\SCM\EsaKvara_SIM.ini" %2"DATA\CONF\EsaKvara.ini"
goto END
:RemoteDebug
echo RemoteDebug: nulla da copiare
goto END
:END
echo Fatto!
+36
View File
@@ -0,0 +1,36 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.5.33424.131
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EgwProxy.SqlDb", "EgwProxy.SqlDb\EgwProxy.SqlDb.csproj", "{A5F9E2C8-B866-4470-923C-11BA35270963}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EgwProxy.SqlDb.Test", "EgwProxy.SqlDb.Test\EgwProxy.SqlDb.Test.csproj", "{A11CA446-AE97-413D-A567-45A081F003DB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
Remote_DEBUG|Any CPU = Remote_DEBUG|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A5F9E2C8-B866-4470-923C-11BA35270963}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A5F9E2C8-B866-4470-923C-11BA35270963}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A5F9E2C8-B866-4470-923C-11BA35270963}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A5F9E2C8-B866-4470-923C-11BA35270963}.Release|Any CPU.Build.0 = Release|Any CPU
{A5F9E2C8-B866-4470-923C-11BA35270963}.Remote_DEBUG|Any CPU.ActiveCfg = Debug|Any CPU
{A5F9E2C8-B866-4470-923C-11BA35270963}.Remote_DEBUG|Any CPU.Build.0 = Debug|Any CPU
{A11CA446-AE97-413D-A567-45A081F003DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A11CA446-AE97-413D-A567-45A081F003DB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A11CA446-AE97-413D-A567-45A081F003DB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A11CA446-AE97-413D-A567-45A081F003DB}.Release|Any CPU.Build.0 = Release|Any CPU
{A11CA446-AE97-413D-A567-45A081F003DB}.Remote_DEBUG|Any CPU.ActiveCfg = Remote_DEBUG|Any CPU
{A11CA446-AE97-413D-A567-45A081F003DB}.Remote_DEBUG|Any CPU.Build.0 = Remote_DEBUG|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {E2472E21-58D3-4EAD-BC4A-BC3915B18BEF}
EndGlobalSection
EndGlobal
+15
View File
@@ -0,0 +1,15 @@
<?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>
<connectionStrings>
<add name="SyncState" connectionString="data source=SQL2016DEV;initial catalog=MoonPro_IOB_ISF;persist security info=True;user id=sa;password=keyhammer16;MultipleActiveResultSets=True;App=EgwProxy.SqlDb" providerName="System.Data.SqlClient" />
</connectionStrings>
<entityFramework>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>
+316
View File
@@ -0,0 +1,316 @@
using EgwProxy.SqlDb.DbModels;
using NLog;
using System;
using System.Collections.Generic;
using System.Linq;
namespace EgwProxy.SqlDb.Controllers
{
/// <summary>
/// Controller accesso dati DB IOB_ISF
/// </summary>
public class DbController : IDisposable
{
#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)
{
connString = connSyncState;
Log.Info("Avviata classe DbController");
}
#endregion Public Constructors
#region Public Methods
/// <summary>
/// Recupera la tab di ActList corrente
/// </summary>
/// <returns></returns>
public List<ActListModel> ActListGetAll()
{
List<ActListModel> dbResult = new List<ActListModel>();
using (var dbSyncStateCtx = new SyncStateDbContext(connString))
{
dbResult = dbSyncStateCtx
.DbSetActions
.ToList();
}
return dbResult;
}
/// <summary>
/// Recupera la tab di ActType corrente
/// </summary>
/// <returns></returns>
public List<ActTypeModel> ActTypeGetAll()
{
List<ActTypeModel> dbResult = new List<ActTypeModel>();
using (var dbSyncStateCtx = new SyncStateDbContext(connString))
{
dbResult = dbSyncStateCtx
.DbSetActListType
.ToList();
}
return dbResult;
}
public bool DbForceMigrate()
{
bool fatto = false;
using (var dbSyncStateCtx = new SyncStateDbContext(connString))
{
dbSyncStateCtx.DbForceMigrate();
fatto = true;
}
return fatto;
}
/// <summary>
/// Dispose classe
/// </summary>
public void Dispose()
{
// Clear database context
connString = "";
}
/// <summary>
/// Recupera la tab FluxLog x i record successivi all'ID già processato
/// </summary>
/// <param name="lastIdx"></param>
/// <returns></returns>
public List<MachFluxLogModel> MachFluxLogGetNew(long lastIdx)
{
List<MachFluxLogModel> dbResult = new List<MachFluxLogModel>();
using (var dbSyncStateCtx = new SyncStateDbContext(connString))
{
dbResult = dbSyncStateCtx
.DbSetMachFluxLog
.Where(x => x.Id > lastIdx)
.OrderBy(x => x.Id)
.ToList();
}
return dbResult;
}
/// <summary>
/// Recupera la tab PODL Macchina x i record successivi all'ID già processato
/// </summary>
/// <param name="lastIdx"></param>
/// <returns></returns>
public List<MachPODLModel> MachPOdlGetNew(long lastIdx)
{
List<MachPODLModel> dbResult = new List<MachPODLModel>();
using (var dbSyncStateCtx = new SyncStateDbContext(connString))
{
dbResult = dbSyncStateCtx
.DbSetMachPODL
.Where(x => x.IdxPromessa > lastIdx)
.OrderBy(x => x.IdxPromessa)
.ToList();
}
return dbResult;
}
/// <summary>
/// Recupera la tab ProdData x i record successivi all'ID già processato
/// </summary>
/// <param name="lastIdx"></param>
/// <returns></returns>
public List<MachProdDataModel> MachProdDataGetNew(long lastIdx)
{
List<MachProdDataModel> dbResult = new List<MachProdDataModel>();
using (var dbSyncStateCtx = new SyncStateDbContext(connString))
{
dbResult = dbSyncStateCtx
.DbSetMachProdData
.Where(x => x.Id > lastIdx)
.OrderBy(x => x.Id)
.ToList();
}
return dbResult;
}
/// <summary>
/// Recupera la tab EvList x i record successivi all'ID già processato
/// </summary>
/// <param name="lastIdx"></param>
/// <returns></returns>
public List<MachSigLogModel> MachSigLogGetNew(long lastIdx)
{
List<MachSigLogModel> dbResult = new List<MachSigLogModel>();
using (var dbSyncStateCtx = new SyncStateDbContext(connString))
{
dbResult = dbSyncStateCtx
.DbSetMachEvList
.Where(x => x.Id > lastIdx)
.OrderBy(x => x.Id)
.ToList();
}
return dbResult;
}
/// <summary>
/// Scrive elenco PODL attivi al momento x processing successivo
/// </summary>
/// <param name="CurrPodlReq"></param>
/// <returns></returns>
public bool MesPodlWriteReq(List<MesPODLReqModel> CurrPodlReq)
{
bool fatto = false;
using (var dbSyncStateCtx = new SyncStateDbContext(connString))
{
try
{
// in primis verifica SE sia vuota la tab req...
var oldData = dbSyncStateCtx
.DbSetMesPodlReq
.ToList();
// se vuota scrive i record e salva
if (oldData.Count == 0)
{
// aggiungo i nuovi record
var dbResult = dbSyncStateCtx
.DbSetMesPodlReq
.AddRange(CurrPodlReq);
// salvo
dbSyncStateCtx.SaveChanges();
fatto = true;
}
}
catch //(Exception exc)
{ }
}
return fatto;
}
/// <summary>
/// Esegue reset tabelle PODL MEs e restituisce elenco finale (vuoto)
/// </summary>
/// <returns></returns>
public List<MesPODLReqModel> ResetPODLMes()
{
List<MesPODLReqModel> dbResult = new List<MesPODLReqModel>();
using (var dbSyncStateCtx = new SyncStateDbContext(connString))
{
dbResult = dbSyncStateCtx
.Database
.SqlQuery<MesPODLReqModel>("EXEC dbo.stp_ResetPodlMes")
.ToList();
}
return dbResult;
}
public string ServerOk()
{
return SyncStateGetAll().Count() > 0 ? "OK" : "NA";
}
/// <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<SyncStateModel> SyncStateDoExportAll()
{
List<SyncStateModel> dbResult = new List<SyncStateModel>();
using (var dbSyncStateCtx = new SyncStateDbContext(connString))
{
dbResult = dbSyncStateCtx
.Database
.SqlQuery<SyncStateModel>("EXEC dbo.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<SyncStateModel> SyncStateDoImportAll()
{
List<SyncStateModel> dbResult = new List<SyncStateModel>();
using (var dbSyncStateCtx = new SyncStateDbContext(connString))
{
dbResult = dbSyncStateCtx
.Database
.SqlQuery<SyncStateModel>("EXEC dbo.stp_ImportAll")
.ToList();
}
return dbResult;
}
/// <summary>
/// recupera la tab di SyncState corrente
/// </summary>
/// <returns></returns>
public List<SyncStateModel> SyncStateGetAll()
{
List<SyncStateModel> dbResult = new List<SyncStateModel>();
using (var dbSyncStateCtx = new SyncStateDbContext(connString))
{
dbResult = dbSyncStateCtx
.DbSetSyncState
.ToList();
}
return dbResult;
}
/// <summary>
/// Aggiorna record SyncState corrente
/// </summary>
/// <returns></returns>
public bool SyncStateUpsert(SyncStateModel newVal)
{
bool fatto = false;
using (var dbSyncStateCtx = new SyncStateDbContext(connString))
{
// cerco record
var dbResult = dbSyncStateCtx
.DbSetSyncState
.Where(x => x.TableName == newVal.TableName)
.FirstOrDefault();
// se trovato aggiorno
if (dbResult != null)
{
dbResult.LastIdx = newVal.LastIdx;
dbResult.Note = newVal.Note;
dbResult.LastUpdate = newVal.LastUpdate;
//dbSyncStateCtx.Entry(dbResult).State = System.Data.Entity.EntityState.Modified;
}
// altrimenti aggiungo
else
{
dbSyncStateCtx.DbSetSyncState.Add(newVal);
}
// salvo
dbSyncStateCtx.SaveChanges();
fatto = true;
}
return fatto;
}
#endregion Public Methods
#region Protected Fields
protected static string connString = "";
#endregion Protected Fields
#region Private Fields
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
#endregion Private Fields
}
}
+35
View File
@@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwProxy.SqlDb.DbModels
{
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
[Table("ActList")]
public partial class ActListModel
{
[Key, Column("IdxAct"), DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; } = 0;
public DateTime DtRif { get; set; } = DateTime.Today;
[StringLength(50)]
public string Source { get; set; } = "IN";
[StringLength(50)]
public string Dest { get; set; } = "OUT";
[StringLength(250)]
public string Action { get; set; } = "";
[StringLength(2500)]
public string Value { get; set; } = "";
}
}
+24
View File
@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwProxy.SqlDb.DbModels
{
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
[Table("ActType")]
public partial class ActTypeModel
{
[Key, StringLength(250)]
public string Action { get; set; } = "";
[StringLength(500)]
public string Description { get; set; } = "";
}
}
@@ -0,0 +1,34 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwProxy.SqlDb.DbModels
{
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
[Table("MachineFluxLog")]
public partial class MachFluxLogModel
{
[Key, Column("IdxFL"), DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; } = 0;
public DateTime DtEvento { get; set; } = DateTime.Now;
[StringLength(50)]
public string IdxMacchina { get; set; } = "";
[StringLength(50)]
public string CodFlux { get; set; } = "";
[StringLength(250)]
public string Valore { get; set; } = "";
public int Cnt { get; set; } = 0;
}
}
+57
View File
@@ -0,0 +1,57 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwProxy.SqlDb.DbModels
{
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
[Table("MachinePODL")]
public partial class MachPODLModel
{
[Key]
public int IdxRec { get; set; } = 0;
public int IdxPromessa { get; set; } = 0;
[StringLength(50)]
public string KeyRichiesta { get; set; } = "";
[StringLength(50)]
public string KeyBCode { get; set; } = "";
public bool Attivabile { get; set; } = false;
public int IdxODL { get; set; } = 0;
[StringLength(50)]
public string CodArticolo { get; set; } = "";
[StringLength(50)]
public string CodGruppo { get; set; } = "";
[StringLength(50)]
public string IdxMacchina { get; set; } = "";
public int NumPezzi { get; set; } = 0;
public decimal TCAssegnato { get; set; } = 0;
public DateTime DueDate { get; set; } = DateTime.Today;
public int Priorita { get; set; } = 0;
public int PzPallet { get; set; } = 0;
[StringLength(2500)]
public string Note { get; set; } = "";
[StringLength(50)]
public string CodCli { get; set; } = "";
public DateTime InsertDate { get; set; } = DateTime.Today;
}
}

Some files were not shown because too many files have changed in this diff Show More