347 Commits

Author SHA1 Message Date
Emmanuele Sassi 37986b0bcb - eliminato controllo chiave
- aggiunto try su cancellazione file
2024-08-05 16:22:17 +02:00
Emmanuele Sassi 06b06db04d Merge remote-tracking branch 'origin/develop' into ProcPipeComm 2024-01-05 09:20:55 +01:00
Emmanuele Sassi f3810fa708 - gestiti mutex con nome da ini per distinguere istanze
- spostata inizializzazione oggetto web in load
- corretti errori i n avvio per oggetti non inizializzati
- spostata path dell'Engine in file ini
2024-01-05 09:20:16 +01:00
Samuele Locatelli f2d5894638 Merge tag 'FixAnnualFilter01' into develop
Fix filtro annuale: 1 genn anno precedente
2024-01-04 15:14:40 +01:00
Samuele Locatelli 72a9b30224 Merge branch 'release/FixAnnualFilter01' 2024-01-04 15:14:30 +01:00
Samuele Locatelli 5de127b786 Fix filtro periodo: da 1 gennaio anno precedente 2024-01-04 15:13:52 +01:00
Samuele Locatelli bda5a45556 Merge tag 'UpdateCompoComparer02' into develop
iUpdate pagina comparer
2023-09-11 14:33:48 +02:00
Samuele Locatelli 544050bed8 Merge branch 'release/UpdateCompoComparer02' 2023-09-11 14:33:36 +02:00
zaccaria.majid afd6dcc415 fix grafici + fix diff 2023-09-11 14:20:29 +02:00
zaccaria.majid a41ba4ed86 ok fix grafici 2023-09-11 12:18:54 +02:00
Samuele Locatelli 1b0e6eff12 Merge branch 'main' into develop 2023-09-11 12:06:07 +02:00
Samuele Locatelli ece16243ff Merge tag 'UpdateCompoComparer01' into develop
Update prod x gestione compo comparer
2023-09-11 12:05:45 +02:00
Samuele Locatelli 9228059419 Fix direzione compare 2023-09-11 12:05:28 +02:00
Samuele Locatelli 4584f95004 Merge branch 'release/UpdateCompoComparer01' 2023-09-11 12:01:36 +02:00
Samuele Locatelli 16650e0b25 Update filtro x type 2023-09-11 12:01:08 +02:00
Samuele Locatelli 30f2a040b7 Update comparatore x lettura parziale new/cur 2023-09-11 11:13:44 +02:00
Samuele Locatelli b49752c31a Merge branch 'develop' of https://gitlab.steamware.net/egalware/webdoorcreator into develop 2023-09-11 09:34:03 +02:00
Samuele Locatelli 1e8ce2315b update grafica comparer 2023-09-11 09:33:27 +02:00
zaccaria.majid 5aadcb2605 ok filtro x file status 2023-09-11 09:30:57 +02:00
zaccaria.majid 96c58679ff fix directory di base x compo in staging e production 2023-09-11 08:12:41 +02:00
zaccaria.majid 2fcc24f3be fix warning 2023-09-06 17:10:11 +02:00
zaccaria.majid 99b201eeea Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/special/webdoorcreator into develop 2023-09-06 16:59:58 +02:00
zaccaria.majid 5448a9117b fix cartelle di rete 2023-09-06 16:58:53 +02:00
Samuele Locatelli 49dd1eec6b Merge tag 'AddCompoManager01' into develop
Update gest componenti in prod
2023-09-05 16:33:32 +02:00
Samuele Locatelli ccf37fec6d Merge branch 'release/AddCompoManager01' 2023-09-05 16:33:24 +02:00
Samuele Locatelli e69a1b71f7 Update note + css x manuale ILIAS 2023-09-05 16:32:48 +02:00
Samuele Locatelli cc8b227378 Refresh 2023-09-05 16:30:05 +02:00
Samuele Locatelli 0ad9bfc322 update manuale da ILIAS 2023-09-05 16:29:13 +02:00
zaccaria.majid 2f849c2d4e delete file inutili 2023-09-05 16:16:27 +02:00
zaccaria.majid 3b120055f7 ok display progress 2023-09-05 15:27:11 +02:00
zaccaria.majid 0f593ef013 fix update file template 2023-09-05 15:23:56 +02:00
zaccaria.majid 0eb1dee91e fix gestione rescan post salvataggio 2023-09-05 12:54:52 +02:00
zaccaria.majid 37eb2ab1cf fix grafici pagina confronto compo 2023-09-05 12:20:16 +02:00
Samuele Locatelli 3085f5bad9 Riconfigurazione staging/prod x conf json 2023-09-05 10:51:11 +02:00
Samuele Locatelli 2d55618738 Fix calcolo scansione folders 2023-09-05 10:50:46 +02:00
Samuele Locatelli c7c7cb5795 Fix comprare & diff 2023-09-05 10:50:36 +02:00
zaccaria.majid bd5e60db77 fix roles pagina superadmin 2023-09-05 09:54:52 +02:00
zaccaria.majid 54463ea14d nascosto bottone interface 2023-09-05 09:50:05 +02:00
zaccaria.majid b5389ad62a fix svuotatura campi x new company 2023-09-05 09:47:59 +02:00
zaccaria.majid 839273f8de fix voabulary 2023-09-04 16:24:00 +02:00
zaccaria.majid 102918bf0a fix percorsi giusto 2023-09-04 15:44:55 +02:00
zaccaria.majid 15f5f93081 fix percorsi R 2023-09-04 15:27:37 +02:00
zaccaria.majid d62be83f7e fix placeholder 2023-09-04 15:13:36 +02:00
Samuele Locatelli 4f5dac3156 Merge branch 'develop' of https://gitlab.steamware.net/egalware/webdoorcreator into develop 2023-09-04 15:05:43 +02:00
Samuele Locatelli 01ef886474 Aggiunta folder log/placeholder 2023-09-04 15:04:41 +02:00
zaccaria.majid 42c23db164 refresh vocabulary 2023-09-04 14:52:25 +02:00
zaccaria.majid 998f24719c ok salvataggio quando necessario 2023-09-04 12:10:06 +02:00
zaccaria.majid 92cfa01d94 fix creazione cartelle 2023-09-04 11:36:01 +02:00
zaccaria.majid f8c6db7902 ok accept mod da modale diff 2023-09-04 10:13:59 +02:00
zaccaria.majid 355de58199 ok progress display 2023-09-04 08:38:39 +02:00
zaccaria.majid fcf6398a5a aggiunto load 2023-08-31 17:29:12 +02:00
zaccaria.majid 4605985c85 ok vista diff 2023-08-31 16:55:02 +02:00
zaccaria.majid 4216c26747 fix grafici + ok scansioni 2023-08-31 16:09:33 +02:00
zaccaria.majid 90eb11e861 fix grafici e inizio gestione azioni da compiere per ogni file 2023-08-31 10:04:55 +02:00
zaccaria.majid d6dad0211f ok scan files nelle cartelle. 2023-08-30 17:04:20 +02:00
zaccaria.majid e51b311203 inizio fix gestione files 2023-08-29 17:13:48 +02:00
zaccaria.majid 25ab909477 inizio compare testi 2023-08-29 15:07:06 +02:00
Samuele Locatelli 78361c3c2c Minor fixes 2023-08-29 11:49:20 +02:00
Samuele Locatelli baecfc96d6 refresh 2023-08-01 14:18:13 +02:00
Samuele Locatelli 05d1876d09 Rimozione hierarchId
- da nuget
- da migration vecchie
2023-08-01 14:17:39 +02:00
Samuele Locatelli b963104a2b - aggiuhnta librerie x Skia @ linux
- test ok (tranne report...)
2023-08-01 13:58:28 +02:00
Samuele Locatelli 7d6d75d539 Merge branch 'develop' of https://gitlab.steamware.net/egalware/webdoorcreator into develop 2023-08-01 11:45:10 +02:00
Samuele Locatelli f9717618af Inserimento SkiaSharp x gestione SVG --> png cross-platform 2023-08-01 11:45:07 +02:00
zaccaria.majid a61330abc1 fine gestione logs 2023-08-01 10:30:26 +02:00
zaccaria.majid c08aa6a95f Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/special/webdoorcreator into develop 2023-08-01 09:55:19 +02:00
zaccaria.majid 0c37f7875f copertura parziale log 2023-08-01 09:55:09 +02:00
Samuele Locatelli 71376e4a35 COmpletata rimozione warning 2023-08-01 09:54:04 +02:00
Samuele Locatelli 632e2005ee Fix gestione deserializzazione claims 2023-08-01 09:47:34 +02:00
Samuele Locatelli c2bd127b64 Update gestione redisChannel con patterna aggiornati 2023-08-01 08:48:06 +02:00
Samuele Locatelli 053b39bb00 Altra pulizia + fix log/exc 2023-08-01 08:41:27 +02:00
Samuele Locatelli a3f628f139 Ancora correzione warning + log inizio estensione 2023-08-01 08:12:35 +02:00
Samuele Locatelli c2af720d82 Ancor nuget vari + fix warnings compilazione (INIZIO!!!) 2023-07-31 19:15:22 +02:00
Samuele Locatelli 6605567a2f Varie:
- Update note documenti md
- update nuget EgwCoreLib
- consolidamento & update nuget vari
2023-07-31 19:03:56 +02:00
Samuele Locatelli d9d8994157 Merge tag 'FixBtnDisabled' into develop
Fix gestione buttons disabled
2023-07-28 16:11:49 +02:00
Samuele Locatelli cdfe383fc3 Merge branch 'release/FixBtnDisabled' 2023-07-28 16:11:40 +02:00
zaccaria.majid 66f27a9baf fix controllo order status 2023-07-28 15:51:28 +02:00
zaccaria.majid c23a596868 fix letture da db (bloccate da test di seed) 2023-07-28 11:28:47 +02:00
zaccaria.majid 5be1aedd23 bug fix e tentetivi seed data 2023-07-21 16:46:03 +02:00
zaccaria.majid 62b232b05e Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/special/webdoorcreator into develop 2023-07-21 14:54:33 +02:00
zaccaria.majid 5bc32abc04 update stored script 2023-07-21 14:54:28 +02:00
Samuele Locatelli 98d0cf60ea modifica stored come drop+create 2023-07-21 14:51:43 +02:00
Samuele Locatelli b46d935956 Merge branch 'develop' 2023-07-21 12:04:17 +02:00
zaccaria.majid dafe55c017 fix stored + fix combinazioni per bottone cambio stato ordine 2023-07-21 09:48:06 +02:00
zaccaria.majid 5462c8cca4 Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/special/webdoorcreator into develop 2023-07-21 08:51:40 +02:00
zaccaria.majid e4782f62f4 minor fix 2023-07-21 08:49:27 +02:00
Samuele Locatelli 3f2a3b7a51 Merge tag 'FixRefreshVoc' into develop
Fix condizione refresh vocabolario con pulsante in menu horizontal
2023-07-21 08:39:57 +02:00
Samuele Locatelli e0d6ab0b0a Merge branch 'release/FixRefreshVoc' 2023-07-21 08:39:39 +02:00
Samuele Locatelli ccd9dca9fe update x gestione refresh dati vocabolario 2023-07-21 08:39:19 +02:00
Samuele Locatelli 09c55be1e7 update manuale stored/view in prod 2023-07-20 18:12:10 +02:00
Samuele Locatelli b3086f52fb Merge tag 'FixHelpMenu' into develop
Fix top menu  help & co
2023-07-19 17:01:35 +02:00
Samuele Locatelli e8e53d940d Merge branch 'release/FixHelpMenu' 2023-07-19 17:01:24 +02:00
zaccaria.majid f9eaa7ccd4 minor fix 2023-07-19 16:42:12 +02:00
zaccaria.majid 34feb38b27 Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/special/webdoorcreator into develop 2023-07-19 16:07:20 +02:00
zaccaria.majid a344f7401d Tolti ruoli per vedere help 2023-07-19 16:07:16 +02:00
Samuele Locatelli f5e7ff1452 Merge tag 'FixResetPwdProcedureProd02' into develop
Fix x logout page
2023-07-19 12:03:55 +02:00
Samuele Locatelli 178a8843dd Merge branch 'release/FixResetPwdProcedureProd02' 2023-07-19 12:03:49 +02:00
zaccaria.majid 6aa7ec80d6 tentativo fix 2023-07-19 11:52:26 +02:00
zaccaria.majid 98509a0fa2 Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/special/webdoorcreator into develop 2023-07-19 11:42:12 +02:00
zaccaria.majid 24283722c6 prova fix link action logout 2023-07-19 11:42:06 +02:00
Samuele Locatelli f49d9fcb0f Merge tag 'FixResetPwdProcedureProd01' into develop
Fix in prod
2023-07-19 11:08:20 +02:00
Samuele Locatelli ac8284fcd2 Merge branch 'release/FixResetPwdProcedureProd01' 2023-07-19 11:08:10 +02:00
zaccaria.majid 9e8fcec7c0 minor fix 2023-07-19 11:05:06 +02:00
zaccaria.majid 08e1cad999 Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/special/webdoorcreator into develop 2023-07-19 10:58:22 +02:00
zaccaria.majid f758dd3f1b fix link x redirect 2023-07-19 10:57:32 +02:00
Samuele Locatelli 555dae50db Merge tag 'UpdateOnProd-230705-07' into develop
update globale in produzione
2023-07-05 07:53:36 +02:00
Samuele Locatelli 3e278c4e93 Merge branch 'release/UpdateOnProd-230705-07' 2023-07-05 07:53:24 +02:00
Samuele Locatelli 105d5083cb Refresh manuale + update in prod 2023-07-05 07:52:42 +02:00
Samuele Locatelli 5457fde893 Merge branch 'develop' of https://gitlab.steamware.net/egalware/webdoorcreator into develop 2023-06-30 09:59:05 +02:00
Samuele Locatelli a87711e714 Aggiunta help (preliminare da GPW) 2023-06-30 09:58:29 +02:00
Samuele Locatelli 54fb80e33b Aggiunta link x help e hide num modelli x TPL 2023-06-30 09:58:02 +02:00
zaccaria.majid ba0e338253 fix immagini 2023-06-29 12:01:43 +02:00
zaccaria.majid 4de19da582 ok gestione modifica porta solo in stato 10 || tpl 2023-06-29 11:37:19 +02:00
zaccaria.majid 992165a30c ok modifica unit cost in caso di pagina tpl 2023-06-29 10:04:13 +02:00
Samuele Locatelli 4c72268fc5 Refresh cache TPL + fix vari 2023-06-29 09:59:11 +02:00
zaccaria.majid d102d04d24 fix grafico 2023-06-29 09:24:11 +02:00
Samuele Locatelli 899043124d Update x gestione gradiente HEX 2023-06-29 08:42:24 +02:00
zaccaria.majid 60a8d5e4d0 Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/special/webdoorcreator into develop 2023-06-29 07:56:04 +02:00
zaccaria.majid 39e065e584 aggiunte immagini hw 2023-06-28 16:55:51 +02:00
Samuele Locatelli 81bed89059 refresh 2023-06-28 14:49:02 +02:00
zaccaria.majid 577c1b8e0e fix grafici parte superiore card door list 2023-06-28 13:09:05 +02:00
Samuele Locatelli 66ac6ed86b Merge branch 'develop' of https://gitlab.steamware.net/egalware/webdoorcreator into develop 2023-06-28 12:40:41 +02:00
Samuele Locatelli 34e8385946 add sorting ord status 2023-06-28 12:40:38 +02:00
zaccaria.majid 9e526aef0b fix grafici 2023-06-28 12:39:59 +02:00
zaccaria.majid 1449647645 fix grafico 2023-06-28 11:17:48 +02:00
zaccaria.majid dbec591520 fix orders home page 2023-06-28 10:44:29 +02:00
zaccaria.majid 741af51f7b Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/special/webdoorcreator into develop 2023-06-28 10:38:01 +02:00
zaccaria.majid 21b3e699c4 ok gestione colori 2023-06-28 10:37:55 +02:00
Samuele Locatelli bfdc802c90 Merge branch 'develop' of https://gitlab.steamware.net/egalware/webdoorcreator into develop 2023-06-28 10:23:21 +02:00
Samuele Locatelli ac3a42eed4 Update x gestioen scadenza lunga SVG porte TPL 2023-06-28 10:21:52 +02:00
zaccaria.majid ec1e6a616b fix colori bottoni azione per door list 2023-06-28 10:21:38 +02:00
zaccaria.majid efd23ecae3 aggiunti colori stato in orderlist 2023-06-28 08:55:25 +02:00
Samuele Locatelli 05284c34e8 fix disabled x componente btn HwSw SVG 2023-06-28 08:40:28 +02:00
Samuele Locatelli 32501a8f38 Completata pagina ordini:
-  sorting
- fix colonne
- fix editing + update
2023-06-27 17:44:12 +02:00
Samuele Locatelli b75e16a221 Fix editing modale x OrdStatus 2023-06-27 17:18:36 +02:00
Samuele Locatelli f8b8cf226f Update comportamento salvataggio date da status 2023-06-27 16:55:58 +02:00
zaccaria.majid 5f6d10df44 fix grafici 2023-06-27 16:23:09 +02:00
zaccaria.majid 57cda0d5f7 ok migrations e modifica view orderstatus 2023-06-27 15:41:59 +02:00
Samuele Locatelli ca10b584e6 Spostamento dati + review pagina ordini 2023-06-27 15:30:51 +02:00
zaccaria.majid 3c16090ec0 fix ogfgetti 2023-06-27 15:11:20 +02:00
Samuele Locatelli ef3e4f957b Fix obj SVG x buttons parametrico 2023-06-27 14:34:37 +02:00
Samuele Locatelli 5a924c340c Merge branch 'develop' of https://gitlab.steamware.net/egalware/webdoorcreator into develop 2023-06-27 14:20:45 +02:00
Samuele Locatelli 0abf7186d1 fix refresh SVG 2023-06-27 14:19:16 +02:00
zaccaria.majid 51259f3c8e fix minore ancora su gestione modale door 2023-06-27 12:27:00 +02:00
zaccaria.majid aabc2b4364 gestione cambio prezzo solo quando possibile 2023-06-27 12:16:00 +02:00
zaccaria.majid cd74c11b58 ok cambio prezzo singola porta 2023-06-27 11:56:10 +02:00
zaccaria.majid 2055d4efbb fix gestione flusso stati 2023-06-27 11:33:53 +02:00
zaccaria.majid 9b782af373 continuo gestione stati 2023-06-27 10:39:53 +02:00
zaccaria.majid 2bcd575d00 ok avanzamento stati 2023-06-27 10:06:47 +02:00
zaccaria.majid fa747a144d ok cancellazione cache post cambio stato 2023-06-26 09:07:53 +02:00
zaccaria.majid 3324cf6d0e continuo gestione casistiche x flussi di status 2023-06-22 09:21:47 +02:00
zaccaria.majid cf9c1ebe0b inizio gestione step x admin 2023-06-21 17:14:33 +02:00
zaccaria.majid 9026dd4cf3 fix gestione step 2023-06-21 12:46:13 +02:00
zaccaria.majid aa327b3aad inizio gestione avanzamento step 2023-06-21 12:02:13 +02:00
zaccaria.majid 94334381fe ok avanzamento ordine 2023-06-21 10:05:48 +02:00
Samuele Locatelli a5f3553186 hide status x template 2023-06-15 16:05:47 +02:00
Samuele Locatelli 9facdffb8b Fix template translation (btn, title) 2023-06-15 16:04:21 +02:00
Samuele Locatelli 13fbeed6b6 fix refresh post modifica 2023-06-15 14:52:35 +02:00
Samuele Locatelli f000d4c026 Inserito Auto Refresh on save 2023-06-14 19:46:26 +02:00
Samuele Locatelli 37c6a50a59 Update gestione single instance hw x gestione ricalcolo variazioni 2023-06-14 19:26:16 +02:00
Samuele Locatelli 7e6d7c6f63 Minor fix display menu 2023-06-14 15:18:23 +02:00
Samuele Locatelli da6df5746d Fix btn opzioni utente 2023-06-14 14:29:50 +02:00
Samuele Locatelli 17316d6a91 refresh versione 2023-06-14 09:58:43 +02:00
Samuele Locatelli 8adf4583ea Update comportamento modifica modale della porta 2023-06-14 09:58:38 +02:00
Samuele Locatelli 82c118c4c0 update note modifica codice 2023-06-14 09:58:21 +02:00
zaccaria.majid 0f00d256a4 Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/special/webdoorcreator into develop 2023-06-13 17:40:36 +02:00
zaccaria.majid ae43e93437 gestione template 2023-06-13 17:39:19 +02:00
Samuele Locatelli 9c309b08d6 OrdersHomePage:
- Inserita gestione check qty >=0 x doors
2023-06-13 17:24:59 +02:00
zaccaria.majid 5961177503 creati metodi per bulk delete 2023-06-13 12:34:32 +02:00
zaccaria.majid 01ec5f1f79 OK cancellazione da DB 2023-06-13 12:25:18 +02:00
zaccaria.majid 6d80b8e365 fix cancellazione da redis porta (All) 2023-06-13 12:16:37 +02:00
zaccaria.majid 9522ddc08f ancora fix chiavi redis 2023-06-13 12:08:15 +02:00
zaccaria.majid c468d9d91f fix redis pattern 2023-06-13 12:05:11 +02:00
zaccaria.majid 52acadda42 aggiunta eliminazione da cache 2023-06-13 11:56:37 +02:00
zaccaria.majid 4db5acc56f aggiunto metodo per ricerca porte con campo isLogicDel a true 2023-06-13 10:54:01 +02:00
zaccaria.majid aa138a1730 ok cancellazione logica 2023-06-13 10:38:40 +02:00
zaccaria.majid b96e26185c Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/special/webdoorcreator into develop 2023-06-13 10:16:26 +02:00
zaccaria.majid a25db706fb nascosti template 2023-06-13 10:16:21 +02:00
Samuele Locatelli 68edf14b63 Merge branch 'develop' of https://gitlab.steamware.net/egalware/webdoorcreator into develop 2023-06-13 10:15:44 +02:00
Samuele Locatelli 1e11207bcb update gest coda REDIS 2023-06-13 10:15:42 +02:00
zaccaria.majid a013269d66 minor fix 2023-06-13 09:45:17 +02:00
zaccaria.majid 8f241b2ff6 Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/special/webdoorcreator into develop 2023-06-13 09:07:08 +02:00
zaccaria.majid 10b26de373 ok gestione add new order e currUserComp 2023-06-13 09:07:03 +02:00
Samuele Locatelli 17f1bccdcd hide dettagli in editing 2023-06-13 08:29:14 +02:00
Samuele Locatelli e8485980c7 Aggiunta conferma utente + componente pwd 2023-06-13 08:27:57 +02:00
Samuele Locatelli 009dd7b93b Fix display full width home 2023-06-12 18:53:59 +02:00
Samuele Locatelli 92aeac389d Fix img pagh DCOlogo --> DCALogo 2023-06-12 18:49:41 +02:00
Samuele Locatelli 58aa71dec7 Merge tag 'UpdateProdDemo-202230612-17' into develop
Fix home reload link
2023-06-12 18:43:08 +02:00
Samuele Locatelli 3b523cd439 Merge branch 'release/UpdateProdDemo-202230612-17' 2023-06-12 18:42:55 +02:00
Samuele Locatelli 3dd39917d5 Fix home reload x img 2023-06-12 18:42:37 +02:00
Samuele Locatelli edc3e68694 Aggiunta conf production x API 2023-06-12 17:46:41 +02:00
Samuele Locatelli acd41f59df Merge tag 'UpdateProdDemo-202230612-16' into develop
Fix display user code (QR, clipboard)
2023-06-12 17:29:34 +02:00
Samuele Locatelli fed099d0e1 Merge branch 'release/UpdateProdDemo-202230612-16' 2023-06-12 17:29:13 +02:00
Samuele Locatelli 7e7030922d Update x show/hide js x user details 2023-06-12 17:28:13 +02:00
Emmanuele Sassi cd32764c1e - resi configurabili ip e url per chiamate rest 2023-06-12 16:38:22 +02:00
Samuele Locatelli 29e2b138fb Merge tag 'UpdateProdDemo-202230612-15' into develop
update prod demo on IIS04
2023-06-12 15:48:14 +02:00
Samuele Locatelli 3d0b97b019 Merge branch 'release/UpdateProdDemo-202230612-15' 2023-06-12 15:48:00 +02:00
zaccaria.majid 2ca7a79101 gestione creazione cartelle in caso di salvataggio 2023-06-09 16:03:49 +02:00
zaccaria.majid dc80de7238 aggiunto metodo bulk save 2023-06-09 13:06:45 +02:00
zaccaria.majid 9a167b83bd inizio spacchettamento funzione di diff 2023-06-09 12:57:52 +02:00
Samuele Locatelli 5b190bfaa8 fix parziale direzione lavori 2023-06-09 11:47:57 +02:00
zaccaria.majid f4ef5b0781 ok gestione delete e insert nuovi record template 2023-06-09 10:27:43 +02:00
zaccaria.majid 312d350576 copia dei file da cartella nuova in caso di cartella vecchia vuota 2023-06-09 09:48:37 +02:00
Samuele Locatelli f4c6cc7322 Update x disambiguare var iterazione foreach in WDCService 2023-06-08 18:05:10 +02:00
zaccaria.majid d6055b640e ancora gestione tpl 2023-06-08 17:49:37 +02:00
zaccaria.majid e8d9f89e11 prima bozza import file con nuova gestione (buono) 2023-06-08 16:33:30 +02:00
zaccaria.majid d62538a395 refresh 2023-06-07 16:51:50 +02:00
zaccaria.majid 81bd020ceb aggiunto metodo di ricerca dooroptype per basepath 2023-06-07 16:51:41 +02:00
zaccaria.majid 8b66602575 fix scansione cartella B 2023-06-07 16:51:05 +02:00
zaccaria.majid 0350ac3b9f modificati modelli dati 2023-06-07 16:50:13 +02:00
zaccaria.majid cce404789c inizio gestione nuovi template 2023-06-07 12:54:45 +02:00
zaccaria.majid 000cb17acd inizio gestione nuovi template 2023-06-07 12:54:41 +02:00
zaccaria.majid 07725e03a3 Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/special/webdoorcreator into develop 2023-06-07 12:15:36 +02:00
zaccaria.majid 950ffdfefb continuo gestione hwMan 2023-06-07 12:15:30 +02:00
Samuele Locatelli 21fc771292 Merge branch 'develop' of https://gitlab.steamware.net/egalware/webdoorcreator into develop 2023-06-07 12:09:40 +02:00
Samuele Locatelli 1e9f2e70a0 commit toDo 2023-06-07 12:09:36 +02:00
zaccaria.majid 59029ee106 refresh nomi 2023-06-07 10:35:34 +02:00
zaccaria.majid a26ab41fab modifica modello dati dooroptype aggiunte colonne:
-FileMD5
-FileDim
-LastMod
2023-06-07 10:35:17 +02:00
zaccaria.majid da423544ed ok esclusione hw non presenti nel file di config (CompoDDFOrder) 2023-06-07 09:21:56 +02:00
zaccaria.majid c517d130a2 fix grafico pagina voc lemmas 2023-06-06 17:48:35 +02:00
zaccaria.majid a56818a2c8 Continuo gestione vocabolari 2023-06-06 17:12:26 +02:00
zaccaria.majid ac115ac7ee ok gestione nuova dooroptypes 2023-06-06 11:56:56 +02:00
zaccaria.majid 43eba22eb3 Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/special/webdoorcreator into develop 2023-06-06 11:19:22 +02:00
zaccaria.majid 5cac7224c6 inizio gestione hw 2023-06-06 11:16:42 +02:00
Emmanuele Sassi 6a03d1e107 Merge remote-tracking branch 'origin/develop' into ProcPipeComm 2023-06-06 10:53:43 +02:00
Emmanuele Sassi 3e51ab18d2 WebDoorCreator.CamSrv 2.5f1 :
- aggiunto numero di processi da avviare in ini
- aggiunta possibilita' di partenza processi all'avvio in ini
- aggiunto timer per reset della lista dei process
- gestita chiusura dell'ambiente egt
2023-06-06 10:53:23 +02:00
Samuele Locatelli 054230143f Refresh dati 2023-06-06 10:26:40 +02:00
Samuele Locatelli 83fd131287 Merge branch 'develop' of https://gitlab.steamware.net/egalware/webdoorcreator into develop 2023-06-06 10:18:00 +02:00
Samuele Locatelli 432edd8a26 Fix migrazione... 2023-06-06 10:17:16 +02:00
Samuele Locatelli a8e4709199 Inizio modifica con migration 2023-06-06 10:12:27 +02:00
zaccaria.majid 2608df99b5 fix insert dooroptype (aggiunta testata) 2023-06-06 09:02:40 +02:00
zaccaria.majid cc9ecfe515 ok aggiunta oggetti a tabella doorOpType 2023-06-06 08:50:32 +02:00
Samuele Locatelli 11a7b0ae61 Fix doppio translate... 2023-06-05 16:40:15 +02:00
Samuele Locatelli a32b271f55 Merge branch 'develop' of https://gitlab.steamware.net/egalware/webdoorcreator into develop 2023-06-05 16:39:15 +02:00
Samuele Locatelli fd638feb11 bozza translate x OrdersHomePage 2023-06-05 16:38:17 +02:00
zaccaria.majid 9ec5585e6b Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/special/webdoorcreator into develop 2023-06-05 16:21:40 +02:00
zaccaria.majid e4f2623a8e ancora layer traduzione 2023-06-05 16:20:41 +02:00
Samuele Locatelli afc1ff662c Fix migration + fix preparazione import DoorOpType 2023-06-05 16:10:42 +02:00
Samuele Locatelli 9428cbe9d3 Merge branch 'develop' of https://gitlab.steamware.net/egalware/webdoorcreator into develop 2023-06-05 11:01:27 +02:00
Samuele Locatelli 4cb28d6096 Update x controller calcolo costi 2023-06-05 11:01:16 +02:00
zaccaria.majid 0bfb7011c3 ok prima bozza traduzione 2023-06-05 10:24:53 +02:00
zaccaria.majid 3c797f50a9 Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/special/webdoorcreator into develop 2023-06-05 09:07:11 +02:00
zaccaria.majid a19ec9810c fix vista orderstatus (sempre problema con typeId) 2023-06-05 09:07:06 +02:00
zaccaria.majid 7a9d7d7076 fix nome type id 2023-06-05 09:06:24 +02:00
Samuele Locatelli 68d4e3e64b Merge branch 'develop' of https://gitlab.steamware.net/egalware/webdoorcreator into develop 2023-06-05 08:46:56 +02:00
Samuele Locatelli fdde929b65 company: mostrta solo x users DCA 2023-06-05 08:46:52 +02:00
zaccaria.majid 15b6ea7178 ancora delete dbmodel doortype 2023-06-05 08:37:27 +02:00
zaccaria.majid cdb892eb08 delete dbmodel doortype 2023-06-05 08:37:01 +02:00
zaccaria.majid 153e93010a fix bottone index solo se loggato 2023-06-05 08:31:30 +02:00
Samuele Locatelli 79081639b0 Fix migration + viemodel data 2023-06-05 08:20:46 +02:00
Samuele Locatelli af682e0270 Update pagina ordini 2023-06-01 19:17:37 +02:00
Samuele Locatelli a06dab15f2 Update punti aperti... 2023-06-01 19:17:32 +02:00
Samuele Locatelli 245d408176 Fix all status filter 2023-06-01 18:46:34 +02:00
Samuele Locatelli 588a31cb00 Fix filtro company in testata 2023-06-01 18:44:04 +02:00
Samuele Locatelli 811c121441 Fix pager a 12 porte, fix detail 2023-06-01 17:43:47 +02:00
Samuele Locatelli 83412394c3 Merge branch 'develop' of https://gitlab.steamware.net/egalware/webdoorcreator into develop 2023-06-01 17:03:03 +02:00
Samuele Locatelli 72b762b4b5 Update edit modale porta 2023-06-01 17:03:01 +02:00
zaccaria.majid b66ad4c3c0 Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/special/webdoorcreator into develop 2023-06-01 16:59:26 +02:00
zaccaria.majid 00a55e6eb3 Ok modal template 2023-06-01 16:58:55 +02:00
Samuele Locatelli aac9ef28c6 DoorModal (and template):
- Fix clone con extCode + description
2023-06-01 16:36:30 +02:00
zaccaria.majid a4175a5681 fix aggiunta da template in ord 2023-06-01 16:00:04 +02:00
zaccaria.majid 50323a4939 Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/special/webdoorcreator into develop 2023-06-01 14:34:45 +02:00
zaccaria.majid 5cd7e5a144 fix new door 2023-06-01 14:34:40 +02:00
Samuele Locatelli e8830f3993 Merge branch 'develop' of https://gitlab.steamware.net/egalware/webdoorcreator into develop 2023-06-01 13:06:01 +02:00
Samuele Locatelli 77ca902e88 Update modal x editing Door (da completare) 2023-06-01 13:05:58 +02:00
zaccaria.majid f022e6d930 Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/special/webdoorcreator into develop 2023-06-01 12:51:40 +02:00
zaccaria.majid 67fc5cc549 inizio gestione nuova clone 2023-06-01 12:50:52 +02:00
Samuele Locatelli 253f3aefac fix naming x refresh 2023-06-01 12:35:40 +02:00
Samuele Locatelli f3c76418eb Fix duplicazione + gen SVG 2023-06-01 12:34:58 +02:00
Samuele Locatelli 8fe0517264 Merge branch 'develop' of https://gitlab.steamware.net/egalware/webdoorcreator into develop 2023-06-01 12:26:54 +02:00
Samuele Locatelli 850241c70d Fix duplicate door 2023-06-01 12:26:51 +02:00
zaccaria.majid 75e70191ff Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/special/webdoorcreator into develop 2023-06-01 12:22:23 +02:00
zaccaria.majid 0f9a08a033 aggiunta lista tpl custo 2023-06-01 12:22:19 +02:00
Samuele Locatelli f84e913839 Merge branch 'develop' of https://gitlab.steamware.net/egalware/webdoorcreator into develop 2023-06-01 12:16:52 +02:00
Samuele Locatelli 40cf14c77b Ok salvataggio su template 2023-06-01 12:16:00 +02:00
zaccaria.majid 1d844597b6 typo 2023-06-01 11:59:54 +02:00
zaccaria.majid feb41fe576 modal show 2023-06-01 11:53:50 +02:00
Samuele Locatelli 39d8bf85b9 Abbozzato invio template 2023-06-01 11:50:30 +02:00
Samuele Locatelli 39601df9e5 update contants x statusId dei template orders 2023-06-01 11:34:07 +02:00
zaccaria.majid 96616dcc3e Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/special/webdoorcreator into develop 2023-06-01 09:53:39 +02:00
zaccaria.majid 0003c52f28 inizio modale template 2023-06-01 09:53:14 +02:00
Samuele Locatelli 24f7b5384c refresh constants 2023-06-01 09:51:31 +02:00
Samuele Locatelli e46947f764 Aggiunta metodi x clone (fake) + gestione ord by comp/status (real) 2023-06-01 09:51:20 +02:00
Samuele Locatelli 97e21edf80 Aggiunta preliminare x template 2023-06-01 09:13:26 +02:00
zaccaria.majid e3dcbe2b61 ok comportamento close su fade offcanvas 2023-06-01 08:51:08 +02:00
zaccaria.majid 2f6f728be4 aggiunta vista company attuale 2023-06-01 08:41:59 +02:00
Samuele Locatelli 766db47525 Fix close ord 2023-06-01 08:19:08 +02:00
Samuele Locatelli 7511b16c6b Completato clone con SVG generati 2023-06-01 08:15:18 +02:00
Samuele Locatelli 000eca8057 ok clona (sbaglaito aprametro richiamato) 2023-06-01 08:00:51 +02:00
Samuele Locatelli dd30d2cbf6 OrdersHomePage:
- Ok nuova gestione modale
- ok crea nuovo
- ok btn add se selezionata company
... test clona NON ancora OK
2023-05-31 19:28:56 +02:00
Samuele Locatelli 83dd3bb553 Aggiunta stored varie + OrderCloning 2023-05-31 18:11:40 +02:00
Samuele Locatelli 303632843c Fix reload orderpage 2023-05-31 16:19:37 +02:00
Samuele Locatelli c047f78120 Merge branch 'develop' of https://gitlab.steamware.net/egalware/webdoorcreator into develop 2023-05-31 15:33:24 +02:00
Samuele Locatelli 24024ccfb3 Code refactor 2023-05-31 15:33:22 +02:00
zaccaria.majid 6f82912ac5 prova local storage 2023-05-31 15:31:37 +02:00
Samuele Locatelli d43338f467 Fix gestione elenco company x utente 2023-05-31 14:37:41 +02:00
Samuele Locatelli a5ba37a2f9 Merge branch 'develop' of https://gitlab.steamware.net/egalware/webdoorcreator into develop 2023-05-31 12:09:48 +02:00
Samuele Locatelli 8dc03b168b Update x UserManDataService 2023-05-31 12:09:12 +02:00
zaccaria.majid 1eb92662ae ok custom off canvas 2023-05-31 12:04:50 +02:00
Samuele Locatelli 7f8d21976f Update roles! 2023-05-31 08:36:56 +02:00
Samuele Locatelli d377f1a925 Update componente display QR + fix filtraggi vari 2023-05-30 21:42:32 +02:00
Samuele Locatelli b5fb438d5a LoginRequired comp aggiunto 2023-05-30 20:17:41 +02:00
Samuele Locatelli 6e0579e315 inizio fix navmenu
- ricostruzione servizi lettura dati utente x login
2023-05-30 20:07:01 +02:00
Samuele Locatelli 067ebdcc84 Fix Roles x UserAdmin 2023-05-30 19:54:19 +02:00
Samuele Locatelli dbbe25027a Fix problema modale che sovrascrive 2023-05-30 18:33:52 +02:00
Samuele Locatelli 16468e9daa Merge branch 'develop' of https://gitlab.steamware.net/egalware/webdoorcreator into develop 2023-05-30 18:01:13 +02:00
Samuele Locatelli 603966b444 Fix update area step 1 2023-05-30 18:00:43 +02:00
Samuele Locatelli 1f51e15bb7 Update visualizzazione current step 2023-05-30 17:28:56 +02:00
Samuele Locatelli f12766047a ancora udpate post cambio par base 2023-05-30 17:09:46 +02:00
Samuele Locatelli 313871c18d Ok update in "uscita" DoorOp base 2023-05-30 17:09:32 +02:00
zaccaria.majid 4580483976 inizio fix gestione utenti x adminUser 2023-05-30 16:40:21 +02:00
Samuele Locatelli 4aecdf9074 fix radius bordi 4/5 2023-05-30 15:54:05 +02:00
Samuele Locatelli c0c1b180b3 Fix cancellazione logica 2023-05-30 11:47:28 +02:00
Samuele Locatelli 97d2e3f82f Fix componente razor x copy-clipboard 2023-05-30 10:15:04 +02:00
Samuele Locatelli 9ae5d21216 Fix fino a QRCode display 2023-05-30 09:45:51 +02:00
Samuele Locatelli cda829a2e2 Ancora typo fix 2023-05-30 09:43:10 +02:00
Samuele Locatelli 970fbd4531 Typo fix RumTime --> RunTime 2023-05-30 09:43:05 +02:00
Samuele Locatelli 2a85f0eca3 Merge branch 'develop' of https://gitlab.steamware.net/egalware/webdoorcreator into develop 2023-05-30 09:38:09 +02:00
Samuele Locatelli 3cbc717749 Update appunti claimConverter 2023-05-30 09:37:32 +02:00
zaccaria.majid c8ce515ba3 Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/special/webdoorcreator into develop 2023-05-30 09:37:23 +02:00
zaccaria.majid 2c2b619854 prova copy ot clipboard 2023-05-30 09:37:00 +02:00
Emmanuele Sassi 9218ac7d5b WebDoorCreator.CamSrv 2.5e1 :
- aggiornata EgtUILib
- corretto colore di sfondo start e estop
2023-05-30 08:51:02 +02:00
Emmanuele Sassi c699d8e2e5 Merge remote-tracking branch 'origin/develop' into ProcPipeComm 2023-05-30 08:35:14 +02:00
Emmanuele Sassi 6da0285af3 - aggiunta EgtUILib per log
- aggiunta gestione istanze
- aggiunto controllo licenza su applicazione
- aggiunto bottone per killare tutti i process
2023-05-30 08:34:54 +02:00
Samuele Locatelli e04e8d939e Merge branch 'develop' of https://gitlab.steamware.net/egalware/webdoorcreator into develop 2023-05-29 16:21:09 +02:00
Samuele Locatelli 2ab02fabdd COmpletato modifica x dati utente in cache redis 2023-05-29 16:20:30 +02:00
zaccaria.majid aeb9da08cb Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/special/webdoorcreator into develop 2023-05-29 12:42:07 +02:00
zaccaria.majid 1d5b1084e4 refresh versioni 2023-05-29 12:40:59 +02:00
zaccaria.majid aadb20a45b spostata gestione voc 2023-05-29 12:40:49 +02:00
zaccaria.majid 902b12267c fix grafico 2023-05-29 12:40:27 +02:00
zaccaria.majid acff028e5f aggiunto componente per gestione files (Bozza x file dei messaggi) 2023-05-29 12:40:08 +02:00
zaccaria.majid c9ee7a02fc separati metodi per scrittura definitiva su db e preparazione 2023-05-29 12:39:39 +02:00
Samuele Locatelli 13b83369ae Fix search panel users 2023-05-29 10:28:39 +02:00
Samuele Locatelli 21f330d1f7 Aggiunta gestione search 2023-05-29 10:26:28 +02:00
Emmanuele Sassi 0b5d4f4909 Merge remote-tracking branch 'origin/develop' into ProcPipeComm 2023-05-29 10:24:12 +02:00
Emmanuele Sassi b26f18575f - gestite pipe
- gestito riavvio processo
2023-05-29 10:23:48 +02:00
Samuele Locatelli 301b0a04e2 Merge branch 'develop' of https://gitlab.steamware.net/egalware/webdoorcreator into develop 2023-05-29 09:42:54 +02:00
Samuele Locatelli b899a16bc0 Fix filtro company! 2023-05-29 09:42:06 +02:00
zaccaria.majid 9b80e7b25c utilizzo metodo nuovo claims x nav menu 2023-05-29 09:15:49 +02:00
Samuele Locatelli c10327cdb0 refresh company id selector in edit 2023-05-27 10:58:00 +02:00
Samuele Locatelli 5029d6ef21 OK edit ruoli con refresh (2 check redis cache...) 2023-05-27 10:52:42 +02:00
Samuele Locatelli 89a810ee77 continuo merge comportamento UserAdmin da GWMS 2023-05-27 10:35:17 +02:00
Samuele Locatelli 6051750c95 update x momentane dismissione cache redis ricerca UserData 2023-05-27 10:08:06 +02:00
Samuele Locatelli 0b7b86b655 Merge branch 'feature/UserAdminFromGWMS' into develop 2023-05-26 19:06:36 +02:00
Samuele Locatelli 387bff34e2 Ancora spostamento metodi in classe gest user (cache redis) 2023-05-26 19:05:47 +02:00
Samuele Locatelli aff6a89b73 Inizio sistemazione cache redis x utenti 2023-05-26 18:01:35 +02:00
Samuele Locatelli 335557eb7c UserAdmin :
- Completata inclusione pagina da GWMS
- da completare pulizia parte NavManagerHorizontal
2023-05-26 17:00:41 +02:00
Samuele Locatelli f0405cfbe3 Merge branch 'feature/MoveReportRef' into develop 2023-05-26 12:08:55 +02:00
1246 changed files with 122170 additions and 4512 deletions
+69 -3
View File
@@ -4,10 +4,31 @@ Di seguito l'elenco dei todo da completare
## Framework
Traduzione OVUNQUE x ogni termine/etichetta/button..
Importante:
- [ ] Traduzione OVUNQUE x ogni termine/etichetta/button..
## Modello dati
Da sistemare
- [x] Eliminazione dell'oggetto DoorType (navigazione, tab db)
- [x] creare nuova migration + update DB x fix TypeDoor
- [x] Verificare che le porte duplicate (da template o da stesso ordine) riportino in TypeId il cod porta originale e che le altre abbiano 1
- [x] verificare eventualmente cambio nome campo TypeId --> DoorIdParent
## Pagine
### UIX generale
Verifiche generali
- [ ] pulsanti update(save)/cancel
- [ ] omogenei (colore, icona, x forma cerchio/quadrato vediamo...)
- [ ] valutazione omogeneità forma (cerchio/quadrato... normalizzare? al contrario differenziare?)
- [ ] icone di update che siano omogenee
- [ ] pulsanti operativi siano omogenei
- [ ] selettori a tendina da omogeneizzare
### HOME page
... non saprei, forse link a
@@ -26,6 +47,14 @@ Per completare
- search generico
- stato ordine
- [x] ordinamento
- [ ] aggiungere data promessa consegna: dato sul db, valore default (+30gg?), gestione filtro...
- [x] aggiungere calcolo (FAKE) dei prezzi
- [x] aggiungere company x ordini (x viste DCA almeno)
- [x] gestione modifica descrizione/codice ordini (da p\rte del cliente finale)
- [x] aggiunta gestione DCA x conferma prezzi e tempistiche
- [x] aggiunta gestione DCA x approvazione ordini
- [ ] verifica HW con Filippo/Emmanuele da info ABH/Kit
- [ ] verificare significato della dicitura "Model Number": cosa indica esattamente? è corretta sul db? è calcolata correttamente da interfaccia?
### DCA Order Mans
@@ -39,6 +68,7 @@ Per completare:
- [x] sistemare con paginatore max 3 righe x 4 porte
- [x] fix button verde add-new
- [x] ombreggiatura blocco
- [x] gestione calcolo prezzi (fake, random)
### DoorDefinition BaseParams
- [x] conteggio num modifiche da salvare
@@ -58,15 +88,51 @@ Per completare:
Sistemare:
- [x] da implementare davvero lettura pdf (da cartella pdf di esempi)
- [x] fix cancel/save: globale x Hardware oppure x ognuno con icona?
- [ ] verificare perché NON si aggiorna al salvataggio pagina dei 18 hw
- [x] verificare perché NON si aggiorna al salvataggio pagina dei 18 hw
- [x] mancano il totale componenti x ogni hw attivato
- [x] aggiungere icone/immagini x gli HW da inserire nelle porte
### Import componenti DOOR
Procedura per import componenti, sempre GLOBALE (= TUTTI)
- [x] definizione cartelle di base:
- [x] (A) R:\WebDoor\CurComp x componenti ATTUALI/cottenti/approvati
- [x] (B) R:\WebDoor\NewComp x componenti DA valutare x import
- [x] scansione della cartella (B)
- [x] ciclo x ogni file della cartella B
- [x] rilevo path (assoluto e relativo = togliendo parte (B))
- [x] calcolo MD5
- [x] rilevo lenght
- [x] rilevo last mod
- [ ] cerco sul DB record x il PATH (RELATIVO) in oggetto (opzionalmente unique sul db)
- [ ] salvo datetime = adesso
- [ ] in base alla verifica precedente mi tengo set in memoria dalla lista del DB con
- [ ] NON trovo record --> registro nuovo record, con stato = new (=1)
- [ ] trovo record
- [ ] SE cambia MD5/lenght/(last mod?) --> registro stato MOD (=2) + lastCheck = adesso
- [ ] se NON cambia --> registro lastCheck = adesso + stato CONFIRM ( =0)
- [ ] verifico TUTTI i record del DB, e quelli con lastCheck < adesso --> segno come ELIMINATI (=3)
- [ ] step di check puntuale: TUTTI quelli con stato > 0 sono mostrati x azione (1 check x ogni riga, con seleziona tutti/nessuno)
- [ ] l'utente deve poter VEDERE la differenza tra i file (modificati) di (A) e (B) (con diff tramite modale, ...)
- [ ] l'utente checca 0/+ righe e clicca su CONFERMA: si cicla x TUTTE le righe checked x aggiornarle sul DB
- [ ] le righe NUOVE confermate --> sono registrate (con valid from...), stato CONFIRM ( =0), viene copiato file/cartelle da (B) ad (A)
- [ ] le righe modificate --> si registra modifica, stato CONFIRM ( =0), viene sovrascritto/sostituito file/cartelle da (B) ad (A)
- [ ] le righe eliminate --> si imposta cancellazione logica (validUntil), stato DELETED ( =-1), viene sovrascritto/sostituito file/cartelle da (B) ad (A)
- [ ] le righe NON checked, ma NON aggiorno sul DB:
- [ ] se erano nuove (=1) --> elimino dal DB (e NON copio folder)
- [ ] se erano modificate (=2) --> riporto a stato precedente (0/-1) (e NON copio)
- [ ] se erano eliminate (=3) --> riporto a 0 (e NON faccio nulla)
#### Report
- [x] Va inserita una lista dei componenti + elenco quote.
- [ ] Va pensato esportabile in pdf, comprensivo di "check pdf fatto da tizio alle ..."
- [x] Esportabile in pdf, comprensivo di "check pdf fatto da tizio alle ..."
## Componenti
- [x] costruire libreria componenti (ad esempio waiter/loader) da siti di esempio componenti in EgwCoreLib.Razor --> ProgressBar e nuovi Loader
### Top
Binary file not shown.
+2 -2
View File
@@ -307,6 +307,6 @@ In particular we expect to have some data auto-calculated (ex time from CAM), wh
| Date | Edit | Version | Note |
|------------|----------------|:-------:|-----------------:|
| 2022.11.09 | S.E. Locatelli | 0.2 | Draft completion |
| 2022.11.03 | S.E. Locatelli | 0.1 | Initial draft |
| 2023.03.21 | Z. Majid | 0.4 | Grammar Fixes |
| 2022.11.09 | S.E. Locatelli | 0.2 | Draft completion |
| 2023.03.21 | Z. Majid | 0.4 | Grammar Fixes |
Binary file not shown.
+58
View File
@@ -0,0 +1,58 @@
# Appunti fix vari
La sistemazione è gestita direttametne con commit git...
## Traduzione
Ci sono ancora lemmi di interfaccia gestiti come numerici, NON è lo standard definito:
- ok a lemmi "UI_"
- lemmi devono essere "self explaining"
- eventualmente nel naming il cosa/dove, accettabile **UI_BtnOk** o **UI_BtnKo**, ma anche **UI_OrderPage_title**
... da sistemare GLOBALMENTE (= Zac...) x gli esistenti, mi occupo di creare correttamente solo i nuovi...
## NavMenuHorizontal
Ci sono alcne cose che non funzionano:
- i pulsanti si disallineano (icona/testo) con size schermo sotto fhd (va gestito almeno da 1376 in orizzontale...)
![Buttons KO](images/NoteFix_01.png "Buttons KO")
- typo: flex warp indica che la pagina deve caricarsi a velocità warp (superluminare) come in star trek? MAGARI!!!!
```csharp
<AuthorizeView Roles="SuperAdmin" Context="MenuHide">
<Authorized>
<div class="nav-item px-3 d-flex flex-warp align-items-center">
<NavLink class="nav-link" href="TemplateMan">
<span class="fa-solid fa-paint-roller pe-2" aria-hidden="true"></span> Template Management
</NavLink>
</div>
</Authorized>
</AuthorizeView>
```
- il navbar toggler che non funziona...
- opzioni utente con username (email) x esteso: troppo grande, ridotto
## Modale Door
La pagina modale della porta permetteva sia la modifica imperativa delle quantità che la modifica del resto gestita tramite controllo CurrDoor / CurrDoorClone per approvare/annullare intervento complessivo
Questo portava ad una situazione di errore in caso di modifica (es descrizioen door) + modifica quantità
Eliminato metodo esplicito modifica quantità (da service + DB), gestito come modifica "locale" del dato qta (che quindi eredita il controllo qty >=0)
## Modale Ordini
- Aggiunta modale x editing ordine cliente
- Aggiunta modale x gestione editing DCA (data consegna...)
## HwSingleInstance
La gestione del calcolo "variato" non funziona bene/sempre
- errori in fase di calcolo
- usare funzione come check è sub ottimale
- i valori creati x clone NON sono veri cloni (di fatto punta ad obj originali)
--> riscritta logica vaori originali/correnti ed editing...
BIN
View File
Binary file not shown.
+3
View File
@@ -0,0 +1,3 @@
Per sistemare il manuale da ilias copiare il file delos.css qui allegato in
C:\Users\samuele.steamw\source\WebDoorCreator\WebDoorCreator.UI\wwwroot\help\templates\default
+20127
View File
File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.
+1 -1
View File
@@ -1,6 +1,6 @@
<body>
<i>WebDoorCreator - Egalware</i>
<h4>Version: 0.9.2305.2612</h4>
<h4>Version: 0.9.2401.0415</h4>
<br /> Release note:
<ul>
<li>
+1 -1
View File
@@ -1 +1 @@
0.9.2305.2612
0.9.2401.0415
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<item>
<version>0.9.2305.2612</version>
<version>0.9.2401.0415</version>
<url>http://nexus.steamware.net/repository/SWS/WDC/stable/WDC.UI.zip</url>
<changelog>http://nexus.steamware.net/repository/SWS/WDC/stable/ChangeLog.html</changelog>
<mandatory>false</mandatory>
@@ -1,8 +1,14 @@
using Microsoft.AspNetCore.Mvc;
using NLog;
using SkiaSharp;
using Svg;
using Svg.Skia;
using System.Drawing;
using WebDoorCreator.Data.Services;
#if false
using SkiaSharp;
using Svg.Skia;
#endif
namespace WebDoorCreator.API.Controllers
{
@@ -31,6 +37,7 @@ namespace WebDoorCreator.API.Controllers
return "OK";
}
[HttpGet("GetImage.png")]
public async Task<IActionResult> GetImagePng(int DoorId)
{
@@ -38,10 +45,27 @@ namespace WebDoorCreator.API.Controllers
string svgContent = await QDataServ.DoorGetLastSvg(DoorId);
if (!string.IsNullOrEmpty(svgContent))
{
var mySvg = SvgDocument.FromSvg<SvgDocument>(svgContent);
//result = System.Text.Encoding.UTF8.GetBytes(svgContent);
var myBmp = mySvg.Draw();
result = ImageToByte2(myBmp);
using (var svg = new SKSvg())
{
if (svg.FromSvg(svgContent) is { })
{
using (var stream = new MemoryStream())
{
svg.Picture?.ToImage(stream, SKColors.Empty, SKEncodedImageFormat.Png, 100, 1f, 1f, SKColorType.Rgba8888, SKAlphaType.Unpremul, SKColorSpace.CreateSrgb());
result = stream.ToArray();
}
}
}
#if false
var mySvg = SvgDocument.FromSvg<SvgDocument>(svgContent);
//result = System.Text.Encoding.UTF8.GetBytes(svgContent);
var myBmp = mySvg.Draw();
using (var stream = new MemoryStream())
{
img.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
result= stream.ToArray();
}
#endif
}
return File(result, "image/png");
}
@@ -72,15 +96,8 @@ namespace WebDoorCreator.API.Controllers
#region Private Methods
private byte[] ImageToByte2(Image img)
{
using (var stream = new MemoryStream())
{
img.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
return stream.ToArray();
}
}
#endregion Private Methods
}
}
@@ -28,7 +28,7 @@ namespace WebDoorCreator.API.Controllers
}
/// <summary>
/// GET: api/Order/GetCurrent
/// Recupera ordini degli ultimi 6 mesi dato cliente e stato
/// Recupera ordini dato id cliente + stato ordini (limitato a ultimi 6 mesi)
/// </summary>
/// <returns></returns>
[HttpGet("GetCurrent")]
@@ -36,7 +36,7 @@ namespace WebDoorCreator.API.Controllers
{
List<int> answ = new List<int>();
DateTime dtEnd = DateTime.Now;
DateTime dtStart = dtEnd.AddMonths(-1);
DateTime dtStart = dtEnd.AddMonths(-6);
var rawData = await WDCService.OrderStatusGetFilt(id, ordStatus, dtStart, dtEnd);
if (rawData != null)
{
@@ -49,8 +49,8 @@ namespace WebDoorCreator.API.Controllers
/// </summary>
/// <param name="OrderId"></param>
/// <returns></returns>
[HttpGet("OrderDetail")]
public async Task<OrderDetailsDTO> OrderDetail(int OrderId)
[HttpGet("GetDetail")]
public async Task<OrderDetailsDTO> GetDetail(int OrderId)
{
OrderDetailsDTO answ = new OrderDetailsDTO()
{
@@ -58,19 +58,84 @@ namespace WebDoorCreator.API.Controllers
};
// recupero info ordine
var rawOrder = await WDCService.OrderGetByKey(OrderId);
if (rawOrder != null)
if (rawOrder != null && rawOrder.CompanyNav != null)
{
answ.OrderDescript = rawOrder.OrderDescript;
answ.OrderExtCode = rawOrder.OrderExtCode;
// recupero info customer
// recupero info customer
CustomerDTO customer = new CustomerDTO()
{
Address = rawOrder.CompanyNav.Address,
City = rawOrder.CompanyNav.City,
CompanyExtCode = rawOrder.CompanyNav.CompanyExtCode,
CompanyId = rawOrder.CompanyNav.CompanyId,
CompanyName = rawOrder.CompanyNav.CompanyName,
State = rawOrder.CompanyNav.State,
VAT = rawOrder.CompanyNav.VAT,
ZipCode = rawOrder.CompanyNav.ZipCode
};
answ.CustomerInfo = customer;
// recuper elenco porte...
List<DoorCostingDTO> dcDTO = new List<DoorCostingDTO>();
var doorsList = await WDCService.DoorGetByOrderId(OrderId);
if (doorsList != null)
{
foreach (var door in doorsList)
{
// recupero i dato DoorOp
var doorOpList = await WDCService.DoorOpGetByDoorId(door.DoorId);
Dictionary<string, List<string>> currBOMList = new Dictionary<string, List<string>>();
// ciclo su tutte le DoorOp
foreach (var doorOp in doorOpList)
{
// cerco se ci sia già o meno nella BOM l'item corrente
if (currBOMList.ContainsKey(doorOp.ObjectId))
{
currBOMList[doorOp.ObjectId].Add(doorOp.JsoncActVal);
}
else
{
List<string> currOp = new List<string>();
currOp.Add(doorOp.JsoncActVal);
currBOMList.Add(doorOp.ObjectId, currOp);
}
}
// creo oggetto DTO finale della porta
var doorDto = new DoorCostingDTO()
{
DoorId = door.DoorId,
Quantity = door.Quantity,
EstimatedWorkTime = 0,
BOMList = currBOMList
};
dcDTO.Add(doorDto);
}
}
//answ. = rawOrder.OrderDescript;
answ.DoorsList = dcDTO;
}
// popolo con dati specifica...
return answ;
}
/// <summary>
/// Door price update for order's cost evaluation
/// </summary>
/// <param name="EvalResults">list of DoorPriceDTO with UnitPrices</param>
/// <returns></returns>
[HttpPost("DoorPriceUpdate")]
public async Task<string> DoorPriceUpdate(List<DoorPriceDTO> EvalResults)
{
string answ = "NA";
var updateSet = EvalResults
.Where(x => x.Valid)
.ToDictionary(x => x.DoorId, x => x.UnitCost);
bool fatto = await WDCService.DoorUpdateCosts(updateSet);
answ = fatto ? "OK" : "NO";
return answ;
}
private static IConfiguration _configuration = null!;
private static Logger Log = LogManager.GetCurrentClassLogger();
@@ -11,11 +11,12 @@ namespace WebDoorCreator.API.Controllers
{
#region Public Constructors
public QueueController(IConfiguration configuration, QueueDataService DataService)
public QueueController(IConfiguration configuration, QueueDataService DataService, WebDoorCreatorService _WDService)
{
Log.Info("Starting QueueController");
_configuration = configuration;
QDataServ = DataService;
WDService = _WDService;
Log.Info("Avviato QueueController");
}
@@ -89,6 +90,33 @@ namespace WebDoorCreator.API.Controllers
public async Task<string> ResetQueueProcessing()
{
string answ = "NA";
// fixme todo
/* --------------
* da riscrivere
* - server record x cancellazione logica delle porte OK
* - il record (boolean, toDelete...) indica azione richiesta OK
* - si prendono TUTTE le porte da DB con toDelete == true OK
* - si eliminano su REDIS dalle 4 code (req, processing, error, done) OK
* - check delle code processing, SE ci sono record rimasti li cerco sul DB
* - se NON ci sono sul db --> li elimino da processing
* - effettivo delete sul db di toDelete
*
* - proseguo come ora (sposto tra code processing --> request)
*/
var doors2Del = await WDService.DoorGet2Del();
if (doors2Del != null)
{
foreach (var item in doors2Del)
{
await WDService.RedisBulkDelByDoorId(item.DoorId);
await QDataServ.RedisBulkDelHashByKey(item.DoorId);
await WDService.DoorDelete(item);
}
}
bool fatto = await QDataServ.ResetQueueProcessing();
answ = fatto ? "OK" : "NO";
return answ;
@@ -156,6 +184,7 @@ namespace WebDoorCreator.API.Controllers
#region Private Properties
private QueueDataService QDataServ { get; set; } = null!;
private WebDoorCreatorService WDService { get; set; } = null!;
#endregion Private Properties
}
+4 -1
View File
@@ -16,8 +16,11 @@ var builder = WebApplication.CreateBuilder(args);
ConfigurationManager configuration = builder.Configuration;
// Redis
var connStringRedis = configuration.GetConnectionString("Redis");
if (string.IsNullOrEmpty(connStringRedis))
{
connStringRedis = "localhost:6379, DefaultDatabase=11, connectTimeout=5000, syncTimeout=5000, asyncTimeout=5000, abortConnect=false, ssl=false";
}
string redisSrvAddr = connStringRedis.Substring(0, connStringRedis.IndexOf(":"));
// avvio oggetto shared x redis...
var redisMultiplexer = ConnectionMultiplexer.Connect(connStringRedis);
@@ -1,23 +1,14 @@
{
"$schema": "https://json.schemastore.org/launchsettings.json",
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:33043",
"sslPort": 44387
}
},
{
"profiles": {
"WebDoorCreator.API": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"launchUrl": "swagger",
"applicationUrl": "https://localhost:7043;http://localhost:5240",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"dotnetRunMessages": true,
"applicationUrl": "https://localhost:7043;http://localhost:5240"
},
"IIS Express": {
"commandName": "IISExpress",
@@ -26,6 +17,25 @@
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"WSL": {
"commandName": "WSL2",
"launchBrowser": true,
"launchUrl": "https://localhost:7043/swagger",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"ASPNETCORE_URLS": "https://localhost:7043;http://localhost:5240"
},
"distributionName": ""
}
},
"$schema": "https://json.schemastore.org/launchsettings.json",
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:33043",
"sslPort": 44387
}
}
}
}
+8 -4
View File
@@ -4,6 +4,7 @@
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<UserSecretsId>36a4225d-c8d7-4b97-b6db-6ab2af37bfde</UserSecretsId>
</PropertyGroup>
<ItemGroup>
@@ -18,14 +19,17 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
<PackageReference Include="NLog" Version="5.1.2" />
<PackageReference Include="StackExchange.Redis" Version="2.6.96" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="NLog" Version="5.2.2" />
<PackageReference Include="SkiaSharp" Version="2.88.3" />
<PackageReference Include="SkiaSharp.NativeAssets.Linux.NoDependencies" Version="2.88.3" />
<PackageReference Include="StackExchange.Redis" Version="2.6.122" />
<PackageReference Include="StackExchange.Redis.Extensions.AspNetCore" Version="9.1.0" />
<PackageReference Include="StackExchange.Redis.Extensions.Core" Version="9.1.0" />
<PackageReference Include="StackExchange.Redis.Extensions.Newtonsoft" Version="9.1.0" />
<PackageReference Include="Svg" Version="3.4.4" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" />
<PackageReference Include="Svg.Skia" Version="1.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0" />
</ItemGroup>
<ItemGroup>
@@ -0,0 +1,12 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"ConnectionStrings": {
"Redis": "nkcredis.steamware.net:6379, DefaultDatabase=12, connectTimeout=5000, syncTimeout=5000, asyncTimeout=5000, abortConnect=false, ssl=false, password=BtN9Py1wtLfLRvmzWnOPJ7RytDM+CLiVsJ/16zduNTlV8IOPGNrtzJSXPUnImA5PqmUMhKaUqo9NdHIG",
"WDC.DB": "Server=SQL2016PROD;Database=DCA_WebDoorCreator; User ID=sa;Password=keyhammer16; integrated security=False; MultipleActiveResultSets=True; App=WebDoorCreator.UI;"
}
}
+1 -1
View File
@@ -27,7 +27,7 @@
"ProjCheck": "samuele.locatelli@egalware.com,mara.baroni@egalware.com",
"TimbCheck": "samuele.locatelli@egalware.com,mara.baroni@egalware.com"
},
"RumtimeOpt": {
"RuntimeOpt": {
"VetoRemoveProcessing": 5
}
}
+10
View File
@@ -10,17 +10,27 @@ EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{96266312-9739-4F12-A6C2-16C1CAFDDA6E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{96266312-9739-4F12-A6C2-16C1CAFDDA6E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{96266312-9739-4F12-A6C2-16C1CAFDDA6E}.Debug|x64.ActiveCfg = Debug|x64
{96266312-9739-4F12-A6C2-16C1CAFDDA6E}.Debug|x64.Build.0 = Debug|x64
{96266312-9739-4F12-A6C2-16C1CAFDDA6E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{96266312-9739-4F12-A6C2-16C1CAFDDA6E}.Release|Any CPU.Build.0 = Release|Any CPU
{96266312-9739-4F12-A6C2-16C1CAFDDA6E}.Release|x64.ActiveCfg = Release|x64
{96266312-9739-4F12-A6C2-16C1CAFDDA6E}.Release|x64.Build.0 = Release|x64
{4A07ADFC-CA24-4135-BA97-3B8E5D49BC09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4A07ADFC-CA24-4135-BA97-3B8E5D49BC09}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4A07ADFC-CA24-4135-BA97-3B8E5D49BC09}.Debug|x64.ActiveCfg = Debug|Any CPU
{4A07ADFC-CA24-4135-BA97-3B8E5D49BC09}.Debug|x64.Build.0 = Debug|Any CPU
{4A07ADFC-CA24-4135-BA97-3B8E5D49BC09}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4A07ADFC-CA24-4135-BA97-3B8E5D49BC09}.Release|Any CPU.Build.0 = Release|Any CPU
{4A07ADFC-CA24-4135-BA97-3B8E5D49BC09}.Release|x64.ActiveCfg = Release|Any CPU
{4A07ADFC-CA24-4135-BA97-3B8E5D49BC09}.Release|x64.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
+45
View File
@@ -0,0 +1,45 @@
'----------------------------------------------------------------------------
' EgalTech 2015-2015
'----------------------------------------------------------------------------
' File : ConstIni.vb Data : 12.02.15 Versione : 1.6b3
' Contenuto : Modulo costanti sezione e chiavi per file Ini.
'
'
'
' Modifiche : 12.02.15 DS Creazione modulo.
'
'
'----------------------------------------------------------------------------
Public Module ConstIni
' massimo numero di istanze del programma ammesse
Public Const MAX_INST As Integer = 32
' File con dati di licenza
Public Const LIC_FILE_NAME As String = "WebDoorCreator.CamSrv.lic"
Public Const S_LICENCE As String = "Licence"
Public Const K_LOCKID As String = "LockId"
Public Const K_KEY As String = "Key"
' File di log generale
Public Const GENLOG_FILE_NAME As String = "WebDoorCreator.CamSrv#.txt"
Public Const INI_FILE_NAME As String = "WebDoorCreator.CamSrv.ini"
Public Const S_GENERAL As String = "General"
Public Const K_DEBUG As String = "Debug"
Public Const K_LICENCE As String = "Licence"
Public Const K_NETKEY As String = "NetKey"
Public Const K_USERLEVEL As String = "UserLevel"
Public Const K_MAXINST As String = "MaxInstances"
Public Const K_INSTANCES As String = "Instances"
Public Const K_COMMANDLOG As String = "CommandLog"
Public Const K_STARTINSTANCES As String = "StartInstances"
Public Const K_PROCESSPATH As String = "ProcessPath"
Public Const K_PROCESSATSTART As String = "ProcessAtStart"
Public Const K_BASEURL As String = "BaseUrl"
Public Const K_BASEIP As String = "BaseIp"
Public Const K_MUTEXNAME As String = "MutexName"
End Module
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.0.0.0")>
<Assembly: AssemblyFileVersion("1.0.0.0")>
<Assembly: AssemblyVersion("2.5.6.1")>
<Assembly: AssemblyFileVersion("2.5.6.1")>
+93 -74
View File
@@ -49,22 +49,24 @@ Partial Class ProcMan
Me.ThreadCurrentStatusList = New System.Windows.Forms.ListView()
Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
Me.ColumnHeader2 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
Me.ColumnHeader4 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
Me.ColumnHeader3 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
Me.chkStatAggr = New System.Windows.Forms.CheckBox()
Me.btnExportStats = New System.Windows.Forms.Button()
Me.chkAutoRestart = New System.Windows.Forms.CheckBox()
Me.TimerCheck = New System.Windows.Forms.Timer(Me.components)
Me.ColumnHeader3 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
Me.ColumnHeader4 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
Me.Button1 = New System.Windows.Forms.Button()
Me.TimerResetProcessing = New System.Windows.Forms.Timer(Me.components)
Me.StatusStrip1.SuspendLayout()
Me.GroupBox1.SuspendLayout()
Me.SuspendLayout()
'
'btnTestPing
'
Me.btnTestPing.Location = New System.Drawing.Point(17, 16)
Me.btnTestPing.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.btnTestPing.Location = New System.Drawing.Point(19, 20)
Me.btnTestPing.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
Me.btnTestPing.Name = "btnTestPing"
Me.btnTestPing.Size = New System.Drawing.Size(100, 28)
Me.btnTestPing.Size = New System.Drawing.Size(112, 35)
Me.btnTestPing.TabIndex = 0
Me.btnTestPing.Text = "Test Ping"
Me.btnTestPing.UseVisualStyleBackColor = True
@@ -72,39 +74,39 @@ Partial Class ProcMan
'lblpingTest
'
Me.lblpingTest.AutoSize = True
Me.lblpingTest.Location = New System.Drawing.Point(153, 22)
Me.lblpingTest.Location = New System.Drawing.Point(172, 28)
Me.lblpingTest.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.lblpingTest.Name = "lblpingTest"
Me.lblpingTest.Size = New System.Drawing.Size(28, 16)
Me.lblpingTest.Size = New System.Drawing.Size(36, 20)
Me.lblpingTest.TabIndex = 1
Me.lblpingTest.Text = "???"
'
'lblTestAlive
'
Me.lblTestAlive.AutoSize = True
Me.lblTestAlive.Location = New System.Drawing.Point(365, 22)
Me.lblTestAlive.Location = New System.Drawing.Point(411, 28)
Me.lblTestAlive.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.lblTestAlive.Name = "lblTestAlive"
Me.lblTestAlive.Size = New System.Drawing.Size(28, 16)
Me.lblTestAlive.Size = New System.Drawing.Size(36, 20)
Me.lblTestAlive.TabIndex = 3
Me.lblTestAlive.Text = "???"
'
'btnTestAlive
'
Me.btnTestAlive.Location = New System.Drawing.Point(229, 16)
Me.btnTestAlive.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.btnTestAlive.Location = New System.Drawing.Point(258, 20)
Me.btnTestAlive.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
Me.btnTestAlive.Name = "btnTestAlive"
Me.btnTestAlive.Size = New System.Drawing.Size(100, 28)
Me.btnTestAlive.Size = New System.Drawing.Size(112, 35)
Me.btnTestAlive.TabIndex = 2
Me.btnTestAlive.Text = "Test Alive"
Me.btnTestAlive.UseVisualStyleBackColor = True
'
'btnResetQueue
'
Me.btnResetQueue.Location = New System.Drawing.Point(17, 201)
Me.btnResetQueue.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.btnResetQueue.Location = New System.Drawing.Point(19, 251)
Me.btnResetQueue.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
Me.btnResetQueue.Name = "btnResetQueue"
Me.btnResetQueue.Size = New System.Drawing.Size(100, 28)
Me.btnResetQueue.Size = New System.Drawing.Size(112, 35)
Me.btnResetQueue.TabIndex = 6
Me.btnResetQueue.Text = "Reset Q"
Me.btnResetQueue.UseVisualStyleBackColor = True
@@ -114,41 +116,41 @@ Partial Class ProcMan
Me.txtOut.BackColor = System.Drawing.SystemColors.ControlDarkDark
Me.txtOut.Font = New System.Drawing.Font("Microsoft Sans Serif", 7.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.txtOut.ForeColor = System.Drawing.Color.Yellow
Me.txtOut.Location = New System.Drawing.Point(16, 240)
Me.txtOut.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.txtOut.MinimumSize = New System.Drawing.Size(79, 147)
Me.txtOut.Location = New System.Drawing.Point(18, 300)
Me.txtOut.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
Me.txtOut.MinimumSize = New System.Drawing.Size(88, 183)
Me.txtOut.Multiline = True
Me.txtOut.Name = "txtOut"
Me.txtOut.Size = New System.Drawing.Size(99, 173)
Me.txtOut.Size = New System.Drawing.Size(111, 215)
Me.txtOut.TabIndex = 7
Me.txtOut.Text = "---"
'
'btnQueueStatus
'
Me.btnQueueStatus.Location = New System.Drawing.Point(17, 79)
Me.btnQueueStatus.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.btnQueueStatus.Location = New System.Drawing.Point(19, 99)
Me.btnQueueStatus.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
Me.btnQueueStatus.Name = "btnQueueStatus"
Me.btnQueueStatus.Size = New System.Drawing.Size(100, 28)
Me.btnQueueStatus.Size = New System.Drawing.Size(112, 35)
Me.btnQueueStatus.TabIndex = 8
Me.btnQueueStatus.Text = "Stato Queue"
Me.btnQueueStatus.UseVisualStyleBackColor = True
'
'StartProcess
'
Me.StartProcess.Location = New System.Drawing.Point(17, 23)
Me.StartProcess.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.StartProcess.Location = New System.Drawing.Point(19, 29)
Me.StartProcess.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
Me.StartProcess.Name = "StartProcess"
Me.StartProcess.Size = New System.Drawing.Size(100, 28)
Me.StartProcess.Size = New System.Drawing.Size(112, 35)
Me.StartProcess.TabIndex = 9
Me.StartProcess.Text = "Start"
Me.StartProcess.UseVisualStyleBackColor = True
'
'StopProcess
'
Me.StopProcess.Location = New System.Drawing.Point(325, 22)
Me.StopProcess.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.StopProcess.Location = New System.Drawing.Point(366, 28)
Me.StopProcess.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
Me.StopProcess.Name = "StopProcess"
Me.StopProcess.Size = New System.Drawing.Size(100, 28)
Me.StopProcess.Size = New System.Drawing.Size(112, 35)
Me.StopProcess.TabIndex = 10
Me.StopProcess.Text = "Stop"
Me.StopProcess.UseVisualStyleBackColor = True
@@ -157,17 +159,17 @@ Partial Class ProcMan
'
Me.StatusStrip1.ImageScalingSize = New System.Drawing.Size(20, 20)
Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tsProgBar})
Me.StatusStrip1.Location = New System.Drawing.Point(0, 526)
Me.StatusStrip1.Location = New System.Drawing.Point(0, 659)
Me.StatusStrip1.Name = "StatusStrip1"
Me.StatusStrip1.Padding = New System.Windows.Forms.Padding(1, 0, 19, 0)
Me.StatusStrip1.Size = New System.Drawing.Size(736, 22)
Me.StatusStrip1.Padding = New System.Windows.Forms.Padding(1, 0, 21, 0)
Me.StatusStrip1.Size = New System.Drawing.Size(828, 26)
Me.StatusStrip1.TabIndex = 11
Me.StatusStrip1.Text = "StatusStrip1"
'
'tsProgBar
'
Me.tsProgBar.Name = "tsProgBar"
Me.tsProgBar.Size = New System.Drawing.Size(133, 14)
Me.tsProgBar.Size = New System.Drawing.Size(150, 18)
Me.tsProgBar.Step = 1
'
'txtQueue
@@ -175,42 +177,42 @@ Partial Class ProcMan
Me.txtQueue.BackColor = System.Drawing.SystemColors.ControlDarkDark
Me.txtQueue.Font = New System.Drawing.Font("Microsoft Sans Serif", 7.0!)
Me.txtQueue.ForeColor = System.Drawing.SystemColors.Window
Me.txtQueue.Location = New System.Drawing.Point(17, 114)
Me.txtQueue.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.txtQueue.Location = New System.Drawing.Point(19, 142)
Me.txtQueue.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
Me.txtQueue.Multiline = True
Me.txtQueue.Name = "txtQueue"
Me.txtQueue.Size = New System.Drawing.Size(99, 78)
Me.txtQueue.Size = New System.Drawing.Size(111, 96)
Me.txtQueue.TabIndex = 12
Me.txtQueue.Text = "Q Status:"
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Location = New System.Drawing.Point(132, 30)
Me.Label1.Location = New System.Drawing.Point(148, 38)
Me.Label1.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(35, 16)
Me.Label1.Size = New System.Drawing.Size(44, 20)
Me.Label1.TabIndex = 13
Me.Label1.Text = "num:"
'
'txtNumThread
'
Me.txtNumThread.Location = New System.Drawing.Point(171, 26)
Me.txtNumThread.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.txtNumThread.Location = New System.Drawing.Point(192, 32)
Me.txtNumThread.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
Me.txtNumThread.Name = "txtNumThread"
Me.txtNumThread.Size = New System.Drawing.Size(41, 22)
Me.txtNumThread.Size = New System.Drawing.Size(46, 26)
Me.txtNumThread.TabIndex = 14
Me.txtNumThread.Text = "1"
Me.txtNumThread.Text = "0"
Me.txtNumThread.TextAlign = System.Windows.Forms.HorizontalAlignment.Right
'
'lblRunning
'
Me.lblRunning.AutoSize = True
Me.lblRunning.Location = New System.Drawing.Point(221, 30)
Me.lblRunning.Location = New System.Drawing.Point(249, 38)
Me.lblRunning.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.lblRunning.MinimumSize = New System.Drawing.Size(100, 0)
Me.lblRunning.MinimumSize = New System.Drawing.Size(112, 0)
Me.lblRunning.Name = "lblRunning"
Me.lblRunning.Size = New System.Drawing.Size(100, 16)
Me.lblRunning.Size = New System.Drawing.Size(112, 20)
Me.lblRunning.TabIndex = 15
Me.lblRunning.Text = "running: -"
Me.lblRunning.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
@@ -226,10 +228,10 @@ Partial Class ProcMan
'
Me.LISTThreadStatus.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.chThread, Me.chTime, Me.chOther})
Me.LISTThreadStatus.HideSelection = False
Me.LISTThreadStatus.Location = New System.Drawing.Point(17, 59)
Me.LISTThreadStatus.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.LISTThreadStatus.Location = New System.Drawing.Point(19, 74)
Me.LISTThreadStatus.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
Me.LISTThreadStatus.Name = "LISTThreadStatus"
Me.LISTThreadStatus.Size = New System.Drawing.Size(536, 173)
Me.LISTThreadStatus.Size = New System.Drawing.Size(602, 215)
Me.LISTThreadStatus.TabIndex = 16
Me.LISTThreadStatus.UseCompatibleStateImageBehavior = False
Me.LISTThreadStatus.View = System.Windows.Forms.View.Details
@@ -259,11 +261,11 @@ Partial Class ProcMan
Me.GroupBox1.Controls.Add(Me.StopProcess)
Me.GroupBox1.Controls.Add(Me.Label1)
Me.GroupBox1.Controls.Add(Me.StartProcess)
Me.GroupBox1.Location = New System.Drawing.Point(157, 79)
Me.GroupBox1.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.GroupBox1.Location = New System.Drawing.Point(177, 99)
Me.GroupBox1.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
Me.GroupBox1.Name = "GroupBox1"
Me.GroupBox1.Padding = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.GroupBox1.Size = New System.Drawing.Size(563, 438)
Me.GroupBox1.Padding = New System.Windows.Forms.Padding(4, 5, 4, 5)
Me.GroupBox1.Size = New System.Drawing.Size(633, 548)
Me.GroupBox1.TabIndex = 17
Me.GroupBox1.TabStop = False
Me.GroupBox1.Text = "Threads"
@@ -272,10 +274,10 @@ Partial Class ProcMan
'
Me.ThreadCurrentStatusList.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader4, Me.ColumnHeader3})
Me.ThreadCurrentStatusList.HideSelection = False
Me.ThreadCurrentStatusList.Location = New System.Drawing.Point(17, 257)
Me.ThreadCurrentStatusList.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.ThreadCurrentStatusList.Location = New System.Drawing.Point(19, 321)
Me.ThreadCurrentStatusList.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
Me.ThreadCurrentStatusList.Name = "ThreadCurrentStatusList"
Me.ThreadCurrentStatusList.Size = New System.Drawing.Size(536, 173)
Me.ThreadCurrentStatusList.Size = New System.Drawing.Size(602, 215)
Me.ThreadCurrentStatusList.TabIndex = 18
Me.ThreadCurrentStatusList.UseCompatibleStateImageBehavior = False
Me.ThreadCurrentStatusList.View = System.Windows.Forms.View.Details
@@ -290,25 +292,37 @@ Partial Class ProcMan
Me.ColumnHeader2.Text = "Thread Status"
Me.ColumnHeader2.Width = 100
'
'ColumnHeader4
'
Me.ColumnHeader4.DisplayIndex = 3
Me.ColumnHeader4.Text = "Thread Phase"
Me.ColumnHeader4.Width = 100
'
'ColumnHeader3
'
Me.ColumnHeader3.DisplayIndex = 2
Me.ColumnHeader3.Text = "Process Status"
Me.ColumnHeader3.Width = 100
'
'chkStatAggr
'
Me.chkStatAggr.AutoSize = True
Me.chkStatAggr.Checked = True
Me.chkStatAggr.CheckState = System.Windows.Forms.CheckState.Checked
Me.chkStatAggr.Location = New System.Drawing.Point(435, 26)
Me.chkStatAggr.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.chkStatAggr.Location = New System.Drawing.Point(489, 32)
Me.chkStatAggr.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
Me.chkStatAggr.Name = "chkStatAggr"
Me.chkStatAggr.Size = New System.Drawing.Size(91, 20)
Me.chkStatAggr.Size = New System.Drawing.Size(111, 24)
Me.chkStatAggr.TabIndex = 17
Me.chkStatAggr.Text = "Aggr Stats"
Me.chkStatAggr.UseVisualStyleBackColor = True
'
'btnExportStats
'
Me.btnExportStats.Location = New System.Drawing.Point(612, 16)
Me.btnExportStats.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.btnExportStats.Location = New System.Drawing.Point(688, 20)
Me.btnExportStats.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
Me.btnExportStats.Name = "btnExportStats"
Me.btnExportStats.Size = New System.Drawing.Size(100, 28)
Me.btnExportStats.Size = New System.Drawing.Size(112, 35)
Me.btnExportStats.TabIndex = 18
Me.btnExportStats.Text = "Export Stats"
Me.btnExportStats.UseVisualStyleBackColor = True
@@ -316,10 +330,10 @@ Partial Class ProcMan
'chkAutoRestart
'
Me.chkAutoRestart.AutoSize = True
Me.chkAutoRestart.Location = New System.Drawing.Point(465, 21)
Me.chkAutoRestart.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.chkAutoRestart.Location = New System.Drawing.Point(523, 26)
Me.chkAutoRestart.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
Me.chkAutoRestart.Name = "chkAutoRestart"
Me.chkAutoRestart.Size = New System.Drawing.Size(99, 20)
Me.chkAutoRestart.Size = New System.Drawing.Size(122, 24)
Me.chkAutoRestart.TabIndex = 19
Me.chkAutoRestart.Text = "AutoRestart"
Me.chkAutoRestart.UseVisualStyleBackColor = True
@@ -328,23 +342,26 @@ Partial Class ProcMan
'
Me.TimerCheck.Interval = 30000
'
'ColumnHeader3
'Button1
'
Me.ColumnHeader3.DisplayIndex = 2
Me.ColumnHeader3.Text = "Process Status"
Me.ColumnHeader3.Width = 100
Me.Button1.Location = New System.Drawing.Point(688, 65)
Me.Button1.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(112, 35)
Me.Button1.TabIndex = 20
Me.Button1.Text = "Kill All Procs"
Me.Button1.UseVisualStyleBackColor = True
'
'ColumnHeader4
'TimerResetProcessing
'
Me.ColumnHeader4.DisplayIndex = 3
Me.ColumnHeader4.Text = "Thread Phase"
Me.ColumnHeader4.Width = 100
Me.TimerResetProcessing.Interval = 3000
'
'ProcMan
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(8.0!, 16.0!)
Me.AutoScaleDimensions = New System.Drawing.SizeF(9.0!, 20.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(736, 548)
Me.ClientSize = New System.Drawing.Size(828, 685)
Me.Controls.Add(Me.Button1)
Me.Controls.Add(Me.chkAutoRestart)
Me.Controls.Add(Me.btnExportStats)
Me.Controls.Add(Me.GroupBox1)
@@ -358,7 +375,7 @@ Partial Class ProcMan
Me.Controls.Add(Me.lblpingTest)
Me.Controls.Add(Me.btnTestPing)
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
Me.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
Me.Name = "ProcMan"
Me.Text = "MainForm"
Me.StatusStrip1.ResumeLayout(False)
@@ -401,4 +418,6 @@ Partial Class ProcMan
Friend WithEvents ColumnHeader2 As ColumnHeader
Friend WithEvents ColumnHeader3 As ColumnHeader
Friend WithEvents ColumnHeader4 As ColumnHeader
Friend WithEvents Button1 As Button
Friend WithEvents TimerResetProcessing As Timer
End Class
+3
View File
@@ -129,6 +129,9 @@
<metadata name="TimerCheck.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>354, 17</value>
</metadata>
<metadata name="TimerResetProcessing.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>511, 22</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
+610 -159
View File
@@ -1,8 +1,10 @@
Imports System.IO
Imports System.Net.NetworkInformation
Imports System.Reflection
Imports System.Text
Imports System.Threading
Imports WebDoorCreator.SDK
Imports EgtUILib
Public Class ProcMan
@@ -46,8 +48,10 @@ Public Class ProcMan
Dim codPost As String = "WRK001"
Dim sEgtEnginePath As String = ""
' nome macchina calcolo
Dim currWDC As WDC = New WDC(baseIp, baseUrl, codPost)
Dim currWDC As WDC
Dim idxSim As Integer = 0
@@ -57,6 +61,17 @@ Public Class ProcMan
Dim m_ExecutionThread As Thread
Dim m_LastCrashedProcTime As DateTime
Private m_StatList As New List(Of ThreadStat)
Public Enum ProgramStatuses As Integer
START = 1
[STOP] = 2
End Enum
Dim m_ProgramStatus As ProgramStatuses = ProgramStatuses.STOP
'Private m_MaxCamInstances As Integer = 8
Private m_MaxCamInstances As Integer = 1
@@ -65,6 +80,9 @@ Public Class ProcMan
Dim ThreadList As Thread()
Dim ThreadDataList As ThreadData()
Dim HistoryThreadDataList As New List(Of ThreadStat)
Dim m_bCheckOrder As Boolean = True
Dim m_bPingOk As Boolean = False
Dim m_bAliveOk As Boolean = False
@@ -82,6 +100,52 @@ Public Class ProcMan
Private Class ThreadData
Public Enum ProcComm As Integer
Null = 0
WaitingAnswer = 1
AnswerReceived = 2
End Enum
Private m_CurrRequest As KeyValuePair(Of String, String)
Public ReadOnly Property CurrRequest As KeyValuePair(Of String, String)
Get
Return m_CurrRequest
End Get
End Property
Friend Sub SetCurrRequest(value As KeyValuePair(Of String, String))
m_CurrRequest = value
End Sub
Private m_sDdfPath As String
Public ReadOnly Property sDdfPath As String
Get
Return m_sDdfPath
End Get
End Property
Friend Sub SetDdfPath(value As String)
m_sDdfPath = value
End Sub
Private m_WaitProcAnswer As ProcComm = ProcComm.Null
Public ReadOnly Property WaitProcAnswer As ProcComm
Get
Return m_WaitProcAnswer
End Get
End Property
Friend Sub SetWaitProcAnswer(value As ProcComm)
m_WaitProcAnswer = value
End Sub
Private m_nProcResult As Integer
Public ReadOnly Property nProcResult As Integer
Get
Return m_nProcResult
End Get
End Property
Friend Sub SetProcResult(value As Integer)
m_nProcResult = value
End Sub
Private m_ThreadOperation As ThreadOperations
Public ReadOnly Property ThreadOperation As ThreadOperations
Get
@@ -102,10 +166,105 @@ Public Class ProcMan
m_Process = value
End Sub
Private m_ThreadStat As ThreadStat
Public ReadOnly Property ThreadStat As ThreadStat
Get
Return m_ThreadStat
End Get
End Property
Friend Sub SetThreadStat(value As ThreadStat)
m_ThreadStat = value
End Sub
End Class
Public Class ThreadStat
Private m_nIndex As Integer
Public ReadOnly Property nIndex As Integer
Get
Return m_nIndex
End Get
End Property
Private m_StartThread As DateTime
Public ReadOnly Property StartThread As DateTime
Get
Return m_StartThread
End Get
End Property
Private m_StopThread As DateTime
Public ReadOnly Property StopThread As DateTime
Get
Return m_StopThread
End Get
End Property
Friend Sub SetStopThread(value As DateTime)
m_StopThread = value
End Sub
Private m_ProcExecutionList As New List(Of ProcStat)
Public ReadOnly Property ProcExecutionList As List(Of ProcStat)
Get
Return m_ProcExecutionList
End Get
End Property
Sub New(nIndex As Integer)
m_nIndex = nIndex
End Sub
Sub New(nIndex As Integer, StartThread As DateTime)
MyClass.New(nIndex)
m_StartThread = StartThread
End Sub
End Class
Public Class ProcStat
Private m_StartProc As DateTime
Public ReadOnly Property StartProc As DateTime
Get
Return m_StartProc
End Get
End Property
Private m_StopProc As DateTime
Public ReadOnly Property StopProc As DateTime
Get
Return m_StopProc
End Get
End Property
Friend Sub SetStopProc(value As DateTime)
m_StopProc = value
End Sub
Private m_nDoneRequests As Integer = 0
Public ReadOnly Property nDoneRequests As Integer
Get
Return m_nDoneRequests
End Get
End Property
Friend Sub IncrementDoneRequest()
m_nDoneRequests += 1
End Sub
Sub New(StartProc As DateTime)
m_StartProc = StartProc
End Sub
End Class
#Region "Private Methods"
Private Sub Form_Shown() Handles MyBase.Shown
If GetPrivateProfileInt(S_GENERAL, K_PROCESSATSTART, 1, m_IniFilePath) = 1 Then
startAllThreads()
End If
End Sub
Private Sub UpdateThreadCurrentStatus()
synchronizationContext.Post(New SendOrPostCallback(
Sub(o)
@@ -121,15 +280,16 @@ Public Class ProcMan
' ThreadProcessState = ThreadDataList(ThreadIndex).Process.HasExited
'End If
ThreadCurrentStatusList.Items.Add(New ListViewItem(New String() {ThreadIndex,
ThreadList(ThreadIndex).ThreadState.ToString(),
If(Not IsNothing(ThreadList(ThreadIndex)), ThreadList(ThreadIndex).ThreadState.ToString(), ""),
ThreadProcessState,
ThreadDataList(ThreadIndex).ThreadOperation.ToString()}))
If(Not IsNothing(ThreadDataList(ThreadIndex)), ThreadDataList(ThreadIndex).ThreadOperation.ToString(), "")}))
Else
ThreadCurrentStatusList.Items.Add(New ListViewItem(New String() {ThreadIndex,
"nothing"}))
End If
Next
End If
ThreadCurrentStatusList.EndUpdate()
lblpingTest.Text = m_bPingOk.ToString()
lblTestAlive.Text = m_bAliveOk.ToString()
@@ -161,6 +321,7 @@ Public Class ProcMan
End Sub
Private Sub DisplayQueueStatus()
If IsNothing(currWDC) Then Return
Dim queueStatus As New Dictionary(Of String, Long)
queueStatus = currWDC.queueStatus
Dim sb As StringBuilder
@@ -175,12 +336,12 @@ Public Class ProcMan
Private Sub ExecutionProcess()
' recupero Id dei DDF
Dim sDdfRoot As String = "c:\EgtData\WebDoor\Ddf"
Dim sCurrDdfDir As String = ""
Dim nDdfId As Integer = 1
Dim bStopMainProcess As Boolean = False
Dim n30SecCounter As Integer = 0
Dim nStartingProc As Integer = 0
While Not bStopMainProcess
bStopMainProcess = m_bStopProcess
Dim bOk As Boolean = False
@@ -252,32 +413,80 @@ Public Class ProcMan
End If
' se qualche processo in stop, lo faccio ripartire
For ThreadIndex = 0 To ThreadList.Count - 1
Dim Thread = ThreadList(ThreadIndex)
If Not IsNothing(Thread) Then
If Thread.ThreadState = ThreadState.Stopped OrElse Thread.ThreadState = ThreadState.Aborted OrElse
Thread.ThreadState = ThreadState.Suspended Then
Thread.Abort()
Thread.Sleep(500)
While Not Thread.ThreadState = ThreadState.Aborted
Thread.Sleep(100)
End While
Thread = Nothing
If ThreadIndex < ThreadList.Count Then
Dim Thread = ThreadList(ThreadIndex)
If Not IsNothing(Thread) Then
If Thread.ThreadState = ThreadState.Stopped OrElse Thread.ThreadState = ThreadState.Aborted OrElse
Thread.ThreadState = ThreadState.Suspended OrElse IsNothing(ThreadDataList(ThreadIndex).Process) OrElse (Not IsNothing(ThreadDataList(ThreadIndex).Process) AndAlso ThreadDataList(ThreadIndex).Process.HasExited) Then
Dim nActiveProc As Integer = 0
If ThreadIndex < ThreadDataList.Count Then
Dim CurrThreadStat As ThreadStat = ThreadDataList(ThreadIndex).ThreadStat
Dim CurrProcess As ProcStat = Nothing
If Not IsNothing(CurrThreadStat) Then
CurrProcess = CurrThreadStat.ProcExecutionList(CurrThreadStat.ProcExecutionList.Count - 1)
If Not IsNothing(CurrProcess) AndAlso CurrProcess.StopProc = DateTime.MinValue Then CurrProcess.SetStopProc(DateTime.Now)
If CurrThreadStat.StopThread = DateTime.MinValue Then CurrThreadStat.SetStopThread(DateTime.Now)
End If
' verifico se posso rilanciarlo
For nIndex As Integer = 0 To m_MaxCamInstances - 1
If nIndex < ThreadDataList.Count Then
Dim IndexThreadStat As ThreadStat = ThreadDataList(nIndex).ThreadStat
If Not IsNothing(IndexThreadStat) Then
If IndexThreadStat.ProcExecutionList.Count > 0 Then
Dim IndexProcess As ProcStat = IndexThreadStat.ProcExecutionList(IndexThreadStat.ProcExecutionList.Count - 1)
Dim random As New Random()
Dim nRandWait As Integer = random.Next(15, 30)
Dim RandTimeSpan As TimeSpan = TimeSpan.FromSeconds(nRandWait)
'EgtOutLog("nIndex: " & nIndex)
'EgtOutLog("Now: " & DateTime.Now)
'EgtOutLog("Stop process: " & IndexProcess.StopProc)
'EgtOutLog("nRandWait: " & nRandWait)
'EgtOutLog("RandTimeSpan: " & RandTimeSpan.ToString)
If Not IsNothing(IndexProcess) AndAlso Not IsNothing(CurrProcess) AndAlso (IndexProcess.StopProc = DateTime.MinValue OrElse (DateTime.Now - IndexProcess.StopProc) < TimeSpan.FromSeconds(nRandWait)) Then
nActiveProc += 1
'EgtOutLog("ActiveProc + 1")
End If
End If
End If
End If
Next
End If
'EgtOutLog("Conto processi attivi: " & nActiveProc)
If nActiveProc + nStartingProc + 1 <= Math.Max(2, m_MaxCamInstances) Then
nStartingProc += 1
'EgtOutLog("Ne lancio un altro")
' lo chiudo e rilancio
If ThreadIndex < ThreadDataList.Count Then
If Not IsNothing(ThreadDataList(ThreadIndex).Process) AndAlso Not ThreadDataList(ThreadIndex).Process.HasExited Then ThreadDataList(ThreadIndex).Process.Kill()
Thread.Sleep(500)
Thread.Abort()
Thread.Sleep(500)
While Not Thread.ThreadState = ThreadState.Aborted
Thread.Sleep(100)
End While
Thread = Nothing
Dim ThreadId As Integer = ThreadIndex
ThreadList(ThreadIndex) = New Thread(Sub()
ThreadFunction(ThreadId)
End Sub)
ThreadList(ThreadIndex).SetApartmentState(ApartmentState.STA)
' avvio thread di gestione della macchina che avvia la connessione
ThreadList(ThreadIndex).Start()
End If
nStartingProc -= 1
End If
End If
Else
Dim ThreadId As Integer = ThreadIndex
Thread = New Thread(Sub()
ThreadFunction(ThreadId)
End Sub)
Thread.SetApartmentState(ApartmentState.STA)
' avvio thread di gestione della macchina che avvia la connessione
Thread.Start()
If ThreadIndex < ThreadList.Count Then
ThreadList(ThreadIndex) = New Thread(Sub()
ThreadFunction(ThreadId)
End Sub)
ThreadList(ThreadIndex).SetApartmentState(ApartmentState.STA)
' avvio thread di gestione della macchina che avvia la connessione
ThreadList(ThreadIndex).Start()
End If
End If
Else
Dim ThreadId As Integer = ThreadIndex
ThreadList(ThreadIndex) = New Thread(Sub()
ThreadFunction(ThreadId)
End Sub)
ThreadList(ThreadIndex).SetApartmentState(ApartmentState.STA)
' avvio thread di gestione della macchina che avvia la connessione
ThreadList(ThreadIndex).Start()
End If
Next
If n30SecCounter <= 30 Then
@@ -327,12 +536,22 @@ Public Class ProcMan
'Thread.Sleep(100)
'startAllThreads()
End If
lblRunning.Text = $"threads: {ThreadCount()}/{m_MaxCamInstances}"
Dim nRunningProcess As Integer = 0
If Not IsNothing(ThreadDataList) Then
For ThreadIndex = 0 To ThreadDataList.Count - 1
Dim CurrThread As ThreadData = ThreadDataList(ThreadIndex)
If Not IsNothing(CurrThread) Then
If CurrThread.ThreadStat.StopThread = DateTime.MinValue Then
nRunningProcess += 1
End If
End If
Next
End If
lblRunning.Text = $"threads: {ThreadCount()}/{m_MaxCamInstances}/{nRunningProcess}"
lblRunning.Invalidate()
DisplayQueueStatus()
' colore btn start / stop...
If m_bStopProcess Then
If m_ProgramStatus = ProgramStatuses.STOP Then
StartProcess.BackColor = ButtonBase.DefaultBackColor
StartProcess.ForeColor = ButtonBase.DefaultForeColor
@@ -355,6 +574,7 @@ Public Class ProcMan
End Sub
Private Sub startAllThreads()
If m_ProgramStatus = ProgramStatuses.START Then Return
m_bStopProcess = False
m_bExecutionThreadStoped = False
m_ExecutionThread = New Thread(Sub()
@@ -364,6 +584,9 @@ Public Class ProcMan
m_ExecutionThread.SetApartmentState(ApartmentState.STA)
' avvio thread di gestione della macchina che avvia la connessione
m_ExecutionThread.Start()
m_ProgramStatus = ProgramStatuses.START
#If False Then
'' recupero Id dei DDF
'Dim sDdfRoot As String = "c:\EgtData\WebDoor\Ddf"
@@ -606,9 +829,14 @@ Public Class ProcMan
' avvio il timer di refresh
TimerProgBar.Enabled = True
TimerProgBar.Start()
TimerResetProcessing.Enabled = True
TimerResetProcessing.Start()
End Sub
Private Sub stopAllThreads()
If m_ProgramStatus = ProgramStatuses.STOP Then Return
m_bStopProcess = True
While Not m_bExecutionThreadStoped
Thread.Sleep(100)
@@ -621,9 +849,7 @@ Public Class ProcMan
m_ExecutionThread = Nothing
End If
ThreadList = Nothing
' fix timer
TimerProgBar.Enabled = False
TimerProgBar.Stop()
m_ProgramStatus = ProgramStatuses.STOP
End Sub
Private Sub StopProcess_Click(sender As Object, e As EventArgs) Handles StopProcess.Click
@@ -647,143 +873,213 @@ Public Class ProcMan
Private Sub ThreadFunction(ThreadIndex As Integer)
Dim MyThreadData As New ThreadData
ThreadDataList(ThreadIndex) = MyThreadData
Dim sExePath As String = "c:\EgtProg\EgtEngine\EgtEngineR32.exe"
Dim sCurrDdfDir As String = "c:\EgtData\WebDoor\Ddf"
Dim CurrThreadStat As New ThreadStat(ThreadIndex, DateTime.Now)
HistoryThreadDataList.Add(CurrThreadStat)
MyThreadData.SetThreadStat(CurrThreadStat)
Dim sDrive As String = "c" ' If(ThreadIndex Mod 2 = 0, "A", "B")
Dim sCurrDdfDir As String = sDrive & ":\EgtData\WebDoor\Ddf"
Dim stopWatch As New Stopwatch()
Dim lExeTime As Long = 0
Dim lOtherTime As Long = 0
While Not m_bStopProcess
MyThreadData.SetThreadOperation(ThreadOperations.WaitingData)
' se c'e' qualcosa da processare
If currWDC.numTask2proc > 0 Then
Dim LastRequest As Dictionary(Of String, String) = currWDC.queueList(1)
If LastRequest.Count > 0 Then
MyThreadData.SetThreadOperation(ThreadOperations.FoundRequest)
Dim Item As KeyValuePair(Of String, String) = LastRequest.First()
Dim bOk As Boolean = Not IsNothing(Item)
If bOk Then
' avvio processo
Dim Proc As Process = New Process()
Proc.StartInfo.FileName = sEgtEnginePath
Proc.StartInfo.RedirectStandardInput = True
Proc.StartInfo.RedirectStandardOutput = True
Proc.StartInfo.Arguments = ThreadIndex.ToString() & " """ & sDrive & ":\EgtData\WebDoor\TestPipe.lua"""
Proc.StartInfo.UseShellExecute = False
Proc.StartInfo.CreateNoWindow = True
AddHandler Proc.OutputDataReceived, AddressOf Thread_OutputDataReceived
' avvio cronometro
'stopWatch.Reset()
stopWatch.Restart()
' svuoto vecchio set file della porta richiesta
Dim fileList As String() = Directory.GetFiles(sCurrDdfDir, Item.Key + ".*")
' elimino vecchi
If Not IsNothing(fileList) Then
For Each sFile In fileList
File.Delete(sFile)
Next
End If
If Proc.Start() Then
Dim CurrPocStat As New ProcStat(DateTime.Now)
CurrThreadStat.ProcExecutionList.Add(CurrPocStat)
Proc.BeginOutputReadLine()
MyThreadData.SetProcess(Proc)
' scrivo ddf
MyThreadData.SetThreadOperation(ThreadOperations.WritingDdf)
Dim sDdfPath As String = sCurrDdfDir & "\" & Item.Key & ".ddf"
Try
File.WriteAllText(sDdfPath, Item.Value)
Catch ex As Exception
bOk = False
End Try
If bOk Then
MyThreadData.SetThreadOperation(ThreadOperations.ProcessingDdf)
' eseguo calcolo
Dim Proc As Process = New Process()
MyThreadData.SetProcess(Proc)
Proc.StartInfo.FileName = sExePath
Proc.StartInfo.Arguments = """C:\EgtData\WebDoor\Main.lua""" & " """ & sDdfPath & """"
Proc.StartInfo.UseShellExecute = False
If Proc.Start() Then
While Not Proc.HasExited
Thread.Sleep(1)
End While
MyThreadData.SetProcess(Nothing)
' salvo exe time...
stopWatch.Stop()
lExeTime = stopWatch.ElapsedMilliseconds
stopWatch.Restart()
Dim procResults As New List(Of CalcResultDTO)
Dim currRes As New CalcResultDTO
Dim fContent As String = ""
MyThreadData.SetThreadOperation(ThreadOperations.ReadingSvg)
' verifico esistenza file svg e lo carico
bOk = GetFileContent(Path.ChangeExtension(sDdfPath, "svg"), fContent)
' invio risposta
currRes.Validated = Proc.ExitCode = 0 AndAlso bOk
currRes.DoorIdVers = Item.Key
' se NON fosse validato --> messo il messaggio...
If (currRes.Validated) Then
currRes.SvgGen = fContent
Else
bOk = GetFileContent(Path.ChangeExtension(sDdfPath, "txt"), fContent)
currRes.ErrorMsg = fContent
End If
MyThreadData.SetThreadOperation(ThreadOperations.SendResult)
procResults.Add(currRes)
Dim respPut As String = currWDC.SendProcResults(procResults)
stopWatch.Stop()
lOtherTime = stopWatch.ElapsedMilliseconds
' aggiorno thread display...
UpdateThreadList(Item.Key, lExeTime, lOtherTime)
' cambio nomi file generati in old
Dim OldSvg As String = Path.ChangeExtension(sDdfPath, "svg")
Dim NewSvg As String = Path.GetDirectoryName(sDdfPath) & "\" & Path.GetFileNameWithoutExtension(sDdfPath) & "_old.svg"
Try
File.Delete(NewSvg)
Catch ex As Exception
End Try
Try
File.Delete(Path.ChangeExtension(NewSvg, "txt"))
Catch ex As Exception
End Try
Try
File.Delete(Path.ChangeExtension(NewSvg, "log"))
Catch ex As Exception
End Try
Try
File.Delete(Path.ChangeExtension(NewSvg, "nge"))
Catch ex As Exception
End Try
Try
File.Delete(Path.ChangeExtension(NewSvg, "ddf"))
Catch ex As Exception
End Try
Try
File.Move(OldSvg, NewSvg)
Catch ex As Exception
End Try
Try
File.Move(Path.ChangeExtension(OldSvg, "txt"), Path.ChangeExtension(NewSvg, "txt"))
Catch ex As Exception
End Try
Try
File.Move(Path.ChangeExtension(OldSvg, "log"), Path.ChangeExtension(NewSvg, "log"))
Catch ex As Exception
End Try
Try
File.Move(Path.ChangeExtension(OldSvg, "nge"), Path.ChangeExtension(NewSvg, "nge"))
Catch ex As Exception
End Try
Try
File.Move(Path.ChangeExtension(OldSvg, "ddf"), Path.ChangeExtension(NewSvg, "ddf"))
Catch ex As Exception
End Try
Dim nProc0Wait As Integer = 0
' ciclo per leggere coda ed eseguire
While Not m_bStopProcess AndAlso Not Proc.HasExited
Select Case MyThreadData.WaitProcAnswer
Case ThreadData.ProcComm.Null
MyThreadData.SetThreadOperation(ThreadOperations.WaitingData)
' se c'e' qualcosa da processare
Dim nNumTaskToProcess As Integer = 0
If ThreadIndex = 0 Then
nNumTaskToProcess = currWDC.numTask2proc
If nNumTaskToProcess > 0 Then
If Not m_bCheckOrder Then m_bCheckOrder = True
Else
If m_bCheckOrder Then m_bCheckOrder = False
Thread.Sleep(100)
End If
ElseIf m_bCheckOrder Then
nNumTaskToProcess = currWDC.numTask2proc
If nNumTaskToProcess = 0 Then
m_bCheckOrder = False
End If
stopWatch.Stop()
End If
End If
End If
If m_bCheckOrder Then
Dim LastRequest As Dictionary(Of String, String) = currWDC.queueList(1)
If LastRequest.Count > 0 Then
MyThreadData.SetThreadOperation(ThreadOperations.FoundRequest)
MyThreadData.SetCurrRequest(LastRequest.First())
Dim Item As KeyValuePair(Of String, String) = MyThreadData.CurrRequest
Dim bOk As Boolean = Not IsNothing(Item)
If bOk Then
' avvio cronometro
'stopWatch.Reset()
stopWatch.Restart()
' svuoto vecchio set file della porta richiesta
Dim fileList As String() = Directory.GetFiles(sCurrDdfDir, Item.Key + ".*")
' elimino vecchi
If Not IsNothing(fileList) Then
For Each sFile In fileList
Try
File.Delete(sFile)
Catch ex As Exception
End Try
Next
End If
' scrivo ddf
MyThreadData.SetThreadOperation(ThreadOperations.WritingDdf)
MyThreadData.SetDdfPath(sCurrDdfDir & "\" & Item.Key & ".ddf")
Dim sDdfPath As String = MyThreadData.sDdfPath
Try
File.WriteAllText(sDdfPath, Item.Value)
Catch ex As Exception
bOk = False
End Try
If bOk Then
MyThreadData.SetThreadOperation(ThreadOperations.ProcessingDdf)
Proc.StandardInput.WriteLine(ThreadIndex & "," & sDdfPath)
MyThreadData.SetWaitProcAnswer(ThreadData.ProcComm.WaitingAnswer)
End If
End If
Else
Thread.Sleep(100)
End If
Else
Thread.Sleep(100)
End If
Case ThreadData.ProcComm.WaitingAnswer
Thread.Sleep(10)
Case ThreadData.ProcComm.AnswerReceived
Dim Item As KeyValuePair(Of String, String) = MyThreadData.CurrRequest
Dim sDdfPath As String = MyThreadData.sDdfPath
Dim bOk As Boolean = True
' salvo exe time...
stopWatch.Stop()
lExeTime = stopWatch.ElapsedMilliseconds
stopWatch.Restart()
Dim procResults As New List(Of CalcResultDTO)
Dim currRes As New CalcResultDTO
Dim fContent As String = ""
MyThreadData.SetThreadOperation(ThreadOperations.ReadingSvg)
' verifico esistenza file svg e lo carico
bOk = GetFileContent(Path.ChangeExtension(sDdfPath, "svg"), fContent)
' invio risposta
currRes.Validated = MyThreadData.nProcResult = 0 AndAlso bOk
currRes.DoorIdVers = Item.Key
' se NON fosse validato --> messo il messaggio...
If (currRes.Validated) Then
currRes.SvgGen = fContent
Else
bOk = GetFileContent(Path.ChangeExtension(sDdfPath, "txt"), fContent)
currRes.ErrorMsg = fContent
End If
MyThreadData.SetThreadOperation(ThreadOperations.SendResult)
procResults.Add(currRes)
Dim respPut As String = currWDC.SendProcResults(procResults)
stopWatch.Stop()
lOtherTime = stopWatch.ElapsedMilliseconds
CurrPocStat.IncrementDoneRequest()
' aggiorno thread display...
UpdateThreadList(Item.Key, lExeTime, lOtherTime)
' cambio nomi file generati in old
Dim OldSvg As String = Path.ChangeExtension(sDdfPath, "svg")
Dim NewSvg As String = Path.GetDirectoryName(sDdfPath) & "\" & Path.GetFileNameWithoutExtension(sDdfPath) & "_old.svg"
Try
File.Delete(NewSvg)
Catch ex As Exception
End Try
Try
File.Delete(Path.ChangeExtension(NewSvg, "txt"))
Catch ex As Exception
End Try
Try
File.Delete(Path.ChangeExtension(NewSvg, "log"))
Catch ex As Exception
End Try
Try
File.Delete(Path.ChangeExtension(NewSvg, "nge"))
Catch ex As Exception
End Try
Try
File.Delete(Path.ChangeExtension(NewSvg, "ddf"))
Catch ex As Exception
End Try
Try
File.Move(OldSvg, NewSvg)
Catch ex As Exception
End Try
Try
File.Move(Path.ChangeExtension(OldSvg, "txt"), Path.ChangeExtension(NewSvg, "txt"))
Catch ex As Exception
End Try
Try
File.Move(Path.ChangeExtension(OldSvg, "log"), Path.ChangeExtension(NewSvg, "log"))
Catch ex As Exception
End Try
Try
File.Move(Path.ChangeExtension(OldSvg, "nge"), Path.ChangeExtension(NewSvg, "nge"))
Catch ex As Exception
End Try
Try
File.Move(Path.ChangeExtension(OldSvg, "ddf"), Path.ChangeExtension(NewSvg, "ddf"))
Catch ex As Exception
End Try
MyThreadData.SetWaitProcAnswer(ThreadData.ProcComm.Null)
End Select
End While
CurrPocStat.SetStopProc(DateTime.Now)
If m_bStopProcess Then
Proc.StandardInput.WriteLine("quit")
End If
End While
End If
CurrThreadStat.SetStopThread(DateTime.Now)
MyThreadData.SetProcess(Nothing)
MyThreadData.SetThreadOperation(ThreadOperations.Closed)
End Sub
Private Sub Thread_OutputDataReceived(sender As Object, e As DataReceivedEventArgs)
Dim sResult As String = e.Data
If Not String.IsNullOrWhiteSpace(sResult) AndAlso sResult.StartsWith("#42315#,") Then
Dim Results() As String = sResult.Split(","c)
If Results.Count >= 2 Then
Dim nIndex As Integer = -1
Dim nResult As Integer = -1
If Integer.TryParse(Results(1), nIndex) AndAlso nIndex >= 0 Then
If Integer.TryParse(Results(2), nResult) AndAlso nResult >= 0 Then
ThreadDataList(nIndex).SetProcResult(nResult)
End If
ThreadDataList(nIndex).SetWaitProcAnswer(ThreadData.ProcComm.AnswerReceived)
End If
End If
End If
End Sub
Private Sub TimerProgBar_Tick(sender As Object, e As EventArgs) Handles TimerProgBar.Tick
' esegue refresh prog bar
performBarAdvance()
@@ -947,7 +1243,17 @@ Public Class ProcMan
Private Sub ProcMan_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
' forzo chiusura threads!
stopAllThreads()
If m_ProgramStatus = ProgramStatuses.START Then stopAllThreads()
EgtExit()
' fix timer
TimerProgBar.Stop()
TimerProgBar.Enabled = False
TimerResetProcessing.Stop()
TimerResetProcessing.Enabled = False
TimerUI.Stop()
TimerUI.Enabled = False
TimerCheck.Stop()
TimerCheck.Enabled = False
End Sub
Private Sub chkAutoRestart_CheckedChanged(sender As Object, e As EventArgs) Handles chkAutoRestart.CheckedChanged
@@ -991,6 +1297,151 @@ Public Class ProcMan
startAllThreads()
End Sub
Private Sub ProcMan_Load(sender As Object, e As EventArgs) Handles MyBase.Load
m_IniFilePath = AppDomain.CurrentDomain.BaseDirectory & INI_FILE_NAME
ManageInstance()
'' Imposto tipo di chiave
'EgtSetLockType(KEY_TYPE.HW)
'' Leggo e imposto chiave di protezione
'Dim sLicFileName As String = String.Empty
'GetPrivateProfileString(S_GENERAL, K_LICENCE, LIC_FILE_NAME, sLicFileName, m_IniFilePath)
'Dim sLicFile As String = AppDomain.CurrentDomain.BaseDirectory & sLicFileName
'Dim sKey As String = String.Empty
'EgtUILib.GetPrivateProfileString(S_LICENCE, K_KEY, "", sKey, sLicFile)
'EgtSetKey(sKey)
'Dim bNetHwKey As Boolean = (GetPrivateProfileInt(S_GENERAL, K_NETKEY, 0, m_IniFilePath) = 1)
'EgtSetNetHwKey(bNetHwKey)
'Dim sLockId As String = ""
'EgtUILib.GetPrivateProfileString(S_LICENCE, K_LOCKID, "", sLockId, sLicFile)
'If Not String.IsNullOrEmpty(sLockId) Then
' Dim x = EgtSetLockId(sLockId)
'End If
'' Recupero livello e opzioni della chiave
'Dim nKeyLevel As Integer = 0
'Dim nKeyOptions As Integer = 0
'Dim bKey As Boolean = EgtGetKeyLevel(9935, 2505, 1, nKeyLevel) And
' EgtGetKeyOptions(9935, 2505, 1, nKeyOptions)
' Inizializzazione generale di EgtInterface
m_sLogFile = AppDomain.CurrentDomain.BaseDirectory & GENLOG_FILE_NAME.Replace("#", m_nInstance.ToString())
Dim sLogMsg As String = "User " & Environment.MachineName & "\" & Environment.UserName & " (" & m_nInstance.ToString() & ")" & vbLf &
My.Application.Info.Title.ToString() & " ver. " &
My.Application.Info.Version.Major.ToString() &
"." & My.Application.Info.Version.Minor.ToString() &
(ChrW(97 - 1 + My.Application.Info.Version.Build)).ToString() &
My.Application.Info.Version.Revision.ToString()
EgtInit(0, m_sLogFile, sLogMsg)
'If Not bKey Then
' MessageBox.Show("No licences available!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
' End
'End If
' leggo sorgente richieste rest da ini
GetPrivateProfileString(S_GENERAL, K_BASEIP, "", baseIp, m_IniFilePath)
GetPrivateProfileString(S_GENERAL, K_BASEURL, "", baseUrl, m_IniFilePath)
' inizializzo oggetto web
currWDC = New WDC(baseIp, baseUrl, codPost)
txtNumThread.Text = GetPrivateProfileInt(S_GENERAL, K_STARTINSTANCES, 1, m_IniFilePath).ToString()
' recupero path EgtEngine
GetPrivateProfileString(S_GENERAL, K_PROCESSPATH, "", sEgtEnginePath, m_IniFilePath)
MyBase.Text = baseUrl
End Sub
Dim m_objMutex As Mutex
Dim m_bFirstInstance As Boolean
Dim m_nInstance As Integer
Dim m_IniFilePath As String = ""
Dim m_sLogFile As String = ""
Private Sub ManageInstance()
Dim bCreated As Boolean
Try
Dim sMutexName As String = "Global\WebDoorCreator.CamSrv"
GetPrivateProfileString(S_GENERAL, K_MUTEXNAME, sMutexName, sMutexName, m_IniFilePath)
m_objMutex = New Mutex(False, sMutexName, bCreated)
Catch
bCreated = False
End Try
m_bFirstInstance = bCreated
If bCreated Then
' Prima istanza
m_nInstance = 1
' Aggiorno stato istanze attive
WritePrivateProfileString(S_GENERAL, K_INSTANCES, m_nInstance.ToString(), m_IniFilePath)
Else
' Leggo il massimo numero di istanze ammesse
Const MAX_INST As Integer = 32
Dim nMaxInst As Integer = GetPrivateProfileInt(S_GENERAL, K_MAXINST, 1, m_IniFilePath)
nMaxInst = Math.Max(1, Math.Min(nMaxInst, MAX_INST))
' Cerco il primo indice di istanza libero
Dim nTmp As Integer = GetPrivateProfileInt(S_GENERAL, K_INSTANCES, 0, m_IniFilePath)
m_nInstance = 1
Dim nMask As Integer = 1
While (nTmp And nMask) <> 0 And m_nInstance <= MAX_INST
m_nInstance += 1
nMask *= 2
End While
' Se l'indice supera il massimo
If m_nInstance > nMaxInst Then
' porto in primo piano la prima istanza
Dim bFound As Boolean = False
' processi del programma a 32 bit
Dim localProc As Process() = Process.GetProcessesByName("WebDoorCreator.CamSrv")
For Each p As Process In localProc
If p.Id <> Process.GetCurrentProcess().Id Then
bFound = True
ShowWindow(p.MainWindowHandle, 1)
Exit For
End If
Next
' se non trovati processi a 32 bit provo a 64 bit
If Not bFound Then
localProc = Process.GetProcessesByName("IcarusR64")
For Each p As Process In localProc
If p.Id <> Process.GetCurrentProcess().Id Then
bFound = True
ShowWindow(p.MainWindowHandle, SW.RESTORE)
Exit For
End If
Next
End If
' esco dal programma
End
End If
' Aggiorno stato istanze attive
nTmp += (1 << (m_nInstance - 1))
WritePrivateProfileString(S_GENERAL, K_INSTANCES, nTmp.ToString(), m_IniFilePath)
End If
End Sub
Friend Function GetMaxInstances() As Integer
' Leggo il massimo numero di istanze ammesse
Dim nMaxInst As Integer = GetPrivateProfileInt(S_GENERAL, K_MAXINST, 1, m_IniFilePath)
Return 1 ' Max(1, Min(nMaxInst, MAX_INST))
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' chiudo tutti i processi EgtEngine
' processi del programma a 32 bit
Dim localProc As Process() = Process.GetProcessesByName("EgtEngineR32")
For Each p As Process In localProc
p.Kill()
Next
localProc = Process.GetProcessesByName("EgtEngineR64")
For Each p As Process In localProc
p.Kill()
Next
End Sub
Private Sub TimerResetProcessing_Tick(sender As Object, e As EventArgs) Handles TimerResetProcessing.Tick
If Not IsNothing(currWDC) Then
currWDC.ResetQueueProcessing()
End If
End Sub
#End Region
End Class
@@ -50,7 +50,32 @@
<PropertyGroup>
<ApplicationIcon>Resources\Temp.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\x64\Debug\</OutputPath>
<DocumentationFile>WebDoorCreator.CamSrv.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<DefineTrace>true</DefineTrace>
<OutputPath>bin\x64\Release\</OutputPath>
<DocumentationFile>WebDoorCreator.CamSrv.xml</DocumentationFile>
<Optimize>true</Optimize>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="EgtUILib, Version=2.5.5.1, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\ExtLib\EgtUILib.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\DemoServer\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
@@ -96,6 +121,7 @@
<Import Include="System.Threading.Tasks" />
</ItemGroup>
<ItemGroup>
<Compile Include="ConstIni.vb" />
<Compile Include="ProcMan.vb">
<SubType>Form</SubType>
</Compile>
+13
View File
@@ -26,6 +26,8 @@ namespace WebDoorCreator.Core
public static readonly string CALC_REQ_PROC = $"{BASE_HASH}:CalcRequests:Processing";
public static readonly string CALC_REQ_DDF_CACHE = $"{BASE_HASH}:CalcRequests:CacheDDF";
public static readonly string CALC_REQ_SVG_CACHE = $"{BASE_HASH}:CalcRequests:CacheSVG";
public static readonly string DOOR_TPL_LIST = $"{BASE_HASH}:Template:DoorList";
// REDIS Channels messaggi x QueueMan (verso UI/srv)
public static readonly string CALC_REQ_QUEUE = $"CalcRequest";
@@ -45,12 +47,23 @@ namespace WebDoorCreator.Core
public const string rKeyListValues = $"{redisBaseAddr}:Cache:ListValues";
public const string rKeyDoorLast = $"{redisBaseAddr}:Cache:DoorList";
public const string rKeyDoorsByOrder = $"{redisBaseAddr}:Cache:DoorsByOrder";
public const string rKeyOrderByComp = $"{redisBaseAddr}:Cache:OrderByComp";
public const string rKeyOrderDetail = $"{redisBaseAddr}:Cache:OrderDetail";
public const string rKeyOrderStatus = $"{redisBaseAddr}:Cache:OrderStatus";
public const string rKeyRoles = $"{redisBaseAddr}:Cache:Roles";
public const string rKeyUsers = $"{redisBaseAddr}:Cache:Users";
public const string rKeyUsersAll = $"{redisBaseAddr}:Cache:UsersAll";
public const string rKeyUsersData = $"{redisBaseAddr}:Cache:UsersData";
public const string rKeyUsersDataSearch = $"{rKeyUsersData}:Search";
public const string rKeyUsersView = $"{redisBaseAddr}:Cache:UsersView";
public const string rKeyVocLemma = $"{redisBaseAddr}:Cache:VocLemma";
public const string rKeyVocLemmaTEMP = $"{redisBaseAddr}:Cache:VocLemmaTEMP";
public const string rKeyLanguage = $"{redisBaseAddr}:Cache:Languages";
public const string rKeyDirsScan = $"{redisBaseAddr}:Cache:Scan";
/// <summary>
/// variabili accessorie ulteriori
/// </summary>
public const int StatusIdTemplate = 10000;
}
}
+9 -1
View File
@@ -4,7 +4,7 @@
{
#region Public Enums
public enum UserLevel
{
@@ -32,6 +32,14 @@
CodeDescending
}
public enum fileStatus
{
none = 0,
add,
mod,
rem
}
#endregion Public Enums
}
}
@@ -6,9 +6,9 @@ namespace WebDoorCreator.Core.ReportViewer
{
public class ReportItem
{
public string Description { get; set; }
public decimal Price { get; set; }
public int Qty { get; set; }
public string Description { get; set; } = "";
public decimal Price { get; set; } = 0;
public int Qty { get; set; } = 0;
public decimal Total => Price * Qty;
}
}
@@ -15,9 +15,8 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="EntityFrameworkCore.SqlServer.HierarchyId" Version="3.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.14" />
<PackageReference Include="NLog" Version="5.1.2" />
<PackageReference Include="NLog" Version="5.2.2" />
<PackageReference Include="ReportViewerCore.NETCore" Version="15.1.17" />
<PackageReference Include="ToDataTable" Version="0.1.2" />
<PackageReference Include="YamlDotNet" Version="13.1.0" />
+8 -2
View File
@@ -3,6 +3,7 @@ using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using NLog;
using NLog.Fluent;
using YamlDotNet.Serialization;
namespace WebDoorCreator.Data
{
@@ -13,13 +14,16 @@ namespace WebDoorCreator.Data
private IConfiguration _configuration { get; set; } = null!;
public ApplicationDbContext()
{
Log.Info($"ApplicationDbContext Init");
try
{
// se non ci fosse... crea o migra!
Database.Migrate();
}
catch (Exception exc)
{ }
{
Log.Error($"Exc during ApplicationDbContext() init:{Environment.NewLine}{exc}");
}
}
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options, IConfiguration configuration) : base(options)
{
@@ -34,7 +38,9 @@ namespace WebDoorCreator.Data
Database.Migrate();
}
catch (Exception exc)
{ }
{
Log.Error($"Exc during ApplicationDbContext(DbContextOptions<ApplicationDbContext> options, IConfiguration configuration) init:{Environment.NewLine}{exc}");
}
}
}
protected override void OnModelCreating(ModelBuilder builder)
+2 -2
View File
@@ -21,11 +21,11 @@ namespace WebDoorCreator.Data
#endregion Public Methods
protected ConfigModel seedConfig(string chaive, string valore, string valoreStd, string note)
protected ConfigModel seedConfig(string chiave, string valore, string valoreStd, string note)
{
var newRec = new ConfigModel()
{
chiave = chaive,
chiave = chiave,
valore = valore,
valoreStd = valoreStd,
note = note
@@ -21,59 +21,6 @@ namespace WebDoorCreator.Data.Controllers
#region Public Methods
/// <summary>
/// Adding a new User
/// </summary>
/// <param name="addEditRec">Record to edit or add</param>
/// <returns></returns>
public async Task<bool> UserAddMod(AspNetUsers addEditRec)
{
bool fatto = false;
//List<ItemModel> dbResult = new List<ItemModel>();
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
{
try
{
var currRec = localDbCtx
.DbSetUsers
.Where(x => x.Id == addEditRec.Id)
.FirstOrDefault();
//if is not null edit the record found
if (currRec != null)
{
currRec.Id = addEditRec.Id;
currRec.UserName = addEditRec.UserName;
currRec.NormalizedUserName = addEditRec.NormalizedUserName;
currRec.Email = addEditRec.Email;
currRec.EmailConfirmed = addEditRec.EmailConfirmed;
currRec.LockoutEnabled = addEditRec.LockoutEnabled;
currRec.LockoutEnd = addEditRec.LockoutEnd;
currRec.ConcurrencyStamp = addEditRec.ConcurrencyStamp;
currRec.SecurityStamp = addEditRec.SecurityStamp;
currRec.AccessFailedCount = addEditRec.AccessFailedCount;
currRec.PhoneNumberConfirmed = addEditRec.PhoneNumberConfirmed;
currRec.PhoneNumber = addEditRec.PhoneNumber;
currRec.TwoFactorEnabled = addEditRec.TwoFactorEnabled;
localDbCtx.Entry(currRec).State = EntityState.Modified;
}
//if is null add the record as new in the table
else
{
localDbCtx
.DbSetUsers
.Add(addEditRec);
}
await localDbCtx.SaveChangesAsync();
fatto = true;
}
catch (Exception exc)
{
Log.Error($"Eccezione durante CompanyAddMod: {Environment.NewLine}{exc}");
}
}
return fatto;
}
/// <summary>
/// Adding a new company
/// </summary>
@@ -248,6 +195,60 @@ namespace WebDoorCreator.Data.Controllers
return fatto;
}
/// <summary>
/// Getting door list 2 delete
/// </summary>
/// <returns></returns>
public List<DoorModel>? DoorGet2Del()
{
List<DoorModel>? dbResult = new List<DoorModel>();
// retrieving data from db
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
{
try
{
// extracting entire set
dbResult = localDbCtx.DbSetDoor
.Where(x => x.isLogicDel)
.AsNoTracking()
.ToList();
}
catch (Exception exc)
{
Log.Error($"Error in DoorGet2Del:{Environment.NewLine}{exc}");
}
}
return dbResult;
}
/// <summary>
/// Getting door data by key
/// </summary>
/// <returns></returns>
public DoorModel? DoorGetByKey(int doorId)
{
DoorModel? dbResult = new DoorModel();
// retrieving data from db
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
{
try
{
// extracting entire set
dbResult = localDbCtx.DbSetDoor
.Where(x => x.DoorId == doorId)
.Include(o => o.OrderNav)
.OrderBy(x => x.DoorId)
.AsNoTracking()
.FirstOrDefault();
}
catch (Exception exc)
{
Log.Error($"Error in DoorGetByKey:{Environment.NewLine}{exc}");
}
}
return dbResult;
}
/// <summary>
/// Adding a new door
/// </summary>
@@ -282,52 +283,6 @@ namespace WebDoorCreator.Data.Controllers
return newId;
}
/// <summary>
/// Adding or removing a single door
/// </summary>
/// <param name="doorId">Record id to edit or add</param>
/// <param name="isAdd">States if it has to be added or removing a door</param>
/// <returns></returns>
public async Task<bool> DoorModQty(int NewQty, int doorId, bool isAdd)
{
/* crea nuovo metodo per modifica singola quantità porta: DOORMODQTY */
bool fatto = false;
//List<ItemModel> dbResult = new List<ItemModel>();
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
{
try
{
var currRec = localDbCtx
.DbSetDoor
.Where(x => x.DoorId == doorId)
.FirstOrDefault();
if (currRec != null) //if is not null edit the record found
{
if (NewQty > 0)
{
currRec.Quantity = NewQty;
}
else if (isAdd)
{
currRec.Quantity = currRec.Quantity + 1;
}
else
{
currRec.Quantity = currRec.Quantity - 1;
}
localDbCtx.Entry(currRec).State = EntityState.Modified;
}
await localDbCtx.SaveChangesAsync();
fatto = true;
}
catch (Exception exc)
{
Log.Error($"Eccezione durante DoorModQty: {Environment.NewLine}{exc}");
}
}
return fatto;
}
/// <summary>
/// Delete doorOp instance
/// </summary>
@@ -496,6 +451,45 @@ namespace WebDoorCreator.Data.Controllers
return fatto;
}
/// <summary>
/// Adding new DoorOpType data
/// </summary>
/// <param name="addRec">Record to add</param>
/// <returns></returns>
public async Task<bool> DoorOpTypeAdd(List<DoorOpTypeTempModel> addList)
{
bool fatto = false;
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
{
try
{
// stored di reset ListValues
var storedRes = localDbCtx
.Database
.ExecuteSqlRaw("exec dbo.stp_DoorOpType_Prepare");
await localDbCtx.SaveChangesAsync();
// import massivo dati in tab temp
localDbCtx
.DbSetDoorOpTypeTemp
.AddRange(addList);
await localDbCtx.SaveChangesAsync();
// stored di merge dati in DoorOpType
storedRes = localDbCtx
.Database
.ExecuteSqlRaw("exec dbo.stp_DoorOpType_Import");
fatto = true;
}
catch (Exception exc)
{
Log.Error($"Eccezione durante DoorOpTypeAdd: {Environment.NewLine}{exc}");
}
}
return fatto;
}
/// <summary>
/// Adding a new DoorOpType
/// </summary>
@@ -547,6 +541,31 @@ namespace WebDoorCreator.Data.Controllers
return dbResult;
}
/// <summary>
/// Retrieving data from door operation type table filtered by path
/// </summary>
/// <returns></returns>
public List<DoorOpTypeModel> DoorOpTypeGetByPath(string path)
{
List<DoorOpTypeModel> dbResult = new List<DoorOpTypeModel>();
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
{
try
{
dbResult = localDbCtx
.DbSetDoorOpType
.Where(x => x.OpCode.StartsWith(path))
.OrderBy(x => x.DoorOpTypId)
.ToList();
}
catch (Exception exc)
{
Log.Error($"Error in DoorOpTypeGetByPath:{Environment.NewLine}{exc}");
}
}
return dbResult;
}
public async Task<List<DoorOpTypeModel>> DoorOpTypeGetDefault()
{
List<DoorOpTypeModel> dbResult = new List<DoorOpTypeModel>();
@@ -568,6 +587,117 @@ namespace WebDoorCreator.Data.Controllers
return dbResult;
}
/// <summary>
/// Retrieving data from door operation type table filtered by Hw Code
/// </summary>
/// <returns></returns>
public List<DoorOpTypeModel> DoorOpTypeGetFiltered(string hwCode, int parentId)
{
List<DoorOpTypeModel> dbResult = new List<DoorOpTypeModel>();
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
{
try
{
if (hwCode == "*" && parentId == -1)
{
// extracting entire set
dbResult = localDbCtx
.DbSetDoorOpType
.OrderBy(x => x.DoorOpTypId)
.ToList();
}
else if (hwCode != "*" && parentId == -1)
{
dbResult = localDbCtx
.DbSetDoorOpType
.Where(x => x.HwCode == hwCode)
.OrderBy(x => x.DoorOpTypId)
.ToList();
}
else if (hwCode == "*" && parentId >= 0)
{
dbResult = localDbCtx
.DbSetDoorOpType
.Where(x => x.ParentId == parentId)
.OrderBy(x => x.DoorOpTypId)
.ToList();
}
else if (hwCode != "*" && parentId >= 0)
{
dbResult = localDbCtx
.DbSetDoorOpType
.Where(x => (x.ParentId == parentId) && x.HwCode == hwCode)
.OrderBy(x => x.DoorOpTypId)
.ToList();
}
}
catch (Exception exc)
{
Log.Error($"Error in DoorOpTypeGetAll:{Environment.NewLine}{exc}");
}
}
return dbResult;
}
/// <summary>
/// Modifying doorOpType
/// </summary>
/// <param name="addEditRec">Record to edit</param>
/// <returns></returns>
public async Task<bool> DoorOpTypeUpdate(DoorOpTypeModel addEditRec)
{
bool fatto = false;
//List<ItemModel> dbResult = new List<ItemModel>();
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
{
try
{
var currRec = localDbCtx
.DbSetDoorOpType
.Where(x => x.DoorOpTypId == addEditRec.DoorOpTypId)
.FirstOrDefault();
//if is not null edit the record found
if (currRec != null)
{
currRec.ParentId = addEditRec.ParentId;
currRec.OpCode = addEditRec.OpCode;
currRec.Description = addEditRec.Description;
currRec.IsDefault = addEditRec.IsDefault;
currRec.HasHw = addEditRec.HasHw;
currRec.IsConcrete = addEditRec.IsConcrete;
currRec.HwCode = addEditRec.HwCode;
currRec.HwDescription = addEditRec.HwDescription;
currRec.DisplayUrl = addEditRec.DisplayUrl;
currRec.FPath = addEditRec.FPath;
currRec.UnitCost = addEditRec.UnitCost;
currRec.ExtOpCode = addEditRec.ExtOpCode;
currRec.ExtDescript = addEditRec.ExtDescript;
currRec.Rev = addEditRec.Rev;
currRec.ValidFrom = addEditRec.ValidFrom;
currRec.ValidUntil = addEditRec.ValidUntil;
currRec.FileMD5 = addEditRec.FileMD5;
currRec.FileDim = addEditRec.FileDim;
currRec.LastMod = addEditRec.LastMod;
localDbCtx.Entry(currRec).State = EntityState.Modified;
}
//if is null add the record as new in the table
else
{
localDbCtx
.DbSetDoorOpType
.Add(addEditRec);
}
await localDbCtx.SaveChangesAsync();
fatto = true;
}
catch (Exception exc)
{
Log.Error($"Eccezione durante DoorOpTypeUpdate: {Environment.NewLine}{exc}");
}
}
return fatto;
}
/// <summary>
/// Update door's OP
/// </summary>
@@ -623,7 +753,6 @@ namespace WebDoorCreator.Data.Controllers
.DbSetDoor
.Where(x => x.OrderId == orderId)
.Include(o => o.OrderNav)
.Include(t => t.TypeNav)
.OrderBy(x => x.DoorId)
.AsNoTracking()
.ToList();
@@ -652,7 +781,6 @@ namespace WebDoorCreator.Data.Controllers
dbResult = localDbCtx
.DbSetDoor
.Include(o => o.OrderNav)
.Include(t => t.TypeNav)
.OrderByDescending(x => x.DoorId)
.Take(numRec)
.AsNoTracking()
@@ -666,6 +794,43 @@ namespace WebDoorCreator.Data.Controllers
return dbResult;
}
/// <summary>
/// Update costing for dictionary of doors
/// </summary>
/// <param name="DoorUnitCosts"></param>
/// <returns></returns>
public async Task<bool> DoorUpdateCosts(Dictionary<int, decimal> DoorUnitCosts)
{
bool fatto = false;
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
{
try
{
// ciclo x ogni porta...
foreach (var item in DoorUnitCosts)
{
var currRec = localDbCtx
.DbSetDoor
.Where(x => x.DoorId == item.Key)
.FirstOrDefault();
if (currRec != null) //if is not null edit the record found
{
currRec.UnitCost = item.Value;
localDbCtx.Entry(currRec).State = EntityState.Modified;
}
}
await localDbCtx.SaveChangesAsync();
fatto = true;
}
catch (Exception exc)
{
Log.Error($"Eccezione durante DoorUpdateCosts: {Environment.NewLine}{exc}");
}
}
return fatto;
}
/// <summary>
/// Modifying or adding a new door
/// </summary>
@@ -683,12 +848,19 @@ namespace WebDoorCreator.Data.Controllers
.DbSetDoor
.Where(x => x.DoorId == addEditRec.DoorId)
.FirstOrDefault();
if (currRec != null) //if is not null edit the record found
//if is not null edit the record found
if (currRec != null)
{
currRec.Quantity = addEditRec.Quantity;
currRec.DoorExtCode = addEditRec.DoorExtCode;
currRec.DoorDescript = addEditRec.DoorDescript;
currRec.ParentId = addEditRec.ParentId;
currRec.isLogicDel = addEditRec.isLogicDel;
currRec.UnitCost = addEditRec.UnitCost;
localDbCtx.Entry(currRec).State = EntityState.Modified;
}
else //if is null add the record as new in the table
//if is null add the record as new in the table
else
{
localDbCtx
.DbSetDoor
@@ -730,7 +902,7 @@ namespace WebDoorCreator.Data.Controllers
}
/// <summary>
/// Adding a new list value
/// Adding new list value set
/// </summary>
/// <param name="addRec">Record to add</param>
/// <returns></returns>
@@ -753,14 +925,12 @@ namespace WebDoorCreator.Data.Controllers
.AddRange(addList);
await localDbCtx.SaveChangesAsync();
// stored di merge dati in vocabolario
// stored di merge dati in ListVal
storedRes = localDbCtx
.Database
.ExecuteSqlRaw("exec dbo.stp_ListVal_Import");
fatto = true;
fatto = true;
}
catch (Exception exc)
{
@@ -820,10 +990,10 @@ namespace WebDoorCreator.Data.Controllers
/// Adding a new order
/// </summary>
/// <param name="addRec">Record to add</param>
/// <returns></returns>
public async Task<bool> OrderAdd(OrderModel addRec)
/// <returns>OrderId</returns>
public async Task<int> OrderAdd(OrderModel addRec)
{
bool fatto = false;
int newOrdId = 0;
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
{
try
@@ -832,16 +1002,75 @@ namespace WebDoorCreator.Data.Controllers
.DbSetOrders
.Add(addRec);
await localDbCtx.SaveChangesAsync();
fatto = true;
newOrdId = addRec.OrderId;
}
catch (Exception exc)
{
Log.Error($"Eccezione durante OrderAdd: {Environment.NewLine}{exc}");
}
}
return newOrdId;
}
/// <summary>
/// Duplicazione di un ordine da SRC a DEST (Doors + DoorOp)
/// </summary>
/// <param name="OrdIdSrc"></param>
/// <param name="OrdIdDest"></param>
/// <param name="UsrIdMod"></param>
/// <returns></returns>
public async Task<bool> OrderDuplicate(int OrdIdSrc, int OrdIdDest, string UsrIdMod)
{
await Task.Delay(1);
bool fatto = false;
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
{
try
{
var OrderIdSrc = new SqlParameter("@OrderIdSrc", OrdIdSrc);
var OrderIdDest = new SqlParameter("@OrderIdDest", OrdIdDest);
var UserIdMod = new SqlParameter("@UserIdMod", UsrIdMod);
// stored di cloning dati ordine
var storedRes = localDbCtx
.Database
.ExecuteSqlRaw("exec dbo.stp_OrderClone @OrderIdSrc, @OrderIdDest, @UserIdMod", OrderIdSrc, OrderIdDest, UserIdMod);
fatto = true;
}
catch (Exception exc)
{
Log.Error($"Eccezione durante OrderDuplicate:{Environment.NewLine}{exc}");
}
}
return fatto;
}
public List<OrderModel> OrderGetByCompStatus(int CompanyId, int StatusId)
{
List<OrderModel> dbResult = new List<OrderModel>();
using (var dbCtx = new WDCDataContext(_configuration))
{
try
{
var rawData = dbCtx
.DbSetOrders
.Where(x => x.CompanyId == CompanyId && x.Status == StatusId)
.AsNoTracking()
.ToList();
if (rawData != null)
{
dbResult = rawData;
}
}
catch (Exception exc)
{
Log.Error($"Error in OrderGetByCompStatus:{Environment.NewLine}{exc}");
}
}
return dbResult;
}
public OrderModel OrderGetByKey(int orderId)
{
OrderModel dbResult = new OrderModel();
@@ -852,6 +1081,7 @@ namespace WebDoorCreator.Data.Controllers
var rawData = dbCtx
.DbSetOrders
.Where(x => x.OrderId == orderId)
.Include(c => c.CompanyNav)
.AsNoTracking()
.FirstOrDefault();
if (rawData != null)
@@ -932,13 +1162,83 @@ namespace WebDoorCreator.Data.Controllers
return dbResult;
}
/// <summary>
/// Updating an order code/description
/// </summary>
/// <param name="orderId"></param>
/// <param name="newCode"></param>
/// <param name="newDescript"></param>
/// <returns></returns>
public async Task<bool> OrderUpdateDescript(int orderId, string newCode, string newDescript)
{
bool fatto = false;
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
{
try
{
var currRec = localDbCtx
.DbSetOrders
.Where(x => x.OrderId == orderId)
.FirstOrDefault();
//if is not null edit the record found
if (currRec != null)
{
currRec.OrderExtCode = newCode;
currRec.OrderDescript = newDescript;
localDbCtx.Entry(currRec).State = EntityState.Modified;
}
await localDbCtx.SaveChangesAsync();
fatto = true;
}
catch (Exception exc)
{
Log.Error($"Eccezione durante OrderUpdateDescript: {Environment.NewLine}{exc}");
}
}
return fatto;
}
/// <summary>
/// Updating an order promised date
/// </summary>
/// <param name="orderId"></param>
/// <param name="dateProm"></param>
/// <returns></returns>
public async Task<bool> OrderUpdatePromDate(int orderId, DateTime dateProm)
{
bool fatto = false;
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
{
try
{
var currRec = localDbCtx
.DbSetOrders
.Where(x => x.OrderId == orderId)
.FirstOrDefault();
//if is not null edit the record found
if (currRec != null)
{
currRec.DateProm = dateProm;
localDbCtx.Entry(currRec).State = EntityState.Modified;
}
await localDbCtx.SaveChangesAsync();
fatto = true;
}
catch (Exception exc)
{
Log.Error($"Eccezione durante OrderUpdatePromDate: {Environment.NewLine}{exc}");
}
}
return fatto;
}
/// <summary>
/// Updating an order status
/// </summary>
/// <param name="orderId"></param>
/// <param name="newStatus"></param>
/// <returns></returns>
public async Task<bool> OrderUpdate(int orderId, int newStatus)
public async Task<bool> OrderUpdateStatus(int orderId, int newStatus)
{
bool fatto = false;
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
@@ -953,6 +1253,19 @@ namespace WebDoorCreator.Data.Controllers
if (currRec != null)
{
currRec.Status = newStatus;
// controllo gli stati speciali...
if (newStatus == 10)
{
currRec.DateOrd = DateTime.MinValue;
}
else if (newStatus == 40)
{
currRec.DateOrd = DateTime.Now;
}
else if (newStatus == 70)
{
currRec.DateDelivery = DateTime.Now;
}
localDbCtx.Entry(currRec).State = EntityState.Modified;
}
await localDbCtx.SaveChangesAsync();
@@ -960,7 +1273,7 @@ namespace WebDoorCreator.Data.Controllers
}
catch (Exception exc)
{
Log.Error($"Eccezione durante OrderUpdate: {Environment.NewLine}{exc}");
Log.Error($"Eccezione durante OrderUpdateStatus: {Environment.NewLine}{exc}");
}
}
return fatto;
@@ -1095,6 +1408,59 @@ namespace WebDoorCreator.Data.Controllers
return dbResult;
}
/// <summary>
/// Adding a new User
/// </summary>
/// <param name="addEditRec">Record to edit or add</param>
/// <returns></returns>
public async Task<bool> UserAddMod(AspNetUsers addEditRec)
{
bool fatto = false;
//List<ItemModel> dbResult = new List<ItemModel>();
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
{
try
{
var currRec = localDbCtx
.DbSetUsers
.Where(x => x.Id == addEditRec.Id)
.FirstOrDefault();
//if is not null edit the record found
if (currRec != null)
{
currRec.Id = addEditRec.Id;
currRec.UserName = addEditRec.UserName;
currRec.NormalizedUserName = addEditRec.NormalizedUserName;
currRec.Email = addEditRec.Email;
currRec.EmailConfirmed = addEditRec.EmailConfirmed;
currRec.LockoutEnabled = addEditRec.LockoutEnabled;
currRec.LockoutEnd = addEditRec.LockoutEnd;
currRec.ConcurrencyStamp = addEditRec.ConcurrencyStamp;
currRec.SecurityStamp = addEditRec.SecurityStamp;
currRec.AccessFailedCount = addEditRec.AccessFailedCount;
currRec.PhoneNumberConfirmed = addEditRec.PhoneNumberConfirmed;
currRec.PhoneNumber = addEditRec.PhoneNumber;
currRec.TwoFactorEnabled = addEditRec.TwoFactorEnabled;
localDbCtx.Entry(currRec).State = EntityState.Modified;
}
//if is null add the record as new in the table
else
{
localDbCtx
.DbSetUsers
.Add(addEditRec);
}
await localDbCtx.SaveChangesAsync();
fatto = true;
}
catch (Exception exc)
{
Log.Error($"Eccezione durante CompanyAddMod: {Environment.NewLine}{exc}");
}
}
return fatto;
}
/// <summary>
/// Populating DTO to handle users
/// </summary>
@@ -1205,6 +1571,33 @@ namespace WebDoorCreator.Data.Controllers
return dbResult;
}
public async Task<VocabularyTempModel> VocLemmaFindByKeys(string lingua, string lemma)
{
await Task.Delay(1);
VocabularyTempModel dbResult = new VocabularyTempModel();
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
{
try
{
// import massivo dati in tab temp
var termSearch = localDbCtx
.DbSetVocabularyTemp
.Where(x => x.Lingua == lingua && x.Lemma == lemma)
.FirstOrDefault();
if (termSearch != null)
{
dbResult = termSearch;
}
}
catch (Exception exc)
{
Log.Error($"Eccezione durante VocLemmaCheckConf: {Environment.NewLine}{exc}");
}
}
return dbResult;
}
public Dictionary<string, Dictionary<string, string>> VocLemmaGetAll()
{
Dictionary<string, Dictionary<string, string>> DTOResult = new Dictionary<string, Dictionary<string, string>>();
@@ -1245,14 +1638,39 @@ namespace WebDoorCreator.Data.Controllers
/// <summary>
/// Aggiunta di un nuovo set di lemmi
/// </summary>
/// <param name="listNewTerms"></param>
/// <returns></returns>
public async Task<bool> VocLemmaInsert(List<VocabularyTempModel> listNewTerms)
public async Task<bool> VocLemmaInsert()
{
await Task.Delay(1);
bool fatto = false;
//var o = listNewTerms.Where(x => x.Traduzione.Length > 200).ToList();
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
{
try
{
//bool isOk = await VocLemmaInsertPrepare(listNewTerms);
// stored di merge dati in vocabolario
var storedRes = localDbCtx
.Database
.ExecuteSqlRaw("exec dbo.stp_Voc_Import");
fatto = true;
}
catch (Exception exc)
{
Log.Error($"Eccezione durante VocLemmaInsert: {Environment.NewLine}{exc}");
}
}
return fatto;
}
public async Task<bool> VocLemmaInsertPrepare(List<VocabularyTempModel> listNewTerms)
{
bool fatto = false;
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
{
try
@@ -1269,26 +1687,90 @@ namespace WebDoorCreator.Data.Controllers
.AddRange(listNewTerms);
await localDbCtx.SaveChangesAsync();
// stored di merge dati in vocabolario
storedRes = localDbCtx
.Database
.ExecuteSqlRaw("exec dbo.stp_Voc_Import");
fatto = true;
}
catch (Exception exc)
{
Log.Error($"Eccezione durante VocLemmaInsert: {Environment.NewLine}{exc}");
Log.Error($"Eccezione durante VocLemmaInsertPrepare: {Environment.NewLine}{exc}");
}
}
return fatto;
}
public async Task<bool> VocLemmaSetConf(string lingua, string lemma, bool isConf)
{
await Task.Delay(1);
bool fatto = false;
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
{
try
{
// import massivo dati in tab temp
var termSearch = localDbCtx
.DbSetVocabularyTemp
.Where(x => x.Lingua == lingua && x.Lemma == lemma)
.FirstOrDefault();
if (termSearch != null)
{
termSearch.IsConfSave = isConf;
localDbCtx.Entry(termSearch).State = EntityState.Modified;
await localDbCtx.SaveChangesAsync();
fatto = true;
}
}
catch (Exception exc)
{
Log.Error($"Eccezione durante VocLemmaSetConf: {Environment.NewLine}{exc}");
}
}
return fatto;
}
public Dictionary<string, Dictionary<string, string>> VocLemmaTEMPGetAll()
{
Dictionary<string, Dictionary<string, string>> DTOResult = new Dictionary<string, Dictionary<string, string>>();
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
{
try
{
List<string> lingue = new List<string>()
{
"IT",
"EN"
};
// extracting entire set
var allVoc = localDbCtx
.DbSetVocabularyTemp
.AsNoTracking()
.ToList();
foreach (var lingua in lingue)
{
Dictionary<string, string> dict = new Dictionary<string, string>();
foreach (var lemma in allVoc.Where(x => x.Lingua == lingua))
{
dict.Add(lemma.Lemma, lemma.Traduzione);
}
DTOResult.Add(lingua, dict);
}
}
catch (Exception exc)
{
Log.Error($"Error in VocLemmaTEMPGetAll:{Environment.NewLine}{exc}");
}
}
return DTOResult;
}
#endregion Public Methods
#region Private Fields
private static IConfiguration _configuration;
private static IConfiguration _configuration = null!;
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
#endregion Private Fields
+1 -1
View File
@@ -28,7 +28,7 @@ namespace WebDoorCreator.Data.DTO
/// </summary>
public string SvgGen { get; set; } = "";
/// <summary>
/// Articat path (ex 3d zip/pack)
/// Artifats path (ex 3d zip/pack)
/// </summary>
public string artifactPath { get; set; } = "";
}
+2 -5
View File
@@ -13,13 +13,10 @@ namespace WebDoorCreator.Data.DTO
public class DoorCostingDTO
{
public int DoorId { get; set; } = 0;
public double SizeX { get; set; } = 0;
public double SizeY { get; set; } = 0;
public double SizeZ { get; set; } = 0;
public int Quantity { get; set; } = 1;
public double EstimatedWorkTime { get; set; } = 0;
public Dictionary<string, double> BOMList { get; set; }= new Dictionary<string, double>();
public Dictionary<string, List<string>> BOMList { get; set; }= new Dictionary<string, List<string>>();
}
}
+35
View File
@@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WebDoorCreator.Data.DTO
{
/// <summary>
/// Door cost data DTO
/// </summary>
public class DoorPriceDTO
{
/// <summary>
/// Door UID
/// </summary>
public int OrderId { get; set; } = 0;
/// <summary>
/// Door UID
/// </summary>
public int DoorId { get; set; } = 0;
/// <summary>
/// Articat path (ex 3d zip/pack)
/// </summary>
public decimal UnitCost { get; set; } = 0;
/// <summary>
/// Valid = true / cannot deliver = false
/// </summary>
public bool Valid { get; set; } = true;
/// <summary>
/// Error message (optional)
/// </summary>
public string ErrorMsg { get; set; } = "";
}
}
+28
View File
@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static WebDoorCreator.Core.Enum;
namespace WebDoorCreator.Data.DTO
{
/// <summary>
/// File data DTO
/// </summary>
[Serializable]
public class FileDTO
{
//public string HwCode { get; set; } = "";
public string FileBaseDir { get; set; } = "";
//public string FileAbsPath { get; set; } = "";
public string FileRelPath { get; set; } = "";
public string FileMD5 { get; set; } = "";
public long FileDim { get; set; } = 0;
public DateTime lastModTime { get; set; } = DateTime.Now;
public fileStatus status { get; set; } = fileStatus.none;
public bool action { get; set; } = false;
}
}
+48 -8
View File
@@ -22,6 +22,11 @@ namespace WebDoorCreator.Data.DbModels
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int DoorId { get; set; }
/// <summary>
/// Parent element ID
/// </summary>
public int ParentId { get; set; }
/// <summary>
/// Ordine cui è associata la porta
/// </summary>
@@ -32,11 +37,6 @@ namespace WebDoorCreator.Data.DbModels
/// </summary>
public string MeasureUnit { get; set; } = "";
/// <summary>
/// Door's Type
/// </summary>
public int TypeId { get; set; } = 0;
/// <summary>
/// Codice esterno x riferimento (es ERP)
/// </summary>
@@ -88,11 +88,16 @@ namespace WebDoorCreator.Data.DbModels
/// </summary>
public string UserIdLock { get; set; } = "";
/// <summary>
/// Valore booleano per indicare se è in stato cancellazione logica
/// </summary>
public bool isLogicDel { get; set; } = false;
[ForeignKey("OrderId")]
public virtual OrderModel? OrderNav { get; set; }
[ForeignKey("TypeId")]
public virtual DoorTypeModel? TypeNav { get; set; }
//[ForeignKey("TypeId")]
// public virtual DoorTypeModel? TypeNav { get; set; }
public DoorModel ObjClone(string userId)
@@ -102,7 +107,7 @@ namespace WebDoorCreator.Data.DbModels
{
MeasureUnit = MeasureUnit,
OrderId = OrderId,
TypeId = TypeId,
ParentId = ParentId,
DoorExtCode = DoorExtCode,
DateIns = adesso,
UserIdIns = userId,
@@ -116,5 +121,40 @@ namespace WebDoorCreator.Data.DbModels
};
return answ;
}
public override bool Equals(object? obj)
{
if (obj == null)
return false;
if (!(obj is DoorModel item))
return false;
if (Quantity != item.Quantity)
return false;
if (DoorExtCode != item.DoorExtCode)
return false;
if (DoorDescript != item.DoorDescript)
return false;
if (UnitCost != item.UnitCost)
return false;
//if (MeasureUnit != item.MeasureUnit)
// return false;
//if (UnitCost != item.UnitCost)
// return false;
return true;
}
public override int GetHashCode()
{
return base.GetHashCode();
}
}
}
+9 -9
View File
@@ -131,11 +131,11 @@ namespace WebDoorCreator.Data.DbModels
}
}
/// <summary>
/// COmparazione tra il dizionario currVal corrente e quello ricevuto
/// Comparazione tra il dizionario currVal corrente e quello ricevuto
/// </summary>
/// <param name="newDict">Dizionario x comparazione</param>
/// <returns></returns>
public bool JsoncActValEquals(Dictionary<string, string> newDict)
public bool JsonActValEquals(Dictionary<string, string> newDict)
{
string JsonNewVal = JsonConvert.SerializeObject(newDict);
bool answ = JsoncActVal.Equals(JsonNewVal);
@@ -156,9 +156,10 @@ namespace WebDoorCreator.Data.DbModels
/// <summary>
/// Clone oggetto
/// </summary>
/// <param name="userId"></param>
/// <param name="userName"></param>
/// <param name="doorId"></param>
/// <returns></returns>
public DoorOpModel ObjClone(string userId, int doorId)
public DoorOpModel ObjClone(string userName, int doorId)
{
DoorOpModel answ = new DoorOpModel();
DateTime adesso = DateTime.Now;
@@ -168,8 +169,8 @@ namespace WebDoorCreator.Data.DbModels
{
DateIns = adesso,
DateMod = adesso,
UserIdIns = userId,
UserIdMod = userId,
UserIdIns = userName,
UserIdMod = userName,
ObjectId = ObjectId,
DoorId = DoorId,
JsoncConfigVal = JsoncConfigVal,
@@ -184,8 +185,8 @@ namespace WebDoorCreator.Data.DbModels
{
DateIns = adesso,
DateMod = adesso,
UserIdIns = userId,
UserIdMod = userId,
UserIdIns = userName,
UserIdMod = userName,
ObjectId = ObjectId,
DoorId = doorId,
JsoncConfigVal = JsoncConfigVal,
@@ -197,6 +198,5 @@ namespace WebDoorCreator.Data.DbModels
return answ;
}
}
}
+31 -13
View File
@@ -21,6 +21,11 @@ namespace WebDoorCreator.Data.DbModels
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int DoorOpTypId { get; set; }
/// <summary>
/// Indica Id del parent: se 0 sono root, altrimenti indica il type parent
/// </summary>
public int ParentId { get; set; } = 0;
/// <summary>
/// Codice univoco dell'operazione da svolgere (calcolato, idealmente 4 char da 36 val 0..Z)
/// </summary>
@@ -68,20 +73,14 @@ namespace WebDoorCreator.Data.DbModels
public string FPath { get; set; } = "";
/// <summary>
/// Idx univoco dell'elemento parent (se 0 = root)
/// Unit cost for the door
/// </summary>
public int ParentDoorOpId { get; set; } = 0;
public decimal UnitCost { get; set; } = 0;
/// <summary>
/// Idx univoco dell'elemento parent (se 0 = root)
/// </summary>
public HierarchyId? DoorOpIdPathFromPatriarch { get; set; }
/// <summary>
/// Oggetto Json per specifica configurazione (template)
/// </summary>
public string JsoncConfig { get; set; } = "";
///// <summary>
///// Oggetto Json per specifica configurazione (template)
///// </summary>
//public string JsoncConfig { get; set; } = "";
/// <summary>
/// Codice esterno (opzionale)
@@ -108,6 +107,21 @@ namespace WebDoorCreator.Data.DbModels
/// </summary>
public DateTime ValidUntil { get; set; } = new DateTime(3000, 1, 1);
/// <summary>
/// MD5 Calcolato per controllo uguaglianze
/// </summary>
public string FileMD5 { get; set; } = "";
/// <summary>
/// Dimensione file corrente
/// </summary>
public long FileDim { get; set; } = 0;
/// <summary>
/// Dimensione file corrente
/// </summary>
public DateTime LastMod { get; set; } = DateTime.Today;
/// <summary>
/// Check validità item
/// </summary>
@@ -116,7 +130,11 @@ namespace WebDoorCreator.Data.DbModels
{
get => DateTime.Today >= ValidFrom && DateTime.Today <= ValidUntil;
}
/// <summary>
/// Stato della door operation {-1=DELETED, 0=UNCHANGED, 1=ADDED, 2=MODIFIED}
/// </summary>
[NotMapped]
public int status { get; set; } = 0;
/// <summary>
/// Numero massimo associabile a singola Door
/// </summary>
@@ -0,0 +1,144 @@
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;
using Microsoft.EntityFrameworkCore;
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace WebDoorCreator.Data.DbModels
{
/// <summary>
/// Tabella dati Door Operation Type (astratte) TEMP
/// </summary>
[Table("DoorOpTypeTemp")]
public class DoorOpTypeTempModel
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int DoorOpTypId { get; set; }
/// <summary>
/// Codice univoco dell'operazione da svolgere (calcolato, idealmente 4 char da 36 val 0..Z)
/// </summary>
public string OpCode { get; set; } = "";
/// <summary>
/// Descrizione
/// </summary>
public string Description { get; set; } = "";
/// <summary>
/// Indica se sia da creare sempre
/// </summary>
public bool IsDefault { get; set; } = false;
/// <summary>
/// Indica se ci sia un hardware correlato all'operazione
/// </summary>
public bool HasHw { get; set; } = true;
/// <summary>
/// Indica se sia un oggetto concreto (= con un file, che si può produrre) o abstract (ha figli, è un gruppo logico)
/// </summary>
public bool IsConcrete { get; set; } = true;
/// <summary>
/// Codice dell'HW collegato
/// </summary>
public string HwCode { get; set; } = "";
/// <summary>
/// Descrizione dell'HW collegato
/// </summary>
public string HwDescription { get; set; } = "";
/// <summary>
/// URL dell'immagine/link di riferimento
/// </summary>
public string DisplayUrl { get; set; } = "";
/// <summary>
/// Path folder/file di riferimento
/// </summary>
public string FPath { get; set; } = "";
/// <summary>
/// Idx univoco dell'elemento parent (se 0 = root)
/// </summary>
public int ParentDoorOpId { get; set; } = 0;
///// <summary>
///// Idx univoco dell'elemento parent (se 0 = root)
///// </summary>
//public HierarchyId? DoorOpIdPathFromPatriarch { get; set; }
/// <summary>
/// Unit cost for the door
/// </summary>
public decimal UnitCost { get; set; } = 0;
///// <summary>
///// Oggetto Json per specifica configurazione (template)
///// </summary>
//public string JsoncConfig { get; set; } = "";
/// <summary>
/// Codice esterno (opzionale)
/// </summary>
public string ExtOpCode { get; set; } = "";
/// <summary>
/// Descrizione esterna (opzionale)
/// </summary>
public string ExtDescript { get; set; } = "";
/// <summary>
/// Revisione dell'item
/// </summary>
public string Rev { get; set; } = "";
/// <summary>
/// Inizio validità item
/// </summary>
public DateTime ValidFrom { get; set; } = new DateTime(2000, 1, 1);
/// <summary>
/// Fine validità item
/// </summary>
public DateTime ValidUntil { get; set; } = new DateTime(3000, 1, 1);
/// <summary>
/// MD5 Calcolato per controllo uguaglianze
/// </summary>
public string FileMD5 { get; set; } = "";
/// <summary>
/// Dimensione file corrente
/// </summary>
public long FileDim { get; set; } = 0;
/// <summary>
/// Data ultima modifica
/// </summary>
public DateTime LastMod { get; set; } = DateTime.Today;
/// <summary>
/// Check validità item
/// </summary>
[NotMapped]
public bool IsActive
{
get => DateTime.Today >= ValidFrom && DateTime.Today <= ValidUntil;
}
/// <summary>
/// Numero massimo associabile a singola Door
/// </summary>
public int MaxAllowed { get; set; } = 1;
}
}
@@ -1,34 +0,0 @@
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;
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace WebDoorCreator.Data.DbModels
{
/// <summary>
/// Tabella dati Door Type
/// </summary>
[Table("DoorType")]
public class DoorTypeModel
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int TypeId { get; set; }
/// <summary>
/// Codice univoco del modello
/// </summary>
public string TypeCode { get; set; } = "";
/// <summary>
/// Descrizione
/// </summary>
public string Description { get; set; } = "";
}
}
@@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WebDoorCreator.Data.DbModels
{
[Table("TestTable")]
public class IdentityTableSeedTest
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int IdUni { get; set; } = 0;
[MaxLength(50)]
public string Campo1 { get; set; } = "";
[MaxLength(500)]
public string Campo2 { get; set; } = "";
}
}
@@ -12,18 +12,33 @@ namespace WebDoorCreator.Data.DbModels
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
[Table("SerializedDoors")]
public partial class SerializedDoorsModel
[Table("ListValues")]
public partial class ListValuesModel
{
#region Public Properties
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int DoorTmpId { get; set; }
[MaxLength(50)]
public string TableName { get; set; }
public string DoorSerVal { get; set; }
[MaxLength(50)]
public string FieldName { get; set; }
public bool Lock { get; set; }
[MaxLength(250)]
public string Value { get; set; }
[MaxLength(250)]
public string Label { get; set; }
public int Ordinal { get; set; }
[MaxLength(50)]
public string InputType{ get; set; }
[MaxLength(100)]
public string DefaultVal { get; set; }
[MaxLength(5)]
public bool isSerializable { get; set; }
#endregion Public Properties
}
@@ -23,10 +23,10 @@ namespace WebDoorCreator.Data.DbModels
[MaxLength(50)]
public string FieldName { get; set; }
[MaxLength(50)]
[MaxLength(250)]
public string Value { get; set; }
[MaxLength(50)]
[MaxLength(250)]
public string Label { get; set; }
public int Ordinal { get; set; }
+22 -1
View File
@@ -51,6 +51,26 @@ namespace WebDoorCreator.Data.DbModels
/// </summary>
public string UserIdMod { get; set; } = "";
/// <summary>
/// Data promessa di consegna
/// </summary>
public DateTime DateDelivery { get; set; } = DateTime.Now.AddDays(60);
/// <summary>
/// Expected order delivery from DCA
/// </summary>
public DateTime DateProm { get; set; } = DateTime.Now.AddDays(60);
/// <summary>
/// Date Order confirmed by customer from Order table
/// </summary>
public DateTime DateOrd { get; set; }
/// <summary>
/// Eventuale sconto globale
/// </summary>
public double Discount { get; set; } = 0;
/// <summary>
/// Stato globale dell'ordine
/// </summary>
@@ -61,9 +81,10 @@ namespace WebDoorCreator.Data.DbModels
/// </summary>
public string OrderDescript { get; set; } = "";
[ForeignKey("CompanyId")]
public virtual CompanyModel? CompanyNav { get; set; }
}
}
@@ -14,7 +14,6 @@ namespace WebDoorCreator.Data.DbModels
/// <summary>
/// View to retrieve data from multiple tables
/// </summary>
//[Table("v_OrderStatus")]
public class OrderStatusViewModel
{
/// <summary>
@@ -70,5 +69,25 @@ namespace WebDoorCreator.Data.DbModels
/// TotCost represent the total cost of the order
/// </summary>
public decimal TotCost { get; set; } = 0;
/// <summary>
/// Expected order delivery from DCA
/// </summary>
public DateTime DateProm { get; set; } = DateTime.Now.AddDays(60);
/// <summary>
/// Date Order confirmed by customer from Order table
/// </summary>
public DateTime DateOrd { get; set; }
/// <summary>
/// Effective order delivery date
/// </summary>
public DateTime DateDelivery { get; set; }
/// <summary>
/// Eventuale sconto globale
/// </summary>
public double Discount { get; set; } = 0;
}
}
@@ -90,12 +90,15 @@ namespace WebDoorCreator.Data.DbModels
/// </summary>
public string VAT { get; set; } = "";
/// <summary>
/// Current Door ID
/// </summary>
public int DoorId { get; set; }
/// <summary>
/// Door's Type
/// Door's parent ID
/// </summary>
public int TypeId { get; set; } = 0;
public int ParentId { get; set; } = 0;
/// <summary>
/// Codice esterno x riferimento (es ERP)
@@ -12,33 +12,17 @@ namespace WebDoorCreator.Data.DbModels
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
[Table("ListValues")]
public partial class ListValuesModel
[Table("SerializedDoors")]
public partial class SerializedDoorsModel
{
#region Public Properties
[MaxLength(50)]
public string TableName { get; set; }
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int DoorTmpId { get; set; }
public string DoorSerVal { get; set; }
[MaxLength(50)]
public string FieldName { get; set; }
[MaxLength(50)]
public string Value { get; set; }
[MaxLength(50)]
public string Label { get; set; }
public int Ordinal { get; set; }
[MaxLength(50)]
public string InputType{ get; set; }
[MaxLength(100)]
public string DefaultVal { get; set; }
[MaxLength(5)]
public bool isSerializable { get; set; }
public bool Lock { get; set; }
#endregion Public Properties
}
@@ -35,5 +35,9 @@ namespace WebDoorCreator.Data.DbModels
/// </summary>
[MaxLength(500)]
public string Traduzione { get; set; } = "";
/// <summary>
/// Indica se è da salvare su db o no
/// </summary>
public bool IsConfSave { get; set; } = false;
}
}
+3 -3
View File
@@ -10,7 +10,7 @@ namespace WebDoorCreator.Data
public MessagePipe(IConnectionMultiplexer redisConn, string channelName, bool enableLog = false)
{
_channel = channelName;
_channel = new RedisChannel(channelName, RedisChannel.PatternMode.Literal); ;
redis = redisConn;
redisDb = redis.GetDatabase();
this.enableLog = enableLog;
@@ -94,7 +94,7 @@ namespace WebDoorCreator.Data
/// <summary>
/// Canale associato al gestore pipeline messaggi
/// </summary>
private string _channel { get; set; } = "";
private RedisChannel _channel { get; set; } = new RedisChannel("Default", RedisChannel.PatternMode.Literal);
#endregion Private Properties
@@ -108,7 +108,7 @@ namespace WebDoorCreator.Data
{
Log.Trace($"ch {channel} | {message}");
// messaggio
PubSubEventArgs mea = new PubSubEventArgs(message);
PubSubEventArgs mea = new PubSubEventArgs($"{message}");
// se qualcuno ascolta sollevo evento nuovo valore...
if (EA_NewMessage != null)
{
@@ -69,8 +69,8 @@ namespace WebDoorCreator.Data.Migrations
{
Id = "2d778017-0768-47f4-b807-9094d4aa39c7",
ConcurrencyStamp = "b83e70eb-09cd-4ac7-8571-c821029ae152",
Name = "Admin",
NormalizedName = "ADMIN"
Name = "DcaAdmin",
NormalizedName = "DCAADMIN"
},
new
{
@@ -15,7 +15,7 @@ namespace WebDoorCreator.Data.Migrations
{
{ "0bef594b-861c-4c48-b967-c408174074c6", "a470e2f3-6c5e-4123-bf2e-f6f8b4d11328", "Undef", "UNDEF" },
{ "2bdc3737-48c3-4340-b55d-1739eec7aede", "980f5e55-80d8-466d-8451-746acfa837d4", "SuperAdmin", "SUPERADMIN" },
{ "2d778017-0768-47f4-b807-9094d4aa39c7", "b83e70eb-09cd-4ac7-8571-c821029ae152", "Admin", "ADMIN" },
{ "2d778017-0768-47f4-b807-9094d4aa39c7", "b83e70eb-09cd-4ac7-8571-c821029ae152", "DcaAdmin", "DCAADMIN" },
{ "585875c2-1787-4c33-aa4d-dfa37ada8766", "0b6d6096-d9b8-4abe-a6b7-4adac55afc37", "CompAdmin", "COMPADMIN" },
{ "7444754d-5643-461b-a3c1-aeb8665631d7", "9e3fac4e-50ec-437d-a968-a976ecdc27b5", "CompUser", "COMPUSER" },
{ "9c1c4523-526d-4efa-af94-a24cb04312b8", "9ab5dd98-2d81-4baf-b01c-62c0c893c086", "User", "USER" }
@@ -69,8 +69,8 @@ namespace WebDoorCreator.Data.Migrations
{
Id = "be0e13af-b32e-490d-b798-36e090e91727",
ConcurrencyStamp = "8bf806ed-63c9-4f86-b20e-836296469772",
Name = "Admin",
NormalizedName = "ADMIN"
Name = "DcaAdmin",
NormalizedName = "DCAADMIN"
},
new
{
@@ -47,7 +47,7 @@ namespace WebDoorCreator.Data.Migrations
{ "31011aea-c9a3-4f34-a9fd-7b7a4bcbefa6", "32cd475f-bbe2-4940-bfd1-fe26cafd4fae", "Undef", "UNDEF" },
{ "a5ab56f6-fba3-434d-b316-e5bac2631411", "22a4245e-1026-4990-97ce-9e4a851b0f23", "CompAdmin", "COMPADMIN" },
{ "b904f672-414e-4782-b0a5-30c4a0d952f5", "f5e19beb-0c79-41b7-9dee-9b276454eaf8", "CompUser", "COMPUSER" },
{ "be0e13af-b32e-490d-b798-36e090e91727", "8bf806ed-63c9-4f86-b20e-836296469772", "Admin", "ADMIN" },
{ "be0e13af-b32e-490d-b798-36e090e91727", "8bf806ed-63c9-4f86-b20e-836296469772", "DcaAdmin", "DCAADMIN" },
{ "c9cb6d11-c9a5-43d8-bd04-70be1724ba4a", "07b2ba6d-4f23-43d1-b48c-5b05d14b7e7e", "SuperAdmin", "SUPERADMIN" }
});
@@ -110,7 +110,7 @@ namespace WebDoorCreator.Data.Migrations
{
{ "0bef594b-861c-4c48-b967-c408174074c6", "a470e2f3-6c5e-4123-bf2e-f6f8b4d11328", "Undef", "UNDEF" },
{ "2bdc3737-48c3-4340-b55d-1739eec7aede", "980f5e55-80d8-466d-8451-746acfa837d4", "SuperAdmin", "SUPERADMIN" },
{ "2d778017-0768-47f4-b807-9094d4aa39c7", "b83e70eb-09cd-4ac7-8571-c821029ae152", "Admin", "ADMIN" },
{ "2d778017-0768-47f4-b807-9094d4aa39c7", "b83e70eb-09cd-4ac7-8571-c821029ae152", "DcaAdmin", "DCAADMIN" },
{ "585875c2-1787-4c33-aa4d-dfa37ada8766", "0b6d6096-d9b8-4abe-a6b7-4adac55afc37", "CompAdmin", "COMPADMIN" },
{ "7444754d-5643-461b-a3c1-aeb8665631d7", "9e3fac4e-50ec-437d-a968-a976ecdc27b5", "CompUser", "COMPUSER" },
{ "9c1c4523-526d-4efa-af94-a24cb04312b8", "9ab5dd98-2d81-4baf-b01c-62c0c893c086", "User", "USER" }
@@ -69,8 +69,8 @@ namespace WebDoorCreator.Data.Migrations
{
Id = "f5f76968-2225-482a-82ac-f54bd05390b3",
ConcurrencyStamp = "b54f1873-a97b-4bb1-9e61-7bd2db0a2316",
Name = "Admin",
NormalizedName = "ADMIN"
Name = "DcaAdmin",
NormalizedName = "DCAADMIN"
},
new
{
@@ -58,7 +58,7 @@ namespace WebDoorCreator.Data.Migrations
{ "549ec954-a966-484c-8db8-c7d839e8c4af", "84b61e19-8786-45e4-8977-af6466a87878", "User", "USER" },
{ "6abfe01f-48f9-4a48-8e49-ac5f29a8753a", "e981295d-29b1-4805-a70e-3c83dc4bcfd7", "CompAdmin", "COMPADMIN" },
{ "7fb23328-c054-4b3d-92e0-f949745c8924", "d795b502-0429-4271-a12d-2549f1eb1b17", "Undef", "UNDEF" },
{ "f5f76968-2225-482a-82ac-f54bd05390b3", "b54f1873-a97b-4bb1-9e61-7bd2db0a2316", "Admin", "ADMIN" }
{ "f5f76968-2225-482a-82ac-f54bd05390b3", "b54f1873-a97b-4bb1-9e61-7bd2db0a2316", "DcaAdmin", "DCAADMIN" }
});
migrationBuilder.InsertData(
@@ -122,7 +122,7 @@ namespace WebDoorCreator.Data.Migrations
{ "31011aea-c9a3-4f34-a9fd-7b7a4bcbefa6", "32cd475f-bbe2-4940-bfd1-fe26cafd4fae", "Undef", "UNDEF" },
{ "a5ab56f6-fba3-434d-b316-e5bac2631411", "22a4245e-1026-4990-97ce-9e4a851b0f23", "CompAdmin", "COMPADMIN" },
{ "b904f672-414e-4782-b0a5-30c4a0d952f5", "f5e19beb-0c79-41b7-9dee-9b276454eaf8", "CompUser", "COMPUSER" },
{ "be0e13af-b32e-490d-b798-36e090e91727", "8bf806ed-63c9-4f86-b20e-836296469772", "Admin", "ADMIN" },
{ "be0e13af-b32e-490d-b798-36e090e91727", "8bf806ed-63c9-4f86-b20e-836296469772", "DcaAdmin", "DCAADMIN" },
{ "c9cb6d11-c9a5-43d8-bd04-70be1724ba4a", "07b2ba6d-4f23-43d1-b48c-5b05d14b7e7e", "SuperAdmin", "SUPERADMIN" }
});
@@ -69,8 +69,8 @@ namespace WebDoorCreator.Data.Migrations
{
Id = "0fe4015b-cf98-4229-a120-57eb9c2ca945",
ConcurrencyStamp = "ccb4b655-3619-463d-a702-d0c9497e772c",
Name = "Admin",
NormalizedName = "ADMIN"
Name = "DcaAdmin",
NormalizedName = "DCAADMIN"
},
new
{
@@ -53,7 +53,7 @@ namespace WebDoorCreator.Data.Migrations
columns: new[] { "Id", "ConcurrencyStamp", "Name", "NormalizedName" },
values: new object[,]
{
{ "0fe4015b-cf98-4229-a120-57eb9c2ca945", "ccb4b655-3619-463d-a702-d0c9497e772c", "Admin", "ADMIN" },
{ "0fe4015b-cf98-4229-a120-57eb9c2ca945", "ccb4b655-3619-463d-a702-d0c9497e772c", "DcaAdmin", "DCAADMIN" },
{ "1f63e241-4a96-437c-9af9-55748e0f6ed5", "684c9e79-7c20-4e25-ade2-66529980ef38", "Undef", "UNDEF" },
{ "34e09fbe-45db-4225-af17-793b4a0f90a1", "3895c7f6-8f63-4c30-9f93-0af0504f5e91", "CompUser", "COMPUSER" },
{ "9dfb7941-838f-483e-b1c2-10e01abb3d2d", "15368102-cd08-46cf-a376-dbbc8c6a8f71", "User", "USER" },
@@ -135,7 +135,7 @@ namespace WebDoorCreator.Data.Migrations
{ "549ec954-a966-484c-8db8-c7d839e8c4af", "84b61e19-8786-45e4-8977-af6466a87878", "User", "USER" },
{ "6abfe01f-48f9-4a48-8e49-ac5f29a8753a", "e981295d-29b1-4805-a70e-3c83dc4bcfd7", "CompAdmin", "COMPADMIN" },
{ "7fb23328-c054-4b3d-92e0-f949745c8924", "d795b502-0429-4271-a12d-2549f1eb1b17", "Undef", "UNDEF" },
{ "f5f76968-2225-482a-82ac-f54bd05390b3", "b54f1873-a97b-4bb1-9e61-7bd2db0a2316", "Admin", "ADMIN" }
{ "f5f76968-2225-482a-82ac-f54bd05390b3", "b54f1873-a97b-4bb1-9e61-7bd2db0a2316", "DcaAdmin", "DCAADMIN" }
});
migrationBuilder.InsertData(
@@ -69,8 +69,8 @@ namespace WebDoorCreator.Data.Migrations
{
Id = "4225aeef-4a9b-4629-bbb2-4f3ea6c93595",
ConcurrencyStamp = "2a53a882-ccfd-46f5-8c31-04e5945bfc07",
Name = "Admin",
NormalizedName = "ADMIN"
Name = "DcaAdmin",
NormalizedName = "DCAADMIN"
},
new
{
@@ -63,7 +63,7 @@ namespace WebDoorCreator.Data.Migrations
columns: new[] { "Id", "ConcurrencyStamp", "Name", "NormalizedName" },
values: new object[,]
{
{ "4225aeef-4a9b-4629-bbb2-4f3ea6c93595", "2a53a882-ccfd-46f5-8c31-04e5945bfc07", "Admin", "ADMIN" },
{ "4225aeef-4a9b-4629-bbb2-4f3ea6c93595", "2a53a882-ccfd-46f5-8c31-04e5945bfc07", "DcaAdmin", "DCAADMIN" },
{ "7d3b9719-8a33-4790-b0ce-9df3552458f3", "f271ed2d-48dc-4293-b485-15cfb28b3ce7", "Undef", "UNDEF" },
{ "7f512221-c37f-438c-920a-76458e217611", "315f6b4a-8700-4ae7-a74b-37a70fbc1c90", "User", "USER" },
{ "820b2520-2f28-47cc-8453-ea6871f6e0e6", "0ea8eb3e-972e-4a40-b265-f892335e3db0", "CompUser", "COMPUSER" },
@@ -140,7 +140,7 @@ namespace WebDoorCreator.Data.Migrations
columns: new[] { "Id", "ConcurrencyStamp", "Name", "NormalizedName" },
values: new object[,]
{
{ "0fe4015b-cf98-4229-a120-57eb9c2ca945", "ccb4b655-3619-463d-a702-d0c9497e772c", "Admin", "ADMIN" },
{ "0fe4015b-cf98-4229-a120-57eb9c2ca945", "ccb4b655-3619-463d-a702-d0c9497e772c", "DcaAdmin", "DCAADMIN" },
{ "1f63e241-4a96-437c-9af9-55748e0f6ed5", "684c9e79-7c20-4e25-ade2-66529980ef38", "Undef", "UNDEF" },
{ "34e09fbe-45db-4225-af17-793b4a0f90a1", "3895c7f6-8f63-4c30-9f93-0af0504f5e91", "CompUser", "COMPUSER" },
{ "9dfb7941-838f-483e-b1c2-10e01abb3d2d", "15368102-cd08-46cf-a376-dbbc8c6a8f71", "User", "USER" },
@@ -97,7 +97,7 @@ namespace WebDoorCreator.Data.Migrations
columns: new[] { "Id", "ConcurrencyStamp", "Name", "NormalizedName" },
values: new object[,]
{
{ "4225aeef-4a9b-4629-bbb2-4f3ea6c93595", "2a53a882-ccfd-46f5-8c31-04e5945bfc07", "Admin", "ADMIN" },
{ "4225aeef-4a9b-4629-bbb2-4f3ea6c93595", "2a53a882-ccfd-46f5-8c31-04e5945bfc07", "DcaAdmin", "DCAADMIN" },
{ "7d3b9719-8a33-4790-b0ce-9df3552458f3", "f271ed2d-48dc-4293-b485-15cfb28b3ce7", "Undef", "UNDEF" },
{ "7f512221-c37f-438c-920a-76458e217611", "315f6b4a-8700-4ae7-a74b-37a70fbc1c90", "User", "USER" },
{ "820b2520-2f28-47cc-8453-ea6871f6e0e6", "0ea8eb3e-972e-4a40-b265-f892335e3db0", "CompUser", "COMPUSER" },
@@ -62,8 +62,8 @@ namespace WebDoorCreator.Data.Migrations.WDCData
{
Id = "851dd9d6-570c-48b0-ac48-e494c5fac5d7",
ConcurrencyStamp = "13d724e3-b415-4719-8387-e21952306ce3",
Name = "Admin",
NormalizedName = "ADMIN"
Name = "DcaAdmin",
NormalizedName = "DCAADMIN"
},
new
{
@@ -106,7 +106,7 @@ namespace WebDoorCreator.Data.Migrations.WDCData
{ "246c1608-059d-4f2b-98b2-f57ab47de3b7", "1b81eff5-4ff6-4756-9bb5-983869fd4b41", "CompAdmin", "COMPADMIN" },
{ "695e212d-f79c-45dd-931d-6390c4533c6e", "a4788fda-3f24-41dc-b492-a621de69f031", "SuperAdmin", "SUPERADMIN" },
{ "805c6051-0372-4e2b-9b94-f5c8881ef7cb", "a73832bd-be3e-4a48-8b0a-475c8930b4c5", "CompUser", "COMPUSER" },
{ "851dd9d6-570c-48b0-ac48-e494c5fac5d7", "13d724e3-b415-4719-8387-e21952306ce3", "Admin", "ADMIN" },
{ "851dd9d6-570c-48b0-ac48-e494c5fac5d7", "13d724e3-b415-4719-8387-e21952306ce3", "DcaAdmin", "DCAADMIN" },
{ "d0cafb49-7d19-4d4f-a280-6837e5842e8b", "7f94eb48-1f91-4e88-bae6-bb655dba168b", "User", "USER" }
});
@@ -55,7 +55,7 @@ namespace WebDoorCreator.Data.Migrations.WDCData
{ "246c1608-059d-4f2b-98b2-f57ab47de3b7", "1b81eff5-4ff6-4756-9bb5-983869fd4b41", "CompAdmin", "COMPADMIN" },
{ "695e212d-f79c-45dd-931d-6390c4533c6e", "a4788fda-3f24-41dc-b492-a621de69f031", "SuperAdmin", "SUPERADMIN" },
{ "805c6051-0372-4e2b-9b94-f5c8881ef7cb", "a73832bd-be3e-4a48-8b0a-475c8930b4c5", "CompUser", "COMPUSER" },
{ "851dd9d6-570c-48b0-ac48-e494c5fac5d7", "13d724e3-b415-4719-8387-e21952306ce3", "Admin", "ADMIN" },
{ "851dd9d6-570c-48b0-ac48-e494c5fac5d7", "13d724e3-b415-4719-8387-e21952306ce3", "DcaAdmin", "DCAADMIN" },
{ "d0cafb49-7d19-4d4f-a280-6837e5842e8b", "7f94eb48-1f91-4e88-bae6-bb655dba168b", "User", "USER" }
});
}
@@ -287,8 +287,10 @@ namespace WebDoorCreator.Data.Migrations.WDCData
.IsRequired()
.HasColumnType("nvarchar(max)");
#if false
b.Property<HierarchyId>("DoorOpIdPathFromPatriarch")
.HasColumnType("hierarchyid");
.HasColumnType("hierarchyid");
#endif
b.Property<string>("ExtDescript")
.IsRequired()
@@ -25,11 +25,13 @@ namespace WebDoorCreator.Data.Migrations.WDCData
name: "TreeCode",
table: "DoorOpType");
#if false
migrationBuilder.AddColumn<HierarchyId>(
name: "DoorOpIdPathFromPatriarch",
table: "DoorOpType",
type: "hierarchyid",
nullable: true);
name: "DoorOpIdPathFromPatriarch",
table: "DoorOpType",
type: "hierarchyid",
nullable: true);
#endif
migrationBuilder.CreateTable(
name: "GraphicParams",
@@ -75,9 +77,11 @@ namespace WebDoorCreator.Data.Migrations.WDCData
migrationBuilder.DropTable(
name: "Hardware");
#if false
migrationBuilder.DropColumn(
name: "DoorOpIdPathFromPatriarch",
table: "DoorOpType");
name: "DoorOpIdPathFromPatriarch",
table: "DoorOpType");
#endif
migrationBuilder.AddColumn<int>(
name: "ParentDoorOpId",
@@ -298,8 +298,10 @@ namespace WebDoorCreator.Data.Migrations.WDCData
.IsRequired()
.HasColumnType("nvarchar(max)");
#if false
b.Property<HierarchyId>("DoorOpIdPathFromPatriarch")
.HasColumnType("hierarchyid");
.HasColumnType("hierarchyid");
#endif
b.Property<string>("ExtDescript")
.IsRequired()
@@ -298,8 +298,10 @@ namespace WebDoorCreator.Data.Migrations.WDCData
.IsRequired()
.HasColumnType("nvarchar(max)");
#if false
b.Property<HierarchyId>("DoorOpIdPathFromPatriarch")
.HasColumnType("hierarchyid");
.HasColumnType("hierarchyid");
#endif
b.Property<string>("ExtDescript")
.IsRequired()
@@ -302,8 +302,10 @@ namespace WebDoorCreator.Data.Migrations.WDCData
.IsRequired()
.HasColumnType("nvarchar(max)");
#if false
b.Property<HierarchyId>("DoorOpIdPathFromPatriarch")
.HasColumnType("hierarchyid");
.HasColumnType("hierarchyid");
#endif
b.Property<string>("ExtDescript")
.IsRequired()
@@ -302,8 +302,10 @@ namespace WebDoorCreator.Data.Migrations.WDCData
.IsRequired()
.HasColumnType("nvarchar(max)");
#if false
b.Property<HierarchyId>("DoorOpIdPathFromPatriarch")
.HasColumnType("hierarchyid");
.HasColumnType("hierarchyid");
#endif
b.Property<string>("ExtDescript")
.IsRequired()
@@ -302,8 +302,10 @@ namespace WebDoorCreator.Data.Migrations.WDCData
.IsRequired()
.HasColumnType("nvarchar(max)");
#if false
b.Property<HierarchyId>("DoorOpIdPathFromPatriarch")
.HasColumnType("hierarchyid");
.HasColumnType("hierarchyid");
#endif
b.Property<string>("ExtDescript")
.IsRequired()
@@ -302,8 +302,10 @@ namespace WebDoorCreator.Data.Migrations.WDCData
.IsRequired()
.HasColumnType("nvarchar(max)");
#if false
b.Property<HierarchyId>("DoorOpIdPathFromPatriarch")
.HasColumnType("hierarchyid");
.HasColumnType("hierarchyid");
#endif
b.Property<string>("ExtDescript")
.IsRequired()
@@ -302,8 +302,10 @@ namespace WebDoorCreator.Data.Migrations.WDCData
.IsRequired()
.HasColumnType("nvarchar(max)");
#if false
b.Property<HierarchyId>("DoorOpIdPathFromPatriarch")
.HasColumnType("hierarchyid");
.HasColumnType("hierarchyid");
#endif
b.Property<string>("ExtDescript")
.IsRequired()
@@ -302,8 +302,10 @@ namespace WebDoorCreator.Data.Migrations.WDCData
.IsRequired()
.HasColumnType("nvarchar(max)");
#if false
b.Property<HierarchyId>("DoorOpIdPathFromPatriarch")
.HasColumnType("hierarchyid");
.HasColumnType("hierarchyid");
#endif
b.Property<string>("ExtDescript")
.IsRequired()
@@ -306,8 +306,10 @@ namespace WebDoorCreator.Data.Migrations.WDCData
.IsRequired()
.HasColumnType("nvarchar(max)");
#if false
b.Property<HierarchyId>("DoorOpIdPathFromPatriarch")
.HasColumnType("hierarchyid");
.HasColumnType("hierarchyid");
#endif
b.Property<string>("ExtDescript")
.IsRequired()
@@ -301,8 +301,10 @@ namespace WebDoorCreator.Data.Migrations.WDCData
.IsRequired()
.HasColumnType("nvarchar(max)");
#if false
b.Property<HierarchyId>("DoorOpIdPathFromPatriarch")
.HasColumnType("hierarchyid");
.HasColumnType("hierarchyid");
#endif
b.Property<string>("ExtDescript")
.IsRequired()
@@ -305,8 +305,10 @@ namespace WebDoorCreator.Data.Migrations.WDCData
.IsRequired()
.HasColumnType("nvarchar(max)");
#if false
b.Property<HierarchyId>("DoorOpIdPathFromPatriarch")
.HasColumnType("hierarchyid");
.HasColumnType("hierarchyid");
#endif
b.Property<string>("ExtDescript")
.IsRequired()
@@ -312,8 +312,10 @@ namespace WebDoorCreator.Data.Migrations.WDCData
.IsRequired()
.HasColumnType("nvarchar(max)");
#if false
b.Property<HierarchyId>("DoorOpIdPathFromPatriarch")
.HasColumnType("hierarchyid");
.HasColumnType("hierarchyid");
#endif
b.Property<string>("ExtDescript")
.IsRequired()
@@ -312,8 +312,10 @@ namespace WebDoorCreator.Data.Migrations.WDCData
.IsRequired()
.HasColumnType("nvarchar(max)");
#if false
b.Property<HierarchyId>("DoorOpIdPathFromPatriarch")
.HasColumnType("hierarchyid");
.HasColumnType("hierarchyid");
#endif
b.Property<string>("ExtDescript")
.IsRequired()
@@ -312,8 +312,10 @@ namespace WebDoorCreator.Data.Migrations.WDCData
.IsRequired()
.HasColumnType("nvarchar(max)");
#if false
b.Property<HierarchyId>("DoorOpIdPathFromPatriarch")
.HasColumnType("hierarchyid");
.HasColumnType("hierarchyid");
#endif
b.Property<string>("ExtDescript")
.IsRequired()
@@ -334,8 +334,10 @@ namespace WebDoorCreator.Data.Migrations.WDCData
.IsRequired()
.HasColumnType("nvarchar(max)");
#if false
b.Property<HierarchyId>("DoorOpIdPathFromPatriarch")
.HasColumnType("hierarchyid");
.HasColumnType("hierarchyid");
#endif
b.Property<string>("ExtDescript")
.IsRequired()
@@ -334,8 +334,10 @@ namespace WebDoorCreator.Data.Migrations.WDCData
.IsRequired()
.HasColumnType("nvarchar(max)");
#if false
b.Property<HierarchyId>("DoorOpIdPathFromPatriarch")
.HasColumnType("hierarchyid");
.HasColumnType("hierarchyid");
#endif
b.Property<string>("ExtDescript")
.IsRequired()
@@ -0,0 +1,994 @@
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using WebDoorCreator.Data;
#nullable disable
namespace WebDoorCreator.Data.Migrations.WDCData
{
[DbContext(typeof(WDCDataContext))]
[Migration("20230601135441_fixDoorTypeId")]
partial class fixDoorTypeId
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.UseCollation("Latin1_General_CI_AS")
.HasAnnotation("ProductVersion", "6.0.14")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
modelBuilder.Entity("WebDoorCreator.Data.DbModels.AspNetRoles", b =>
{
b.Property<string>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("nvarchar(450)");
b.Property<string>("ConcurrencyStamp")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("NormalizedName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("AspNetRoles", null, t => t.ExcludeFromMigrations());
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.AspNetUserRoles", b =>
{
b.Property<string>("UserId")
.HasColumnType("nvarchar(450)");
b.Property<string>("RoleId")
.HasColumnType("nvarchar(450)");
b.HasKey("UserId", "RoleId");
b.HasIndex("RoleId");
b.ToTable("AspNetUserRoles", null, t => t.ExcludeFromMigrations());
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.AspNetUsers", b =>
{
b.Property<string>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("nvarchar(450)");
b.Property<int>("AccessFailedCount")
.HasColumnType("int");
b.Property<string>("ConcurrencyStamp")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Email")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("EmailConfirmed")
.HasColumnType("bit");
b.Property<bool>("LockoutEnabled")
.HasColumnType("bit");
b.Property<DateTimeOffset?>("LockoutEnd")
.HasColumnType("datetimeoffset");
b.Property<string>("NormalizedEmail")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("NormalizedUserName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("PasswordHash")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("PhoneNumber")
.HasColumnType("nvarchar(max)");
b.Property<bool>("PhoneNumberConfirmed")
.HasColumnType("bit");
b.Property<string>("SecurityStamp")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("TwoFactorEnabled")
.HasColumnType("bit");
b.Property<string>("UserName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("AspNetUsers", null, t => t.ExcludeFromMigrations());
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.CompanyModel", b =>
{
b.Property<int>("CompanyId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("CompanyId"), 1L, 1);
b.Property<string>("Address")
.IsRequired()
.HasMaxLength(250)
.HasColumnType("nvarchar(250)");
b.Property<string>("City")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("CompanyExtCode")
.IsRequired()
.HasMaxLength(250)
.HasColumnType("nvarchar(250)");
b.Property<string>("CompanyName")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<string>("CompanyToken")
.IsRequired()
.HasMaxLength(150)
.HasColumnType("nvarchar(150)");
b.Property<string>("PrivateNote")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<string>("State")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("VAT")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("ZipCode")
.HasColumnType("int");
b.HasKey("CompanyId");
b.ToTable("Company");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.ConfigModel", b =>
{
b.Property<string>("chiave")
.HasColumnType("nvarchar(450)");
b.Property<string>("note")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("valore")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("valoreStd")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("chiave");
b.ToTable("Config");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorModel", b =>
{
b.Property<int>("DoorId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("DoorId"), 1L, 1);
b.Property<DateTime>("DateIns")
.HasColumnType("datetime2");
b.Property<DateTime>("DateLockExpiry")
.HasColumnType("datetime2");
b.Property<DateTime>("DateMod")
.HasColumnType("datetime2");
b.Property<string>("DoorDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("DoorExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("MeasureUnit")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("OrderId")
.HasColumnType("int");
b.Property<int>("Quantity")
.HasColumnType("int");
b.Property<int>("TypeId")
.HasColumnType("int");
b.Property<decimal>("UnitCost")
.HasColumnType("decimal(18,2)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdLock")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("DoorId");
b.HasIndex("OrderId");
b.ToTable("Door");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorOpModel", b =>
{
b.Property<int>("DoorOpId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("DoorOpId"), 1L, 1);
b.Property<DateTime>("DateIns")
.HasColumnType("datetime2");
b.Property<DateTime>("DateMod")
.HasColumnType("datetime2");
b.Property<string>("Description")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("DoorId")
.HasColumnType("int");
b.Property<DateTime?>("DtConfirm")
.HasColumnType("datetime2");
b.Property<string>("JsoncActVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("JsoncConfigVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("ObjectId")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("userConfirm")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("DoorOpId");
b.HasIndex("DoorId");
b.ToTable("DoorOp");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorOpTypeModel", b =>
{
b.Property<int>("DoorOpTypId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("DoorOpTypId"), 1L, 1);
b.Property<string>("Description")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("DisplayUrl")
.IsRequired()
.HasColumnType("nvarchar(max)");
#if false
b.Property<HierarchyId>("DoorOpIdPathFromPatriarch")
.HasColumnType("hierarchyid");
#endif
b.Property<string>("ExtDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("ExtOpCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("FPath")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("HasHw")
.HasColumnType("bit");
b.Property<string>("HwCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("HwDescription")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("IsConcrete")
.HasColumnType("bit");
b.Property<bool>("IsDefault")
.HasColumnType("bit");
b.Property<string>("JsoncConfig")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("MaxAllowed")
.HasColumnType("int");
b.Property<string>("OpCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("ParentDoorOpId")
.HasColumnType("int");
b.Property<string>("Rev")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("ValidFrom")
.HasColumnType("datetime2");
b.Property<DateTime>("ValidUntil")
.HasColumnType("datetime2");
b.HasKey("DoorOpTypId");
b.ToTable("DoorOpType");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorTypeModel", b =>
{
b.Property<int>("TypeId")
.HasColumnType("int");
b.Property<string>("Description")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("TypeCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("TypeId");
b.ToTable("DoorType");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.GraphicParamsModel", b =>
{
b.Property<int>("GraphicParamId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("GraphicParamId"), 1L, 1);
b.Property<int>("compoId")
.HasColumnType("int");
b.Property<string>("graphicParamAlias")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("graphicParamDefaultVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("graphicParamKey")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("graphicParamName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("graphicParamType")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("graphicParamsN")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("GraphicParamId");
b.ToTable("GraphicParams");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.HardwareModel", b =>
{
b.Property<int>("HardwareId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("HardwareId"), 1L, 1);
b.Property<string>("compoAlias")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("compoLayerName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("compoName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("compoTemplateIsActive")
.HasColumnType("bit");
b.HasKey("HardwareId");
b.ToTable("Hardware");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.LanguageModel", b =>
{
b.Property<string>("CodLingua")
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<string>("DescrizioneLingua")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.HasKey("CodLingua");
b.ToTable("Languages");
b.HasData(
new
{
CodLingua = "EN",
DescrizioneLingua = "English"
},
new
{
CodLingua = "IT",
DescrizioneLingua = "Italiano"
});
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.ListValuesModel", b =>
{
b.Property<string>("TableName")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("FieldName")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Value")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("DefaultVal")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("InputType")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Label")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("Ordinal")
.HasColumnType("int");
b.Property<bool>("isSerializable")
.HasMaxLength(5)
.HasColumnType("bit");
b.HasKey("TableName", "FieldName", "Value");
b.ToTable("ListValues");
b.HasData(
new
{
TableName = "Opening",
FieldName = "Swing",
Value = "LH",
Label = "Left Handed",
Ordinal = 1,
isSerializable = false
},
new
{
TableName = "Opening",
FieldName = "Swing",
Value = "RH",
Label = "Right Handed",
Ordinal = 2,
isSerializable = false
},
new
{
TableName = "Opening",
FieldName = "Swing",
Value = "LHR",
Label = "Left Handed Reverse",
Ordinal = 3,
isSerializable = false
},
new
{
TableName = "Opening",
FieldName = "Swing",
Value = "RHR",
Label = "Right Handed Reverse",
Ordinal = 4,
isSerializable = false
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
Value = "BV",
Label = "Bevel",
Ordinal = 1,
isSerializable = false
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
Value = "SQ",
Label = "Squared",
Ordinal = 2,
isSerializable = false
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
Value = "1B",
Label = "Bull Nose 1",
Ordinal = 3,
isSerializable = false
});
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.ListValuesTempModel", b =>
{
b.Property<string>("TableName")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("FieldName")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Value")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("DefaultVal")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("InputType")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Label")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("Ordinal")
.HasColumnType("int");
b.Property<bool>("isSerializable")
.HasMaxLength(5)
.HasColumnType("bit");
b.HasKey("TableName", "FieldName", "Value");
b.ToTable("ListValuesTemp");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.OrderModel", b =>
{
b.Property<int>("OrderId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("OrderId"), 1L, 1);
b.Property<int>("CompanyId")
.HasColumnType("int");
b.Property<DateTime>("DateIns")
.HasColumnType("datetime2");
b.Property<DateTime>("DateMod")
.HasColumnType("datetime2");
b.Property<string>("OrderDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("OrderExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("Status")
.HasColumnType("int");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("OrderId");
b.HasIndex("CompanyId");
b.ToTable("Order");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.OrderStatusViewModel", b =>
{
b.Property<int>("OrderId")
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("OrderId"), 1L, 1);
b.Property<int>("CompanyId")
.HasColumnType("int");
b.Property<DateTime>("DateIns")
.HasColumnType("datetime2");
b.Property<int>("NumDoors")
.HasColumnType("int");
b.Property<int>("NumType")
.HasColumnType("int");
b.Property<string>("OrderDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("OrderExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("OrderStatus")
.HasColumnType("int");
b.Property<decimal>("TotCost")
.HasColumnType("decimal(18,2)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("OrderId");
b.ToView("v_OrderStatus");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.PrtRepOrderModel", b =>
{
b.Property<int>("OrderId")
.HasColumnType("int");
b.Property<int>("DoorId")
.HasColumnType("int");
b.Property<string>("ObjectKey")
.HasColumnType("nvarchar(450)");
b.Property<string>("Address")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("City")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("CompanyExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("CompanyId")
.HasColumnType("int");
b.Property<string>("CompanyName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("DateIns")
.HasColumnType("datetime2");
b.Property<DateTime>("DateMod")
.HasColumnType("datetime2");
b.Property<string>("DoorDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("DoorExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("MeasureUnit")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("ObjectQty")
.HasColumnType("int");
b.Property<string>("ObjectType")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("ObjectVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("OrderDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("OrderExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("Quantity")
.HasColumnType("int");
b.Property<string>("State")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("Status")
.HasColumnType("int");
b.Property<int>("TypeId")
.HasColumnType("int");
b.Property<decimal>("UnitCost")
.HasColumnType("decimal(18,2)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("VAT")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("ZipCode")
.HasColumnType("int");
b.HasKey("OrderId", "DoorId", "ObjectKey");
b.ToTable("DbSetPrtRepOrder");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.SerializedDoorsModel", b =>
{
b.Property<int>("DoorTmpId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("DoorTmpId"), 1L, 1);
b.Property<string>("DoorSerVal")
.HasColumnType("nvarchar(max)");
b.Property<bool>("Lock")
.HasColumnType("bit");
b.HasKey("DoorTmpId");
b.ToTable("SerializedDoors");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.UsersViewModel", b =>
{
b.Property<string>("UserId")
.HasColumnType("nvarchar(450)");
b.Property<string>("RoleId")
.HasColumnType("nvarchar(450)");
b.Property<int>("ClaimId")
.HasColumnType("int");
b.Property<string>("ClaimType")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("ClaimValue")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Email")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("RoleName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("UserId", "RoleId", "ClaimId");
b.ToView("v_UserRolesClaims");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.VocabularyModel", b =>
{
b.Property<string>("Lingua")
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<string>("Lemma")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Traduzione")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.HasKey("Lingua", "Lemma");
b.ToTable("Vocabulary");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.VocabularyTempModel", b =>
{
b.Property<string>("Lingua")
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<string>("Lemma")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Traduzione")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.HasKey("Lingua", "Lemma");
b.ToTable("VocabularyTemp");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.AspNetUserRoles", b =>
{
b.HasOne("WebDoorCreator.Data.DbModels.AspNetRoles", "RolesNav")
.WithMany()
.HasForeignKey("RoleId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("WebDoorCreator.Data.DbModels.AspNetUsers", "UsersNav")
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("RolesNav");
b.Navigation("UsersNav");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorModel", b =>
{
b.HasOne("WebDoorCreator.Data.DbModels.OrderModel", "OrderNav")
.WithMany()
.HasForeignKey("OrderId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("OrderNav");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorOpModel", b =>
{
b.HasOne("WebDoorCreator.Data.DbModels.DoorModel", "DoorNav")
.WithMany()
.HasForeignKey("DoorId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("DoorNav");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.OrderModel", b =>
{
b.HasOne("WebDoorCreator.Data.DbModels.CompanyModel", "CompanyNav")
.WithMany()
.HasForeignKey("CompanyId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("CompanyNav");
});
#pragma warning restore 612, 618
}
}
}
@@ -0,0 +1,40 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace WebDoorCreator.Data.Migrations.WDCData
{
public partial class fixDoorTypeId : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Door_DoorType_TypeId",
table: "Door");
migrationBuilder.DropIndex(
name: "IX_Door_TypeId",
table: "Door");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateIndex(
name: "IX_Door_TypeId",
table: "Door",
column: "TypeId");
migrationBuilder.AddForeignKey(
name: "FK_Door_DoorType_TypeId",
table: "Door",
column: "TypeId",
principalTable: "DoorType",
principalColumn: "TypeId",
onDelete: ReferentialAction.Cascade);
}
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,38 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace WebDoorCreator.Data.Migrations.WDCData
{
public partial class AddDeliveryDiscountToOrders : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<DateTime>(
name: "DateDelivery",
table: "Order",
type: "datetime2",
nullable: false,
defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified));
migrationBuilder.AddColumn<double>(
name: "Discount",
table: "Order",
type: "float",
nullable: false,
defaultValue: 0.0);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "DateDelivery",
table: "Order");
migrationBuilder.DropColumn(
name: "Discount",
table: "Order");
}
}
}
@@ -0,0 +1,988 @@
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using WebDoorCreator.Data;
#nullable disable
namespace WebDoorCreator.Data.Migrations.WDCData
{
[DbContext(typeof(WDCDataContext))]
[Migration("20230605063358_deleteDoorType")]
partial class deleteDoorType
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.UseCollation("Latin1_General_CI_AS")
.HasAnnotation("ProductVersion", "6.0.14")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
modelBuilder.Entity("WebDoorCreator.Data.DbModels.AspNetRoles", b =>
{
b.Property<string>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("nvarchar(450)");
b.Property<string>("ConcurrencyStamp")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("NormalizedName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("AspNetRoles", null, t => t.ExcludeFromMigrations());
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.AspNetUserRoles", b =>
{
b.Property<string>("UserId")
.HasColumnType("nvarchar(450)");
b.Property<string>("RoleId")
.HasColumnType("nvarchar(450)");
b.HasKey("UserId", "RoleId");
b.HasIndex("RoleId");
b.ToTable("AspNetUserRoles", null, t => t.ExcludeFromMigrations());
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.AspNetUsers", b =>
{
b.Property<string>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("nvarchar(450)");
b.Property<int>("AccessFailedCount")
.HasColumnType("int");
b.Property<string>("ConcurrencyStamp")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Email")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("EmailConfirmed")
.HasColumnType("bit");
b.Property<bool>("LockoutEnabled")
.HasColumnType("bit");
b.Property<DateTimeOffset?>("LockoutEnd")
.HasColumnType("datetimeoffset");
b.Property<string>("NormalizedEmail")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("NormalizedUserName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("PasswordHash")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("PhoneNumber")
.HasColumnType("nvarchar(max)");
b.Property<bool>("PhoneNumberConfirmed")
.HasColumnType("bit");
b.Property<string>("SecurityStamp")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("TwoFactorEnabled")
.HasColumnType("bit");
b.Property<string>("UserName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("AspNetUsers", null, t => t.ExcludeFromMigrations());
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.CompanyModel", b =>
{
b.Property<int>("CompanyId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("CompanyId"), 1L, 1);
b.Property<string>("Address")
.IsRequired()
.HasMaxLength(250)
.HasColumnType("nvarchar(250)");
b.Property<string>("City")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("CompanyExtCode")
.IsRequired()
.HasMaxLength(250)
.HasColumnType("nvarchar(250)");
b.Property<string>("CompanyName")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<string>("CompanyToken")
.IsRequired()
.HasMaxLength(150)
.HasColumnType("nvarchar(150)");
b.Property<string>("PrivateNote")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<string>("State")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("VAT")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("ZipCode")
.HasColumnType("int");
b.HasKey("CompanyId");
b.ToTable("Company");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.ConfigModel", b =>
{
b.Property<string>("chiave")
.HasColumnType("nvarchar(450)");
b.Property<string>("note")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("valore")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("valoreStd")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("chiave");
b.ToTable("Config");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorModel", b =>
{
b.Property<int>("DoorId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("DoorId"), 1L, 1);
b.Property<DateTime>("DateIns")
.HasColumnType("datetime2");
b.Property<DateTime>("DateLockExpiry")
.HasColumnType("datetime2");
b.Property<DateTime>("DateMod")
.HasColumnType("datetime2");
b.Property<string>("DoorDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("DoorExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("MeasureUnit")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("OrderId")
.HasColumnType("int");
b.Property<int>("Quantity")
.HasColumnType("int");
b.Property<int>("TypeId")
.HasColumnType("int");
b.Property<decimal>("UnitCost")
.HasColumnType("decimal(18,2)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdLock")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("DoorId");
b.HasIndex("OrderId");
b.ToTable("Door");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorOpModel", b =>
{
b.Property<int>("DoorOpId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("DoorOpId"), 1L, 1);
b.Property<DateTime>("DateIns")
.HasColumnType("datetime2");
b.Property<DateTime>("DateMod")
.HasColumnType("datetime2");
b.Property<string>("Description")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("DoorId")
.HasColumnType("int");
b.Property<DateTime?>("DtConfirm")
.HasColumnType("datetime2");
b.Property<string>("JsoncActVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("JsoncConfigVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("ObjectId")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("userConfirm")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("DoorOpId");
b.HasIndex("DoorId");
b.ToTable("DoorOp");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorOpTypeModel", b =>
{
b.Property<int>("DoorOpTypId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("DoorOpTypId"), 1L, 1);
b.Property<string>("Description")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("DisplayUrl")
.IsRequired()
.HasColumnType("nvarchar(max)");
#if false
b.Property<HierarchyId>("DoorOpIdPathFromPatriarch")
.HasColumnType("hierarchyid");
#endif
b.Property<string>("ExtDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("ExtOpCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("FPath")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("HasHw")
.HasColumnType("bit");
b.Property<string>("HwCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("HwDescription")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("IsConcrete")
.HasColumnType("bit");
b.Property<bool>("IsDefault")
.HasColumnType("bit");
b.Property<string>("JsoncConfig")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("MaxAllowed")
.HasColumnType("int");
b.Property<string>("OpCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("ParentDoorOpId")
.HasColumnType("int");
b.Property<string>("Rev")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("ValidFrom")
.HasColumnType("datetime2");
b.Property<DateTime>("ValidUntil")
.HasColumnType("datetime2");
b.HasKey("DoorOpTypId");
b.ToTable("DoorOpType");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.GraphicParamsModel", b =>
{
b.Property<int>("GraphicParamId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("GraphicParamId"), 1L, 1);
b.Property<int>("compoId")
.HasColumnType("int");
b.Property<string>("graphicParamAlias")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("graphicParamDefaultVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("graphicParamKey")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("graphicParamName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("graphicParamType")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("graphicParamsN")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("GraphicParamId");
b.ToTable("GraphicParams");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.HardwareModel", b =>
{
b.Property<int>("HardwareId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("HardwareId"), 1L, 1);
b.Property<string>("compoAlias")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("compoLayerName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("compoName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("compoTemplateIsActive")
.HasColumnType("bit");
b.HasKey("HardwareId");
b.ToTable("Hardware");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.LanguageModel", b =>
{
b.Property<string>("CodLingua")
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<string>("DescrizioneLingua")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.HasKey("CodLingua");
b.ToTable("Languages");
b.HasData(
new
{
CodLingua = "EN",
DescrizioneLingua = "English"
},
new
{
CodLingua = "IT",
DescrizioneLingua = "Italiano"
});
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.ListValuesModel", b =>
{
b.Property<string>("TableName")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("FieldName")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Value")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("DefaultVal")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("InputType")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Label")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("Ordinal")
.HasColumnType("int");
b.Property<bool>("isSerializable")
.HasMaxLength(5)
.HasColumnType("bit");
b.HasKey("TableName", "FieldName", "Value");
b.ToTable("ListValues");
b.HasData(
new
{
TableName = "Opening",
FieldName = "Swing",
Value = "LH",
Label = "Left Handed",
Ordinal = 1,
isSerializable = false
},
new
{
TableName = "Opening",
FieldName = "Swing",
Value = "RH",
Label = "Right Handed",
Ordinal = 2,
isSerializable = false
},
new
{
TableName = "Opening",
FieldName = "Swing",
Value = "LHR",
Label = "Left Handed Reverse",
Ordinal = 3,
isSerializable = false
},
new
{
TableName = "Opening",
FieldName = "Swing",
Value = "RHR",
Label = "Right Handed Reverse",
Ordinal = 4,
isSerializable = false
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
Value = "BV",
Label = "Bevel",
Ordinal = 1,
isSerializable = false
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
Value = "SQ",
Label = "Squared",
Ordinal = 2,
isSerializable = false
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
Value = "1B",
Label = "Bull Nose 1",
Ordinal = 3,
isSerializable = false
});
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.ListValuesTempModel", b =>
{
b.Property<string>("TableName")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("FieldName")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Value")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("DefaultVal")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("InputType")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Label")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("Ordinal")
.HasColumnType("int");
b.Property<bool>("isSerializable")
.HasMaxLength(5)
.HasColumnType("bit");
b.HasKey("TableName", "FieldName", "Value");
b.ToTable("ListValuesTemp");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.OrderModel", b =>
{
b.Property<int>("OrderId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("OrderId"), 1L, 1);
b.Property<int>("CompanyId")
.HasColumnType("int");
b.Property<DateTime>("DateDelivery")
.HasColumnType("datetime2");
b.Property<DateTime>("DateIns")
.HasColumnType("datetime2");
b.Property<DateTime>("DateMod")
.HasColumnType("datetime2");
b.Property<double>("Discount")
.HasColumnType("float");
b.Property<string>("OrderDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("OrderExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("Status")
.HasColumnType("int");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("OrderId");
b.HasIndex("CompanyId");
b.ToTable("Order");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.OrderStatusViewModel", b =>
{
b.Property<int>("OrderId")
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("OrderId"), 1L, 1);
b.Property<int>("CompanyId")
.HasColumnType("int");
b.Property<DateTime>("DateDelivery")
.HasColumnType("datetime2");
b.Property<DateTime>("DateIns")
.HasColumnType("datetime2");
b.Property<double>("Discount")
.HasColumnType("float");
b.Property<int>("NumDoors")
.HasColumnType("int");
b.Property<int>("NumType")
.HasColumnType("int");
b.Property<string>("OrderDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("OrderExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("OrderStatus")
.HasColumnType("int");
b.Property<decimal>("TotCost")
.HasColumnType("decimal(18,2)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("OrderId");
b.ToView("v_OrderStatus");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.PrtRepOrderModel", b =>
{
b.Property<int>("OrderId")
.HasColumnType("int");
b.Property<int>("DoorId")
.HasColumnType("int");
b.Property<string>("ObjectKey")
.HasColumnType("nvarchar(450)");
b.Property<string>("Address")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("City")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("CompanyExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("CompanyId")
.HasColumnType("int");
b.Property<string>("CompanyName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("DateIns")
.HasColumnType("datetime2");
b.Property<DateTime>("DateMod")
.HasColumnType("datetime2");
b.Property<string>("DoorDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("DoorExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("MeasureUnit")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("ObjectQty")
.HasColumnType("int");
b.Property<string>("ObjectType")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("ObjectVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("OrderDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("OrderExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("Quantity")
.HasColumnType("int");
b.Property<string>("State")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("Status")
.HasColumnType("int");
b.Property<int>("TypeId")
.HasColumnType("int");
b.Property<decimal>("UnitCost")
.HasColumnType("decimal(18,2)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("VAT")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("ZipCode")
.HasColumnType("int");
b.HasKey("OrderId", "DoorId", "ObjectKey");
b.ToTable("DbSetPrtRepOrder");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.SerializedDoorsModel", b =>
{
b.Property<int>("DoorTmpId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("DoorTmpId"), 1L, 1);
b.Property<string>("DoorSerVal")
.HasColumnType("nvarchar(max)");
b.Property<bool>("Lock")
.HasColumnType("bit");
b.HasKey("DoorTmpId");
b.ToTable("SerializedDoors");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.UsersViewModel", b =>
{
b.Property<string>("UserId")
.HasColumnType("nvarchar(450)");
b.Property<string>("RoleId")
.HasColumnType("nvarchar(450)");
b.Property<int>("ClaimId")
.HasColumnType("int");
b.Property<string>("ClaimType")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("ClaimValue")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Email")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("RoleName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("UserId", "RoleId", "ClaimId");
b.ToView("v_UserRolesClaims");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.VocabularyModel", b =>
{
b.Property<string>("Lingua")
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<string>("Lemma")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Traduzione")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.HasKey("Lingua", "Lemma");
b.ToTable("Vocabulary");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.VocabularyTempModel", b =>
{
b.Property<string>("Lingua")
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<string>("Lemma")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Traduzione")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.HasKey("Lingua", "Lemma");
b.ToTable("VocabularyTemp");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.AspNetUserRoles", b =>
{
b.HasOne("WebDoorCreator.Data.DbModels.AspNetRoles", "RolesNav")
.WithMany()
.HasForeignKey("RoleId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("WebDoorCreator.Data.DbModels.AspNetUsers", "UsersNav")
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("RolesNav");
b.Navigation("UsersNav");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorModel", b =>
{
b.HasOne("WebDoorCreator.Data.DbModels.OrderModel", "OrderNav")
.WithMany()
.HasForeignKey("OrderId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("OrderNav");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorOpModel", b =>
{
b.HasOne("WebDoorCreator.Data.DbModels.DoorModel", "DoorNav")
.WithMany()
.HasForeignKey("DoorId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("DoorNav");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.OrderModel", b =>
{
b.HasOne("WebDoorCreator.Data.DbModels.CompanyModel", "CompanyNav")
.WithMany()
.HasForeignKey("CompanyId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("CompanyNav");
});
#pragma warning restore 612, 618
}
}
}
@@ -0,0 +1,31 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace WebDoorCreator.Data.Migrations.WDCData
{
public partial class deleteDoorType : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "DoorType");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "DoorType",
columns: table => new
{
TypeId = table.Column<int>(type: "int", nullable: false),
Description = table.Column<string>(type: "nvarchar(max)", nullable: false),
TypeCode = table.Column<string>(type: "nvarchar(max)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_DoorType", x => x.TypeId);
});
}
}
}
@@ -0,0 +1,988 @@
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using WebDoorCreator.Data;
#nullable disable
namespace WebDoorCreator.Data.Migrations.WDCData
{
[DbContext(typeof(WDCDataContext))]
[Migration("20230605064657_nameChangeDoorType")]
partial class nameChangeDoorType
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.UseCollation("Latin1_General_CI_AS")
.HasAnnotation("ProductVersion", "6.0.14")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
modelBuilder.Entity("WebDoorCreator.Data.DbModels.AspNetRoles", b =>
{
b.Property<string>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("nvarchar(450)");
b.Property<string>("ConcurrencyStamp")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("NormalizedName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("AspNetRoles", null, t => t.ExcludeFromMigrations());
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.AspNetUserRoles", b =>
{
b.Property<string>("UserId")
.HasColumnType("nvarchar(450)");
b.Property<string>("RoleId")
.HasColumnType("nvarchar(450)");
b.HasKey("UserId", "RoleId");
b.HasIndex("RoleId");
b.ToTable("AspNetUserRoles", null, t => t.ExcludeFromMigrations());
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.AspNetUsers", b =>
{
b.Property<string>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("nvarchar(450)");
b.Property<int>("AccessFailedCount")
.HasColumnType("int");
b.Property<string>("ConcurrencyStamp")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Email")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("EmailConfirmed")
.HasColumnType("bit");
b.Property<bool>("LockoutEnabled")
.HasColumnType("bit");
b.Property<DateTimeOffset?>("LockoutEnd")
.HasColumnType("datetimeoffset");
b.Property<string>("NormalizedEmail")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("NormalizedUserName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("PasswordHash")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("PhoneNumber")
.HasColumnType("nvarchar(max)");
b.Property<bool>("PhoneNumberConfirmed")
.HasColumnType("bit");
b.Property<string>("SecurityStamp")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("TwoFactorEnabled")
.HasColumnType("bit");
b.Property<string>("UserName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("AspNetUsers", null, t => t.ExcludeFromMigrations());
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.CompanyModel", b =>
{
b.Property<int>("CompanyId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("CompanyId"), 1L, 1);
b.Property<string>("Address")
.IsRequired()
.HasMaxLength(250)
.HasColumnType("nvarchar(250)");
b.Property<string>("City")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("CompanyExtCode")
.IsRequired()
.HasMaxLength(250)
.HasColumnType("nvarchar(250)");
b.Property<string>("CompanyName")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<string>("CompanyToken")
.IsRequired()
.HasMaxLength(150)
.HasColumnType("nvarchar(150)");
b.Property<string>("PrivateNote")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<string>("State")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("VAT")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("ZipCode")
.HasColumnType("int");
b.HasKey("CompanyId");
b.ToTable("Company");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.ConfigModel", b =>
{
b.Property<string>("chiave")
.HasColumnType("nvarchar(450)");
b.Property<string>("note")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("valore")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("valoreStd")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("chiave");
b.ToTable("Config");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorModel", b =>
{
b.Property<int>("DoorId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("DoorId"), 1L, 1);
b.Property<DateTime>("DateIns")
.HasColumnType("datetime2");
b.Property<DateTime>("DateLockExpiry")
.HasColumnType("datetime2");
b.Property<DateTime>("DateMod")
.HasColumnType("datetime2");
b.Property<string>("DoorDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("DoorExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("DoorIdParent")
.HasColumnType("int");
b.Property<string>("MeasureUnit")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("OrderId")
.HasColumnType("int");
b.Property<int>("Quantity")
.HasColumnType("int");
b.Property<decimal>("UnitCost")
.HasColumnType("decimal(18,2)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdLock")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("DoorId");
b.HasIndex("OrderId");
b.ToTable("Door");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorOpModel", b =>
{
b.Property<int>("DoorOpId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("DoorOpId"), 1L, 1);
b.Property<DateTime>("DateIns")
.HasColumnType("datetime2");
b.Property<DateTime>("DateMod")
.HasColumnType("datetime2");
b.Property<string>("Description")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("DoorId")
.HasColumnType("int");
b.Property<DateTime?>("DtConfirm")
.HasColumnType("datetime2");
b.Property<string>("JsoncActVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("JsoncConfigVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("ObjectId")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("userConfirm")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("DoorOpId");
b.HasIndex("DoorId");
b.ToTable("DoorOp");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorOpTypeModel", b =>
{
b.Property<int>("DoorOpTypId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("DoorOpTypId"), 1L, 1);
b.Property<string>("Description")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("DisplayUrl")
.IsRequired()
.HasColumnType("nvarchar(max)");
#if false
b.Property<HierarchyId>("DoorOpIdPathFromPatriarch")
.HasColumnType("hierarchyid");
#endif
b.Property<string>("ExtDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("ExtOpCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("FPath")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("HasHw")
.HasColumnType("bit");
b.Property<string>("HwCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("HwDescription")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("IsConcrete")
.HasColumnType("bit");
b.Property<bool>("IsDefault")
.HasColumnType("bit");
b.Property<string>("JsoncConfig")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("MaxAllowed")
.HasColumnType("int");
b.Property<string>("OpCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("ParentDoorOpId")
.HasColumnType("int");
b.Property<string>("Rev")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("ValidFrom")
.HasColumnType("datetime2");
b.Property<DateTime>("ValidUntil")
.HasColumnType("datetime2");
b.HasKey("DoorOpTypId");
b.ToTable("DoorOpType");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.GraphicParamsModel", b =>
{
b.Property<int>("GraphicParamId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("GraphicParamId"), 1L, 1);
b.Property<int>("compoId")
.HasColumnType("int");
b.Property<string>("graphicParamAlias")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("graphicParamDefaultVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("graphicParamKey")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("graphicParamName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("graphicParamType")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("graphicParamsN")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("GraphicParamId");
b.ToTable("GraphicParams");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.HardwareModel", b =>
{
b.Property<int>("HardwareId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("HardwareId"), 1L, 1);
b.Property<string>("compoAlias")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("compoLayerName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("compoName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("compoTemplateIsActive")
.HasColumnType("bit");
b.HasKey("HardwareId");
b.ToTable("Hardware");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.LanguageModel", b =>
{
b.Property<string>("CodLingua")
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<string>("DescrizioneLingua")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.HasKey("CodLingua");
b.ToTable("Languages");
b.HasData(
new
{
CodLingua = "EN",
DescrizioneLingua = "English"
},
new
{
CodLingua = "IT",
DescrizioneLingua = "Italiano"
});
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.ListValuesModel", b =>
{
b.Property<string>("TableName")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("FieldName")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Value")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("DefaultVal")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("InputType")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Label")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("Ordinal")
.HasColumnType("int");
b.Property<bool>("isSerializable")
.HasMaxLength(5)
.HasColumnType("bit");
b.HasKey("TableName", "FieldName", "Value");
b.ToTable("ListValues");
b.HasData(
new
{
TableName = "Opening",
FieldName = "Swing",
Value = "LH",
Label = "Left Handed",
Ordinal = 1,
isSerializable = false
},
new
{
TableName = "Opening",
FieldName = "Swing",
Value = "RH",
Label = "Right Handed",
Ordinal = 2,
isSerializable = false
},
new
{
TableName = "Opening",
FieldName = "Swing",
Value = "LHR",
Label = "Left Handed Reverse",
Ordinal = 3,
isSerializable = false
},
new
{
TableName = "Opening",
FieldName = "Swing",
Value = "RHR",
Label = "Right Handed Reverse",
Ordinal = 4,
isSerializable = false
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
Value = "BV",
Label = "Bevel",
Ordinal = 1,
isSerializable = false
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
Value = "SQ",
Label = "Squared",
Ordinal = 2,
isSerializable = false
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
Value = "1B",
Label = "Bull Nose 1",
Ordinal = 3,
isSerializable = false
});
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.ListValuesTempModel", b =>
{
b.Property<string>("TableName")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("FieldName")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Value")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("DefaultVal")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("InputType")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Label")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("Ordinal")
.HasColumnType("int");
b.Property<bool>("isSerializable")
.HasMaxLength(5)
.HasColumnType("bit");
b.HasKey("TableName", "FieldName", "Value");
b.ToTable("ListValuesTemp");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.OrderModel", b =>
{
b.Property<int>("OrderId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("OrderId"), 1L, 1);
b.Property<int>("CompanyId")
.HasColumnType("int");
b.Property<DateTime>("DateDelivery")
.HasColumnType("datetime2");
b.Property<DateTime>("DateIns")
.HasColumnType("datetime2");
b.Property<DateTime>("DateMod")
.HasColumnType("datetime2");
b.Property<double>("Discount")
.HasColumnType("float");
b.Property<string>("OrderDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("OrderExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("Status")
.HasColumnType("int");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("OrderId");
b.HasIndex("CompanyId");
b.ToTable("Order");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.OrderStatusViewModel", b =>
{
b.Property<int>("OrderId")
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("OrderId"), 1L, 1);
b.Property<int>("CompanyId")
.HasColumnType("int");
b.Property<DateTime>("DateDelivery")
.HasColumnType("datetime2");
b.Property<DateTime>("DateIns")
.HasColumnType("datetime2");
b.Property<double>("Discount")
.HasColumnType("float");
b.Property<int>("NumDoors")
.HasColumnType("int");
b.Property<int>("NumType")
.HasColumnType("int");
b.Property<string>("OrderDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("OrderExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("OrderStatus")
.HasColumnType("int");
b.Property<decimal>("TotCost")
.HasColumnType("decimal(18,2)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("OrderId");
b.ToView("v_OrderStatus");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.PrtRepOrderModel", b =>
{
b.Property<int>("OrderId")
.HasColumnType("int");
b.Property<int>("DoorId")
.HasColumnType("int");
b.Property<string>("ObjectKey")
.HasColumnType("nvarchar(450)");
b.Property<string>("Address")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("City")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("CompanyExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("CompanyId")
.HasColumnType("int");
b.Property<string>("CompanyName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("DateIns")
.HasColumnType("datetime2");
b.Property<DateTime>("DateMod")
.HasColumnType("datetime2");
b.Property<string>("DoorDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("DoorExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("MeasureUnit")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("ObjectQty")
.HasColumnType("int");
b.Property<string>("ObjectType")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("ObjectVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("OrderDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("OrderExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("Quantity")
.HasColumnType("int");
b.Property<string>("State")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("Status")
.HasColumnType("int");
b.Property<int>("TypeId")
.HasColumnType("int");
b.Property<decimal>("UnitCost")
.HasColumnType("decimal(18,2)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("VAT")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("ZipCode")
.HasColumnType("int");
b.HasKey("OrderId", "DoorId", "ObjectKey");
b.ToTable("DbSetPrtRepOrder");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.SerializedDoorsModel", b =>
{
b.Property<int>("DoorTmpId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("DoorTmpId"), 1L, 1);
b.Property<string>("DoorSerVal")
.HasColumnType("nvarchar(max)");
b.Property<bool>("Lock")
.HasColumnType("bit");
b.HasKey("DoorTmpId");
b.ToTable("SerializedDoors");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.UsersViewModel", b =>
{
b.Property<string>("UserId")
.HasColumnType("nvarchar(450)");
b.Property<string>("RoleId")
.HasColumnType("nvarchar(450)");
b.Property<int>("ClaimId")
.HasColumnType("int");
b.Property<string>("ClaimType")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("ClaimValue")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Email")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("RoleName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("UserId", "RoleId", "ClaimId");
b.ToView("v_UserRolesClaims");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.VocabularyModel", b =>
{
b.Property<string>("Lingua")
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<string>("Lemma")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Traduzione")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.HasKey("Lingua", "Lemma");
b.ToTable("Vocabulary");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.VocabularyTempModel", b =>
{
b.Property<string>("Lingua")
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<string>("Lemma")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Traduzione")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.HasKey("Lingua", "Lemma");
b.ToTable("VocabularyTemp");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.AspNetUserRoles", b =>
{
b.HasOne("WebDoorCreator.Data.DbModels.AspNetRoles", "RolesNav")
.WithMany()
.HasForeignKey("RoleId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("WebDoorCreator.Data.DbModels.AspNetUsers", "UsersNav")
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("RolesNav");
b.Navigation("UsersNav");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorModel", b =>
{
b.HasOne("WebDoorCreator.Data.DbModels.OrderModel", "OrderNav")
.WithMany()
.HasForeignKey("OrderId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("OrderNav");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorOpModel", b =>
{
b.HasOne("WebDoorCreator.Data.DbModels.DoorModel", "DoorNav")
.WithMany()
.HasForeignKey("DoorId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("DoorNav");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.OrderModel", b =>
{
b.HasOne("WebDoorCreator.Data.DbModels.CompanyModel", "CompanyNav")
.WithMany()
.HasForeignKey("CompanyId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("CompanyNav");
});
#pragma warning restore 612, 618
}
}
}
@@ -0,0 +1,25 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace WebDoorCreator.Data.Migrations.WDCData
{
public partial class nameChangeDoorType : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.RenameColumn(
name: "TypeId",
table: "Door",
newName: "DoorIdParent");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.RenameColumn(
name: "DoorIdParent",
table: "Door",
newName: "TypeId");
}
}
}
@@ -0,0 +1,982 @@
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using WebDoorCreator.Data;
#nullable disable
namespace WebDoorCreator.Data.Migrations.WDCData
{
[DbContext(typeof(WDCDataContext))]
[Migration("20230605134244_DoorOpTypeUpdate")]
partial class DoorOpTypeUpdate
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.UseCollation("Latin1_General_CI_AS")
.HasAnnotation("ProductVersion", "6.0.14")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
modelBuilder.Entity("WebDoorCreator.Data.DbModels.AspNetRoles", b =>
{
b.Property<string>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("nvarchar(450)");
b.Property<string>("ConcurrencyStamp")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("NormalizedName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("AspNetRoles", null, t => t.ExcludeFromMigrations());
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.AspNetUserRoles", b =>
{
b.Property<string>("UserId")
.HasColumnType("nvarchar(450)");
b.Property<string>("RoleId")
.HasColumnType("nvarchar(450)");
b.HasKey("UserId", "RoleId");
b.HasIndex("RoleId");
b.ToTable("AspNetUserRoles", null, t => t.ExcludeFromMigrations());
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.AspNetUsers", b =>
{
b.Property<string>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("nvarchar(450)");
b.Property<int>("AccessFailedCount")
.HasColumnType("int");
b.Property<string>("ConcurrencyStamp")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Email")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("EmailConfirmed")
.HasColumnType("bit");
b.Property<bool>("LockoutEnabled")
.HasColumnType("bit");
b.Property<DateTimeOffset?>("LockoutEnd")
.HasColumnType("datetimeoffset");
b.Property<string>("NormalizedEmail")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("NormalizedUserName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("PasswordHash")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("PhoneNumber")
.HasColumnType("nvarchar(max)");
b.Property<bool>("PhoneNumberConfirmed")
.HasColumnType("bit");
b.Property<string>("SecurityStamp")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("TwoFactorEnabled")
.HasColumnType("bit");
b.Property<string>("UserName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("AspNetUsers", null, t => t.ExcludeFromMigrations());
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.CompanyModel", b =>
{
b.Property<int>("CompanyId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("CompanyId"), 1L, 1);
b.Property<string>("Address")
.IsRequired()
.HasMaxLength(250)
.HasColumnType("nvarchar(250)");
b.Property<string>("City")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("CompanyExtCode")
.IsRequired()
.HasMaxLength(250)
.HasColumnType("nvarchar(250)");
b.Property<string>("CompanyName")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<string>("CompanyToken")
.IsRequired()
.HasMaxLength(150)
.HasColumnType("nvarchar(150)");
b.Property<string>("PrivateNote")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<string>("State")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("VAT")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("ZipCode")
.HasColumnType("int");
b.HasKey("CompanyId");
b.ToTable("Company");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.ConfigModel", b =>
{
b.Property<string>("chiave")
.HasColumnType("nvarchar(450)");
b.Property<string>("note")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("valore")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("valoreStd")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("chiave");
b.ToTable("Config");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorModel", b =>
{
b.Property<int>("DoorId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("DoorId"), 1L, 1);
b.Property<DateTime>("DateIns")
.HasColumnType("datetime2");
b.Property<DateTime>("DateLockExpiry")
.HasColumnType("datetime2");
b.Property<DateTime>("DateMod")
.HasColumnType("datetime2");
b.Property<string>("DoorDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("DoorExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("DoorIdParent")
.HasColumnType("int");
b.Property<string>("MeasureUnit")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("OrderId")
.HasColumnType("int");
b.Property<int>("Quantity")
.HasColumnType("int");
b.Property<decimal>("UnitCost")
.HasColumnType("decimal(18,2)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdLock")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("DoorId");
b.HasIndex("OrderId");
b.ToTable("Door");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorOpModel", b =>
{
b.Property<int>("DoorOpId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("DoorOpId"), 1L, 1);
b.Property<DateTime>("DateIns")
.HasColumnType("datetime2");
b.Property<DateTime>("DateMod")
.HasColumnType("datetime2");
b.Property<string>("Description")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("DoorId")
.HasColumnType("int");
b.Property<DateTime?>("DtConfirm")
.HasColumnType("datetime2");
b.Property<string>("JsoncActVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("JsoncConfigVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("ObjectId")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("userConfirm")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("DoorOpId");
b.HasIndex("DoorId");
b.ToTable("DoorOp");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorOpTypeModel", b =>
{
b.Property<int>("DoorOpTypId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("DoorOpTypId"), 1L, 1);
b.Property<string>("Description")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("DisplayUrl")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("ExtDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("ExtOpCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("FPath")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("HasHw")
.HasColumnType("bit");
b.Property<string>("HwCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("HwDescription")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("IsConcrete")
.HasColumnType("bit");
b.Property<bool>("IsDefault")
.HasColumnType("bit");
b.Property<int>("MaxAllowed")
.HasColumnType("int");
b.Property<string>("OpCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("ParentDoorOpId")
.HasColumnType("int");
b.Property<string>("Rev")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<decimal>("UnitCost")
.HasColumnType("decimal(18,2)");
b.Property<DateTime>("ValidFrom")
.HasColumnType("datetime2");
b.Property<DateTime>("ValidUntil")
.HasColumnType("datetime2");
b.HasKey("DoorOpTypId");
b.ToTable("DoorOpType");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.GraphicParamsModel", b =>
{
b.Property<int>("GraphicParamId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("GraphicParamId"), 1L, 1);
b.Property<int>("compoId")
.HasColumnType("int");
b.Property<string>("graphicParamAlias")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("graphicParamDefaultVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("graphicParamKey")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("graphicParamName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("graphicParamType")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("graphicParamsN")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("GraphicParamId");
b.ToTable("GraphicParams");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.HardwareModel", b =>
{
b.Property<int>("HardwareId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("HardwareId"), 1L, 1);
b.Property<string>("compoAlias")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("compoLayerName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("compoName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("compoTemplateIsActive")
.HasColumnType("bit");
b.HasKey("HardwareId");
b.ToTable("Hardware");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.LanguageModel", b =>
{
b.Property<string>("CodLingua")
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<string>("DescrizioneLingua")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.HasKey("CodLingua");
b.ToTable("Languages");
b.HasData(
new
{
CodLingua = "EN",
DescrizioneLingua = "English"
},
new
{
CodLingua = "IT",
DescrizioneLingua = "Italiano"
});
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.ListValuesModel", b =>
{
b.Property<string>("TableName")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("FieldName")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Value")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("DefaultVal")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("InputType")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Label")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("Ordinal")
.HasColumnType("int");
b.Property<bool>("isSerializable")
.HasMaxLength(5)
.HasColumnType("bit");
b.HasKey("TableName", "FieldName", "Value");
b.ToTable("ListValues");
b.HasData(
new
{
TableName = "Opening",
FieldName = "Swing",
Value = "LH",
Label = "Left Handed",
Ordinal = 1,
isSerializable = false
},
new
{
TableName = "Opening",
FieldName = "Swing",
Value = "RH",
Label = "Right Handed",
Ordinal = 2,
isSerializable = false
},
new
{
TableName = "Opening",
FieldName = "Swing",
Value = "LHR",
Label = "Left Handed Reverse",
Ordinal = 3,
isSerializable = false
},
new
{
TableName = "Opening",
FieldName = "Swing",
Value = "RHR",
Label = "Right Handed Reverse",
Ordinal = 4,
isSerializable = false
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
Value = "BV",
Label = "Bevel",
Ordinal = 1,
isSerializable = false
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
Value = "SQ",
Label = "Squared",
Ordinal = 2,
isSerializable = false
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
Value = "1B",
Label = "Bull Nose 1",
Ordinal = 3,
isSerializable = false
});
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.ListValuesTempModel", b =>
{
b.Property<string>("TableName")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("FieldName")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Value")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("DefaultVal")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("InputType")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Label")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("Ordinal")
.HasColumnType("int");
b.Property<bool>("isSerializable")
.HasMaxLength(5)
.HasColumnType("bit");
b.HasKey("TableName", "FieldName", "Value");
b.ToTable("ListValuesTemp");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.OrderModel", b =>
{
b.Property<int>("OrderId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("OrderId"), 1L, 1);
b.Property<int>("CompanyId")
.HasColumnType("int");
b.Property<DateTime>("DateDelivery")
.HasColumnType("datetime2");
b.Property<DateTime>("DateIns")
.HasColumnType("datetime2");
b.Property<DateTime>("DateMod")
.HasColumnType("datetime2");
b.Property<double>("Discount")
.HasColumnType("float");
b.Property<string>("OrderDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("OrderExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("Status")
.HasColumnType("int");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("OrderId");
b.HasIndex("CompanyId");
b.ToTable("Order");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.OrderStatusViewModel", b =>
{
b.Property<int>("OrderId")
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("OrderId"), 1L, 1);
b.Property<int>("CompanyId")
.HasColumnType("int");
b.Property<DateTime>("DateDelivery")
.HasColumnType("datetime2");
b.Property<DateTime>("DateIns")
.HasColumnType("datetime2");
b.Property<double>("Discount")
.HasColumnType("float");
b.Property<int>("NumDoors")
.HasColumnType("int");
b.Property<int>("NumType")
.HasColumnType("int");
b.Property<string>("OrderDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("OrderExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("OrderStatus")
.HasColumnType("int");
b.Property<decimal>("TotCost")
.HasColumnType("decimal(18,2)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("OrderId");
b.ToView("v_OrderStatus");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.PrtRepOrderModel", b =>
{
b.Property<int>("OrderId")
.HasColumnType("int");
b.Property<int>("DoorId")
.HasColumnType("int");
b.Property<string>("ObjectKey")
.HasColumnType("nvarchar(450)");
b.Property<string>("Address")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("City")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("CompanyExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("CompanyId")
.HasColumnType("int");
b.Property<string>("CompanyName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("DateIns")
.HasColumnType("datetime2");
b.Property<DateTime>("DateMod")
.HasColumnType("datetime2");
b.Property<string>("DoorDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("DoorExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("MeasureUnit")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("ObjectQty")
.HasColumnType("int");
b.Property<string>("ObjectType")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("ObjectVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("OrderDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("OrderExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("Quantity")
.HasColumnType("int");
b.Property<string>("State")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("Status")
.HasColumnType("int");
b.Property<int>("TypeId")
.HasColumnType("int");
b.Property<decimal>("UnitCost")
.HasColumnType("decimal(18,2)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("VAT")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("ZipCode")
.HasColumnType("int");
b.HasKey("OrderId", "DoorId", "ObjectKey");
b.ToTable("DbSetPrtRepOrder");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.SerializedDoorsModel", b =>
{
b.Property<int>("DoorTmpId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("DoorTmpId"), 1L, 1);
b.Property<string>("DoorSerVal")
.HasColumnType("nvarchar(max)");
b.Property<bool>("Lock")
.HasColumnType("bit");
b.HasKey("DoorTmpId");
b.ToTable("SerializedDoors");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.UsersViewModel", b =>
{
b.Property<string>("UserId")
.HasColumnType("nvarchar(450)");
b.Property<string>("RoleId")
.HasColumnType("nvarchar(450)");
b.Property<int>("ClaimId")
.HasColumnType("int");
b.Property<string>("ClaimType")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("ClaimValue")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Email")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("RoleName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("UserId", "RoleId", "ClaimId");
b.ToView("v_UserRolesClaims");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.VocabularyModel", b =>
{
b.Property<string>("Lingua")
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<string>("Lemma")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Traduzione")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.HasKey("Lingua", "Lemma");
b.ToTable("Vocabulary");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.VocabularyTempModel", b =>
{
b.Property<string>("Lingua")
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<string>("Lemma")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Traduzione")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.HasKey("Lingua", "Lemma");
b.ToTable("VocabularyTemp");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.AspNetUserRoles", b =>
{
b.HasOne("WebDoorCreator.Data.DbModels.AspNetRoles", "RolesNav")
.WithMany()
.HasForeignKey("RoleId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("WebDoorCreator.Data.DbModels.AspNetUsers", "UsersNav")
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("RolesNav");
b.Navigation("UsersNav");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorModel", b =>
{
b.HasOne("WebDoorCreator.Data.DbModels.OrderModel", "OrderNav")
.WithMany()
.HasForeignKey("OrderId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("OrderNav");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorOpModel", b =>
{
b.HasOne("WebDoorCreator.Data.DbModels.DoorModel", "DoorNav")
.WithMany()
.HasForeignKey("DoorId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("DoorNav");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.OrderModel", b =>
{
b.HasOne("WebDoorCreator.Data.DbModels.CompanyModel", "CompanyNav")
.WithMany()
.HasForeignKey("CompanyId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("CompanyNav");
});
#pragma warning restore 612, 618
}
}
}
@@ -0,0 +1,52 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace WebDoorCreator.Data.Migrations.WDCData
{
public partial class DoorOpTypeUpdate : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
#if false
migrationBuilder.DropColumn(
name: "DoorOpIdPathFromPatriarch",
table: "DoorOpType");
#endif
migrationBuilder.DropColumn(
name: "JsoncConfig",
table: "DoorOpType");
migrationBuilder.AddColumn<decimal>(
name: "UnitCost",
table: "DoorOpType",
type: "decimal(18,2)",
nullable: false,
defaultValue: 0m);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "UnitCost",
table: "DoorOpType");
#if false
migrationBuilder.AddColumn<HierarchyId>(
name: "DoorOpIdPathFromPatriarch",
table: "DoorOpType",
type: "hierarchyid",
nullable: true);
#endif
migrationBuilder.AddColumn<string>(
name: "JsoncConfig",
table: "DoorOpType",
type: "nvarchar(max)",
nullable: false,
defaultValue: "");
}
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,48 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace WebDoorCreator.Data.Migrations.WDCData
{
public partial class DoorOpTypeTempSetup : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "DoorOpTypeTemp",
columns: table => new
{
DoorOpTypId = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
OpCode = table.Column<string>(type: "nvarchar(max)", nullable: false),
Description = table.Column<string>(type: "nvarchar(max)", nullable: false),
IsDefault = table.Column<bool>(type: "bit", nullable: false),
HasHw = table.Column<bool>(type: "bit", nullable: false),
IsConcrete = table.Column<bool>(type: "bit", nullable: false),
HwCode = table.Column<string>(type: "nvarchar(max)", nullable: false),
HwDescription = table.Column<string>(type: "nvarchar(max)", nullable: false),
DisplayUrl = table.Column<string>(type: "nvarchar(max)", nullable: false),
FPath = table.Column<string>(type: "nvarchar(max)", nullable: false),
ParentDoorOpId = table.Column<int>(type: "int", nullable: false),
UnitCost = table.Column<decimal>(type: "decimal(18,2)", nullable: false),
ExtOpCode = table.Column<string>(type: "nvarchar(max)", nullable: false),
ExtDescript = table.Column<string>(type: "nvarchar(max)", nullable: false),
Rev = table.Column<string>(type: "nvarchar(max)", nullable: false),
ValidFrom = table.Column<DateTime>(type: "datetime2", nullable: false),
ValidUntil = table.Column<DateTime>(type: "datetime2", nullable: false),
MaxAllowed = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_DoorOpTypeTemp", x => x.DoorOpTypId);
});
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "DoorOpTypeTemp");
}
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,99 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace WebDoorCreator.Data.Migrations.WDCData
{
public partial class modListValsCharSize : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<string>(
name: "Label",
table: "ListValuesTemp",
type: "nvarchar(250)",
maxLength: 250,
nullable: true,
oldClrType: typeof(string),
oldType: "nvarchar(50)",
oldMaxLength: 50,
oldNullable: true);
migrationBuilder.AlterColumn<string>(
name: "Value",
table: "ListValuesTemp",
type: "nvarchar(250)",
maxLength: 250,
nullable: false,
oldClrType: typeof(string),
oldType: "nvarchar(50)",
oldMaxLength: 50);
migrationBuilder.AlterColumn<string>(
name: "Label",
table: "ListValues",
type: "nvarchar(250)",
maxLength: 250,
nullable: true,
oldClrType: typeof(string),
oldType: "nvarchar(50)",
oldMaxLength: 50,
oldNullable: true);
migrationBuilder.AlterColumn<string>(
name: "Value",
table: "ListValues",
type: "nvarchar(250)",
maxLength: 250,
nullable: false,
oldClrType: typeof(string),
oldType: "nvarchar(50)",
oldMaxLength: 50);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<string>(
name: "Label",
table: "ListValuesTemp",
type: "nvarchar(50)",
maxLength: 50,
nullable: true,
oldClrType: typeof(string),
oldType: "nvarchar(250)",
oldMaxLength: 250,
oldNullable: true);
migrationBuilder.AlterColumn<string>(
name: "Value",
table: "ListValuesTemp",
type: "nvarchar(50)",
maxLength: 50,
nullable: false,
oldClrType: typeof(string),
oldType: "nvarchar(250)",
oldMaxLength: 250);
migrationBuilder.AlterColumn<string>(
name: "Label",
table: "ListValues",
type: "nvarchar(50)",
maxLength: 50,
nullable: true,
oldClrType: typeof(string),
oldType: "nvarchar(250)",
oldMaxLength: 250,
oldNullable: true);
migrationBuilder.AlterColumn<string>(
name: "Value",
table: "ListValues",
type: "nvarchar(50)",
maxLength: 50,
nullable: false,
oldClrType: typeof(string),
oldType: "nvarchar(250)",
oldMaxLength: 250);
}
}
}
File diff suppressed because it is too large Load Diff

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