diff --git a/Docs/ActualToDo.md b/Docs/ActualToDo.md
index a7e786d..20c3273 100644
--- a/Docs/ActualToDo.md
+++ b/Docs/ActualToDo.md
@@ -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...
+- [ ] aggiungere calcolo (FAKE) dei prezzi
+- [ ] aggiungere company x ordini (x viste DCA almeno)
+- [ ] gestione modifica descrizione/codice ordini (da aprte del cliente finale)
+- [ ] aggiunta gestione DCA x conferma prezzi e tempistiche
+- [ ] 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 correttametne 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
+- [ ] gestione calcolo prezzi (almeno fake)
### 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
+- [ ] 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
+- [ ] costruire libreria componenti (ad esmepio waiter/loader) da siti di esempio componenti in EgwCoreLib.Razor
### Top
diff --git a/Docs/ActualToDo.pdf b/Docs/ActualToDo.pdf
index d188a7f..8b01d1c 100644
Binary files a/Docs/ActualToDo.pdf and b/Docs/ActualToDo.pdf differ
diff --git a/REST/Insomnia_WebDoor.json b/REST/Insomnia_WebDoor.json
index 36ec7c1..6299663 100644
--- a/REST/Insomnia_WebDoor.json
+++ b/REST/Insomnia_WebDoor.json
@@ -1 +1 @@
-{"_type":"export","__export_format":4,"__export_date":"2023-05-16T14:38:04.134Z","__export_source":"insomnia.desktop.app:v2023.2.0","resources":[{"_id":"req_b7cff8a2a8de4c2ca51d02adc65ce8bd","parentId":"fld_eea02778569b41469ca39839d88e5843","modified":1684243207505,"created":1684242571463,"url":"{{ _.BASE_URL_UI }}/api/DoorImage/GetImage.svg?DoorId=asbc","name":"GetImage","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1656447728541.75,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_eea02778569b41469ca39839d88e5843","parentId":"wrk_1047c5920cea47239ab6361fb305d049","modified":1684242580401,"created":1684242559791,"name":"Services","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1614755481667.875,"_type":"request_group"},{"_id":"wrk_1047c5920cea47239ab6361fb305d049","parentId":null,"modified":1683871941985,"created":1683871941985,"name":"WebDoor","description":"","scope":"collection","_type":"workspace"},{"_id":"req_9f71a801a9954749974a85db789b75f9","parentId":"fld_e967cecdcd484143b8342b2f99373f05","modified":1683872944892,"created":1683872677272,"url":"{{ BASE_URL }}/api/Alive","name":"Alive","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1568635147332.875,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_e967cecdcd484143b8342b2f99373f05","parentId":"wrk_1047c5920cea47239ab6361fb305d049","modified":1683872631698,"created":1683871942040,"name":"QUEUE","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1573063234794,"_type":"request_group"},{"_id":"req_33c1140eb4a9404293bcb7a050947aa6","parentId":"fld_e967cecdcd484143b8342b2f99373f05","modified":1683872981739,"created":1683871942041,"url":"{{ BASE_URL }}/api/Queue/ActLenght","name":"Queue: ActLenght","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1568635147328.1875,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_04af1db5d237446785789f98ee4a41b0","parentId":"fld_e967cecdcd484143b8342b2f99373f05","modified":1683873069615,"created":1683873052089,"url":"{{ BASE_URL }}/api/Queue/StatusList","name":"Queue: StatusList","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1568635147325.8438,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_05c7701cb30d4c65aea5701ca0fb0d7e","parentId":"fld_e967cecdcd484143b8342b2f99373f05","modified":1683873098900,"created":1683873061615,"url":"{{ BASE_URL }}/api/Queue/TakeNextItems?numItems=1","name":"Queue: TakeNextItems","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1568635147324.6719,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_933a8db75390410bb594290151e07e17","parentId":"fld_e967cecdcd484143b8342b2f99373f05","modified":1683873309749,"created":1683871942060,"url":"{{ BASE_URL }}/api/Queue/ResetQueue?passPhrase=bbbBirdIsTheWord","name":"Queue: Reset","description":"","method":"POST","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1568635147313.9297,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_86f4ce7874e840999d56b92c8d1cc4e7","parentId":"fld_e967cecdcd484143b8342b2f99373f05","modified":1684142639756,"created":1684142633113,"url":"{{ BASE_URL }}/api/Queue/DCCacheCleanup?passPhrase=bbbBirdIsTheWord","name":"Door: CalcCache Cleanup","description":"","method":"POST","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1568635147313.9053,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_385ec0a2d52d4e049dbafdc014401e42","parentId":"fld_e967cecdcd484143b8342b2f99373f05","modified":1683876842459,"created":1683873151011,"url":"{{ BASE_URL }}/api/Queue/SaveProcResult","name":"Queue: SaveProcResult","description":"","method":"POST","body":{"mimeType":"application/json","text":"[\n\t{\n\t\"doorIdVers\": \"194.1\",\n\t\"validated\": true,\n\t\"errorMsg\": \"\",\n\t\"svgGen\": \"\",\n\t\"artifactPath\": \"\"\n\t},\n\t{\n\t\"doorIdVers\": \"186.1\",\n\t\"validated\": true,\n\t\"errorMsg\": \"\",\n\t\"svgGen\": \"\",\n\t\"artifactPath\": \"\"\n\t}\n]"},"parameters":[],"headers":[{"id":"pair_13bcc57d5469469880e48090f553b406","name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1568635147313.8809,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"env_ec2a19d054f240dbb5a1bc4f7aa0e073","parentId":"wrk_1047c5920cea47239ab6361fb305d049","modified":1683871941986,"created":1683871941986,"name":"Base Environment","data":{},"dataPropertyOrder":null,"color":null,"isPrivate":false,"metaSortKey":1568635121297,"_type":"environment"},{"_id":"jar_9208e8802d4545bc9dc0cab97b68ce7f","parentId":"wrk_1047c5920cea47239ab6361fb305d049","modified":1683871941997,"created":1683871941997,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_cb4cf1b0be6f4384acf7d74597615a05","parentId":"wrk_1047c5920cea47239ab6361fb305d049","modified":1683871942123,"created":1683871941999,"fileName":"WebDoor","contents":"","contentType":"yaml","_type":"api_spec"},{"_id":"env_26d4acddae6a4fb99807e6c5c2d4f2f6","parentId":"env_ec2a19d054f240dbb5a1bc4f7aa0e073","modified":1684242666469,"created":1683871941987,"name":"Dev","data":{"BASE_URL":"https://localhost:7043","BASE_URL_UI":"https://localhost:7196"},"dataPropertyOrder":{"&":["BASE_URL","BASE_URL_UI"]},"color":null,"isPrivate":false,"metaSortKey":1573051003227,"_type":"environment"},{"_id":"env_320dbe95decf456f80d353bd7bd63b30","parentId":"env_ec2a19d054f240dbb5a1bc4f7aa0e073","modified":1683872932739,"created":1683871941990,"name":"IIS01","data":{"BASE_URL":"https://iis01.egalware.com/WDC/SRV"},"dataPropertyOrder":{"&":["BASE_URL"]},"color":null,"isPrivate":false,"metaSortKey":1573051003277,"_type":"environment"},{"_id":"env_7a12ac17116349cc83a0ecd07f529797","parentId":"env_ec2a19d054f240dbb5a1bc4f7aa0e073","modified":1683872935645,"created":1683871941993,"name":"IIS02","data":{"BASE_URL":"https://iis02.egalware.com/WDC/SRV"},"dataPropertyOrder":{"&":["BASE_URL"]},"color":null,"isPrivate":false,"metaSortKey":1573051003377,"_type":"environment"},{"_id":"env_65f3b45887104cad821f07ac19cd26ed","parentId":"env_ec2a19d054f240dbb5a1bc4f7aa0e073","modified":1683872938145,"created":1683872609078,"name":"IIS04","data":{"BASE_URL":"https://iis04.egalware.com/WDC/SRV"},"dataPropertyOrder":{"&":["BASE_URL"]},"color":null,"isPrivate":false,"metaSortKey":1573051003327,"_type":"environment"}]}
\ No newline at end of file
+{"_type":"export","__export_format":4,"__export_date":"2023-05-26T08:27:07.146Z","__export_source":"insomnia.desktop.app:v2023.2.1","resources":[{"_id":"req_9f71a801a9954749974a85db789b75f9","parentId":"fld_e967cecdcd484143b8342b2f99373f05","modified":1683872944892,"created":1683872677272,"url":"{{ BASE_URL }}/api/Alive","name":"Alive","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1568635147332.875,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_e967cecdcd484143b8342b2f99373f05","parentId":"wrk_1047c5920cea47239ab6361fb305d049","modified":1684770297777,"created":1683871942040,"name":"QUEUE","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1638985427863.0635,"_type":"request_group"},{"_id":"wrk_1047c5920cea47239ab6361fb305d049","parentId":null,"modified":1683871941985,"created":1683871941985,"name":"WebDoor","description":"","scope":"collection","_type":"workspace"},{"_id":"req_33c1140eb4a9404293bcb7a050947aa6","parentId":"fld_e967cecdcd484143b8342b2f99373f05","modified":1683872981739,"created":1683871942041,"url":"{{ BASE_URL }}/api/Queue/ActLenght","name":"Queue: ActLenght","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1568635147328.1875,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_04af1db5d237446785789f98ee4a41b0","parentId":"fld_e967cecdcd484143b8342b2f99373f05","modified":1683873069615,"created":1683873052089,"url":"{{ BASE_URL }}/api/Queue/StatusList","name":"Queue: StatusList","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1568635147325.8438,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_05c7701cb30d4c65aea5701ca0fb0d7e","parentId":"fld_e967cecdcd484143b8342b2f99373f05","modified":1683873098900,"created":1683873061615,"url":"{{ BASE_URL }}/api/Queue/TakeNextItems?numItems=1","name":"Queue: TakeNextItems","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1568635147324.6719,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_933a8db75390410bb594290151e07e17","parentId":"fld_e967cecdcd484143b8342b2f99373f05","modified":1683873309749,"created":1683871942060,"url":"{{ BASE_URL }}/api/Queue/ResetQueue?passPhrase=bbbBirdIsTheWord","name":"Queue: Reset","description":"","method":"POST","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1568635147313.9297,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_24f4d81246314d7daa02acf22df1c57a","parentId":"fld_e967cecdcd484143b8342b2f99373f05","modified":1684943593640,"created":1684942846513,"url":"{{ BASE_URL }}/api/Queue/ResetQueueProcessing","name":"Queue: ResetQueueProcessing","description":"","method":"POST","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1568635147313.9175,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_86f4ce7874e840999d56b92c8d1cc4e7","parentId":"fld_e967cecdcd484143b8342b2f99373f05","modified":1684142639756,"created":1684142633113,"url":"{{ BASE_URL }}/api/Queue/DCCacheCleanup?passPhrase=bbbBirdIsTheWord","name":"Door: CalcCache Cleanup","description":"","method":"POST","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1568635147313.9053,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_385ec0a2d52d4e049dbafdc014401e42","parentId":"fld_e967cecdcd484143b8342b2f99373f05","modified":1683876842459,"created":1683873151011,"url":"{{ BASE_URL }}/api/Queue/SaveProcResult","name":"Queue: SaveProcResult","description":"","method":"POST","body":{"mimeType":"application/json","text":"[\n\t{\n\t\"doorIdVers\": \"194.1\",\n\t\"validated\": true,\n\t\"errorMsg\": \"\",\n\t\"svgGen\": \"\",\n\t\"artifactPath\": \"\"\n\t},\n\t{\n\t\"doorIdVers\": \"186.1\",\n\t\"validated\": true,\n\t\"errorMsg\": \"\",\n\t\"svgGen\": \"\",\n\t\"artifactPath\": \"\"\n\t}\n]"},"parameters":[],"headers":[{"id":"pair_13bcc57d5469469880e48090f553b406","name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1568635147313.8809,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_1653ec8344a444a380ff9598e25e2705","parentId":"fld_c1b883fc94834cb0ab5fc793c27664cd","modified":1685028535818,"created":1685023946363,"url":"{{ _.BASE_URL }}/api/Report/GetOrderReport?OrderId=33&Format=PDF","name":"GetOrderReport - pdf","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1632927941314.2664,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_c1b883fc94834cb0ab5fc793c27664cd","parentId":"wrk_1047c5920cea47239ab6361fb305d049","modified":1685023934974,"created":1685023922324,"name":"Reports","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1634947103497.1987,"_type":"request_group"},{"_id":"req_9fe9dea269264c54881de99f4a6e5063","parentId":"fld_c1b883fc94834cb0ab5fc793c27664cd","modified":1685028544519,"created":1685024097175,"url":"{{ _.BASE_URL }}/api/Report/GetOrderReport?OrderId=33&Format=HTML","name":"GetOrderReport - html","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1630139760134.6333,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_8b4245ae880a44c2a92f5d416122ff78","parentId":"fld_c1b883fc94834cb0ab5fc793c27664cd","modified":1685028430684,"created":1685024123713,"url":"{{ _.BASE_URL }}/api/Report/GetOrderReport?OrderId=33&Format=DOCX","name":"GetOrderReport - word","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1628745669544.8167,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_cbdace6ef9094230a6d1836135b600a0","parentId":"fld_c1b883fc94834cb0ab5fc793c27664cd","modified":1685028438031,"created":1685024133883,"url":"{{ _.BASE_URL }}/api/Report/GetOrderReport?OrderId=33&Format=XLSX","name":"GetOrderReport - excel","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1628048624249.9082,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_d53afea7e9a047c7adf6f7b41425b733","parentId":"fld_79df9ebcc8804b908b84264aa1fcccc9","modified":1684770483719,"created":1684770204037,"url":"{{ _.BASE_URL }}/api/DoorImage/GetImage.svg?DoorId=183","name":"GetImage - svg","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1684770215938,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_79df9ebcc8804b908b84264aa1fcccc9","parentId":"wrk_1047c5920cea47239ab6361fb305d049","modified":1684770280483,"created":1684770197446,"name":"IMAGES","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1630908779131.334,"_type":"request_group"},{"_id":"req_316e452382fa43a09267a8efabb64ff3","parentId":"fld_79df9ebcc8804b908b84264aa1fcccc9","modified":1684834994375,"created":1684834991264,"url":"{{ _.BASE_URL }}/api/DoorImage/GetImage.svg?DoorId=191","name":"GetImage - svg KO","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1683731815207.75,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_285b8a8379bf4ad0860c2d54b31f7fac","parentId":"fld_79df9ebcc8804b908b84264aa1fcccc9","modified":1684770496606,"created":1684770397005,"url":"{{ _.BASE_URL }}/api/DoorImage/GetImage.png?DoorId=183","name":"GetImage - png","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1682693414477.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_d0ae3ab16d054df39dac20bd8e43ea0c","parentId":"fld_79df9ebcc8804b908b84264aa1fcccc9","modified":1684835012322,"created":1684835009154,"url":"{{ _.BASE_URL }}/api/DoorImage/GetImage.png?DoorId=191","name":"GetImage - png - KO","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1681655013747.25,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_b7cff8a2a8de4c2ca51d02adc65ce8bd","parentId":"fld_eea02778569b41469ca39839d88e5843","modified":1684770265259,"created":1684242571463,"url":"{{ _.BASE_URL_UI }}/api/DoorImage/GetImage.svg?DoorId=183","name":"GetImage","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1645523667312.5588,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_eea02778569b41469ca39839d88e5843","parentId":"wrk_1047c5920cea47239ab6361fb305d049","modified":1684770186056,"created":1684242559791,"name":"UI Services","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1614755481667.875,"_type":"request_group"},{"_id":"env_ec2a19d054f240dbb5a1bc4f7aa0e073","parentId":"wrk_1047c5920cea47239ab6361fb305d049","modified":1683871941986,"created":1683871941986,"name":"Base Environment","data":{},"dataPropertyOrder":null,"color":null,"isPrivate":false,"metaSortKey":1568635121297,"_type":"environment"},{"_id":"jar_9208e8802d4545bc9dc0cab97b68ce7f","parentId":"wrk_1047c5920cea47239ab6361fb305d049","modified":1683871941997,"created":1683871941997,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_cb4cf1b0be6f4384acf7d74597615a05","parentId":"wrk_1047c5920cea47239ab6361fb305d049","modified":1683871942123,"created":1683871941999,"fileName":"WebDoor","contents":"","contentType":"yaml","_type":"api_spec"},{"_id":"env_26d4acddae6a4fb99807e6c5c2d4f2f6","parentId":"env_ec2a19d054f240dbb5a1bc4f7aa0e073","modified":1684242666469,"created":1683871941987,"name":"Dev","data":{"BASE_URL":"https://localhost:7043","BASE_URL_UI":"https://localhost:7196"},"dataPropertyOrder":{"&":["BASE_URL","BASE_URL_UI"]},"color":null,"isPrivate":false,"metaSortKey":1573051003227,"_type":"environment"},{"_id":"env_320dbe95decf456f80d353bd7bd63b30","parentId":"env_ec2a19d054f240dbb5a1bc4f7aa0e073","modified":1683872932739,"created":1683871941990,"name":"IIS01","data":{"BASE_URL":"https://iis01.egalware.com/WDC/SRV"},"dataPropertyOrder":{"&":["BASE_URL"]},"color":null,"isPrivate":false,"metaSortKey":1573051003277,"_type":"environment"},{"_id":"env_7a12ac17116349cc83a0ecd07f529797","parentId":"env_ec2a19d054f240dbb5a1bc4f7aa0e073","modified":1683872935645,"created":1683871941993,"name":"IIS02","data":{"BASE_URL":"https://iis02.egalware.com/WDC/SRV"},"dataPropertyOrder":{"&":["BASE_URL"]},"color":null,"isPrivate":false,"metaSortKey":1573051003377,"_type":"environment"},{"_id":"env_65f3b45887104cad821f07ac19cd26ed","parentId":"env_ec2a19d054f240dbb5a1bc4f7aa0e073","modified":1683872938145,"created":1683872609078,"name":"IIS04","data":{"BASE_URL":"https://iis04.egalware.com/WDC/SRV"},"dataPropertyOrder":{"&":["BASE_URL"]},"color":null,"isPrivate":false,"metaSortKey":1573051003327,"_type":"environment"}]}
\ No newline at end of file
diff --git a/Resources/ChangeLog.html b/Resources/ChangeLog.html
index 2207b0b..4f31fdd 100644
--- a/Resources/ChangeLog.html
+++ b/Resources/ChangeLog.html
@@ -1,6 +1,6 @@
WebDoorCreator - Egalware
- Version: 0.9.2305.2319
+ Version: 0.9.2306.0915
Release note:
-
diff --git a/Resources/VersNum.txt b/Resources/VersNum.txt
index 1e5744e..cb838c9 100644
--- a/Resources/VersNum.txt
+++ b/Resources/VersNum.txt
@@ -1 +1 @@
-0.9.2305.2319
+0.9.2306.0915
diff --git a/Resources/manifest.xml b/Resources/manifest.xml
index 2baaa2f..3817a4a 100644
--- a/Resources/manifest.xml
+++ b/Resources/manifest.xml
@@ -1,6 +1,6 @@
-
- 0.9.2305.2319
+ 0.9.2306.0915
http://nexus.steamware.net/repository/SWS/WDC/stable/WDC.UI.zip
http://nexus.steamware.net/repository/SWS/WDC/stable/ChangeLog.html
false
diff --git a/TestExtProc/Program.cs b/TestExtProc/Program.cs
index 0d1d158..083502c 100644
--- a/TestExtProc/Program.cs
+++ b/TestExtProc/Program.cs
@@ -1,10 +1,7 @@
// See https://aka.ms/new-console-template for more information
using System.Diagnostics;
-using System.Net.Security;
-using System.Text;
int lineCount = 0;
-//StringBuilder output = new StringBuilder();
void OutputHandler(object sender, DataReceivedEventArgs e)
diff --git a/WebDoorCreator.API/Controllers/OrderController.cs b/WebDoorCreator.API/Controllers/OrderController.cs
index d6771da..1de7526 100644
--- a/WebDoorCreator.API/Controllers/OrderController.cs
+++ b/WebDoorCreator.API/Controllers/OrderController.cs
@@ -28,7 +28,7 @@ namespace WebDoorCreator.API.Controllers
}
///
/// 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)
///
///
[HttpGet("GetCurrent")]
@@ -36,7 +36,7 @@ namespace WebDoorCreator.API.Controllers
{
List answ = new List();
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
///
///
///
- [HttpGet("OrderDetail")]
- public async Task OrderDetail(int OrderId)
+ [HttpGet("GetDetail")]
+ public async Task GetDetail(int OrderId)
{
OrderDetailsDTO answ = new OrderDetailsDTO()
{
@@ -58,19 +58,81 @@ 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 dcDTO = new List();
+ var doorsList = await WDCService.DoorGetByOrderId(OrderId);
+ foreach (var door in doorsList)
+ {
+ // recupero i dato DoorOp
+ var doorOpList = await WDCService.DoorOpGetByDoorId(door.DoorId);
+ Dictionary> currBOMList = new Dictionary>();
+ // 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 currOp = new List();
+ 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;
}
+ ///
+ /// Door price update for order's cost evaluation
+ ///
+ /// list of DoorPriceDTO with UnitPrices
+ ///
+ [HttpPost("DoorPriceUpdate")]
+ public async Task DoorPriceUpdate(List 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();
diff --git a/WebDoorCreator.API/Controllers/QueueController.cs b/WebDoorCreator.API/Controllers/QueueController.cs
index b1c00dd..cab3dfe 100644
--- a/WebDoorCreator.API/Controllers/QueueController.cs
+++ b/WebDoorCreator.API/Controllers/QueueController.cs
@@ -81,6 +81,19 @@ namespace WebDoorCreator.API.Controllers
return answ;
}
+ ///
+ /// Reset della coda di processing x evitare condizioni di "stuck in calc"
+ ///
+ ///
+ [HttpPost("ResetQueueProcessing")]
+ public async Task ResetQueueProcessing()
+ {
+ string answ = "NA";
+ bool fatto = await QDataServ.ResetQueueProcessing();
+ answ = fatto ? "OK" : "NO";
+ return answ;
+ }
+
///
/// Invio elenco risultati elaborazioni (modalità boolean di esecuzione corretta)
///
@@ -130,8 +143,6 @@ namespace WebDoorCreator.API.Controllers
return actQueue;
}
-
-
#endregion Public Methods
#region Private Fields
diff --git a/WebDoorCreator.API/Controllers/ReportController.cs b/WebDoorCreator.API/Controllers/ReportController.cs
new file mode 100644
index 0000000..41b7016
--- /dev/null
+++ b/WebDoorCreator.API/Controllers/ReportController.cs
@@ -0,0 +1,155 @@
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.EntityFrameworkCore.Metadata.Internal;
+using Microsoft.Reporting.NETCore;
+using NLog;
+using System.Data;
+using ToDataTable;
+using WebDoorCreator.Core.ReportViewer;
+using WebDoorCreator.Data.Services;
+
+namespace WebDoorCreator.API.Controllers
+{
+ [Route("api/[controller]")]
+ [ApiController]
+ public class ReportController : ControllerBase
+ {
+ #region Public Constructors
+
+ public ReportController(IConfiguration configuration, WebDoorCreatorService DataService)
+ {
+ Log.Info("Starting ReportController");
+ _configuration = configuration;
+ WDCService = DataService;
+ Log.Info("Avviato ReportController");
+ }
+
+ #endregion Public Constructors
+
+ #region Public Methods
+
+ // GET: api/Alive
+ [HttpGet]
+ public string Get()
+ {
+ return "OK";
+ }
+
+ ///
+ /// Restituisce report dato ordine e formato
+ ///
+ /// ID univoco ordine
+ /// Formato: PDF/HTML/DOCX/XLSX
+ ///
+ [HttpGet("GetOrderReport")]
+ public async Task GetOrderReport(int OrderId, string Format)
+ {
+ // dato il servizio è impostato il file rdlc e la struttura data DS da passare
+ await Task.Delay(1);
+ // inizializzo parametri report di default
+ Core.ReportViewer.Report.RenderParams currParams = new Core.ReportViewer.Report.RenderParams(Format);
+ currParams.FileName= $"DCA-Order-{OrderId:00000000}";
+
+ // restituisco oggetto ReportOrder specifico
+ return await OrderReportGet(OrderId, currParams);
+ }
+
+ #endregion Public Methods
+
+ #region Private Fields
+
+ private static IConfiguration _configuration = null!;
+
+ private static Logger Log = LogManager.GetCurrentClassLogger();
+
+ #endregion Private Fields
+
+ #region Private Properties
+
+ private WebDoorCreatorService WDCService { get; set; } = null!;
+
+ #endregion Private Properties
+
+ #region Private Methods
+
+#if false
+ ///
+ /// Restituisce filestream del report DEMO
+ ///
+ /// Nome file desiderato x download
+ ///
+ ///
+ ///
+ ///
+ private IActionResult ReportDemoGet(int OrderId, Core.ReportViewer.Report.RenderParams CurrParams)
+ {
+ using (var report = new LocalReport())
+ {
+ // setup parametri
+ List RepParams = new List();
+ RepParams.Add(new ReportParameter("Title", "Invoice 4/2020"));
+ // setup DsReport
+ Dictionary DsDict = new Dictionary();
+ Random rnd = new Random();
+ decimal WidgetPrice = 204.99m;
+ decimal GizmoPrice = 2.41m;
+ var items = new[] {
+ new ReportItem { Description = "Widget 6000", Price = WidgetPrice, Qty = rnd.Next(1,5) },
+ new ReportItem { Description = "Gizmo MAX", Price = GizmoPrice, Qty = rnd.Next(10,50) },
+ new ReportItem { Description = "Pippo", Price = 1.2m, Qty = rnd.Next(3,9) },
+ new ReportItem { Description = "Paperino", Price = 1.74m, Qty = rnd.Next(5,15) }
+ }.ToList();
+ var totaQty = items.Sum(x => x.Qty);
+ var avgPrice = items.Sum(x => x.Qty * x.Price) / totaQty;
+ items.Add(new ReportItem() { Description = "Total", Qty = totaQty, Price = Math.Round(avgPrice, 2) });
+
+ DataTable tabDati = items.ToDataTable();
+ tabDati.TableName = "Items";
+ // aggiungo dizionario
+ DsDict.Add("Items", tabDati);
+
+ // carico dati nel report...
+ Core.ReportViewer.Report.Load(report, "Report.rdlc", RepParams, DsDict);
+ var rawData = report.Render(CurrParams.RenderFormat);
+ return File(rawData, CurrParams.MimeType, $"{CurrParams.FileName}.{CurrParams.Extension}");
+ }
+ }
+#endif
+ ///
+ /// Restituisce filestream del report richiesto
+ ///
+ /// ID Ordine
+ /// Parametri rendering report
+ ///
+ private async Task OrderReportGet(int OrderId, Core.ReportViewer.Report.RenderParams CurrParams)
+ {
+ using (var report = new LocalReport())
+ {
+ // setup parametri
+ List RepParams = new List();
+ RepParams.Add(new ReportParameter("OrderID", $"{OrderId}"));
+ // setup DsReport
+ Dictionary DsDict = new Dictionary();
+ // recupero tab dati config...
+ var confList = await WDCService.ConfigGetAll();
+ DataTable tabDatiConf = confList.ToDataTable();
+ tabDatiConf.TableName = "DataSetConfig";
+ // aggiungo a dizionario
+ DsDict.Add("DataSetConfig", tabDatiConf);
+
+ // recupero dati veri del report...
+ var repDetailData = await WDCService.PreRepOrderGetByKey(OrderId);
+ DataTable tabDati = repDetailData.ToDataTable();
+ tabDati.TableName = "DataSetOrderReportExpl";
+ // aggiungo dizionario
+ DsDict.Add("DataSetOrderReportExpl", tabDati);
+
+ // carico dati nel report...
+ Core.ReportViewer.Report.Load(report, "ReportOrder.rdlc", RepParams, DsDict);
+ var rawData = report.Render(CurrParams.RenderFormat);
+ return File(rawData, CurrParams.MimeType, $"{CurrParams.FileName}.{CurrParams.Extension}");
+ }
+ }
+
+ #endregion Private Methods
+ }
+}
\ No newline at end of file
diff --git a/WebDoorCreator.API/Reports/Report.rdlc b/WebDoorCreator.API/Reports/Report.rdlc
new file mode 100644
index 0000000..e0049c6
--- /dev/null
+++ b/WebDoorCreator.API/Reports/Report.rdlc
@@ -0,0 +1,447 @@
+
+
+ 0
+
+
+
+ System.Data.DataSet
+ /* Local Connection */
+
+ bd60bef3-b3d9-477e-9052-ab58c6f1ec86
+
+
+
+
+
+ LocalSource
+ /* Local Query */
+
+
+
+ Description
+ System.String
+
+
+ Price
+ System.Decimal
+
+
+ Qty
+ System.Int32
+
+
+ Total
+ System.Decimal
+
+
+
+ LocalSource
+ Items
+ ReportViewerCore.ReportItem
+
+
+
+
+
+
+
+
+
+
+
+ 8.31785cm
+
+
+ 2.51905cm
+
+
+ 2.51905cm
+
+
+ 2.51905cm
+
+
+
+
+ 0.67938cm
+
+
+
+
+ true
+ true
+
+
+
+
+ Description
+
+
+
+
+
+
+ Textbox1
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Price
+
+
+
+
+
+
+ Textbox3
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Qty
+
+
+
+
+
+
+ Textbox5
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Total
+
+
+
+
+
+
+ Textbox2
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ 0.67938cm
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!Description.Value
+
+
+
+
+
+
+ Description
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!Price.Value
+
+
+
+
+
+
+ Price
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!Qty.Value
+
+
+
+
+
+
+ Qty
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!Total.Value
+
+
+
+
+
+
+ Total
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ After
+
+
+
+
+
+
+ Items
+ 2.85433cm
+ 0.3175cm
+ 1.35875cm
+ 15.875cm
+
+
+
+
+
+ true
+ true
+
+
+
+
+ =Parameters!Title.Value
+
+
+
+
+
+
+ Textbox6
+ 0.26141cm
+ 0.3175cm
+ 1.79062cm
+ 15.875cm
+ 1
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ 2in
+
+
+ 6.5in
+
+ 29.7cm
+ 21cm
+ 2cm
+ 2cm
+ 2cm
+ 2cm
+ 0.13cm
+
+
+
+
+
+
+ String
+ true
+ true
+ ReportParameter1
+
+
+
+
+ 4
+ 2
+
+
+ 0
+ 0
+ Title
+
+
+
+
+ Cm
+ 156b21d2-9542-4902-99ef-7ec823774bb2
+
\ No newline at end of file
diff --git a/WebDoorCreator.API/Reports/ReportOrder.rdlc b/WebDoorCreator.API/Reports/ReportOrder.rdlc
new file mode 100644
index 0000000..8207d51
--- /dev/null
+++ b/WebDoorCreator.API/Reports/ReportOrder.rdlc
@@ -0,0 +1,2625 @@
+
+
+
+
+
+
+
+
+ 7.5in
+
+
+
+
+ 5.6668in
+
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Order Date:
+
+
+
+ =Fields!DateIns.Value
+
+
+
+
+
+
+ DateIns
+ 0.74941in
+ 3.97792in
+ 0.25in
+ 3.33458in
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!OrderDescript.Value
+
+
+
+
+
+
+ OrderDescript
+ 1.39403in
+ 0.04167in
+ 0.25in
+ 7.27083in
+ 1
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!CompanyExtCode.Value
+
+
+
+
+
+
+ CompanyExtCode
+ 0.74941in
+ 0.04167in
+ 0.25in
+ 3.33334in
+ 2
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ Company:
+
+
+
+ =Fields!CompanyId.Value
+
+
+
+
+
+
+
+
+ =Fields!CompanyName.Value
+
+
+
+
+
+
+ CompanyId
+ 0.42997in
+ 0.04167in
+ 0.25in
+ 7.27083in
+ 3
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ Order Number:
+
+
+
+ =Fields!OrderId.Value
+
+
+
+
+
+
+
+
+ =Fields!OrderExtCode.Value
+
+
+
+
+
+
+ OrderId
+ 0.22508cm
+ 0.10584cm
+ 0.27in
+ 7.27083in
+ 4
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ Address:
+
+
+
+ =Fields!Address.Value
+
+
+
+ -
+
+
+
+
+ =Fields!City.Value
+
+
+
+ -
+
+
+
+
+ =Fields!State.Value
+
+
+
+ -
+
+
+
+
+ =Fields!ZipCode.Value
+
+
+
+
+
+
+ Address
+ 1.07268in
+ 0.04167in
+ 0.25in
+ 7.27083in
+ 5
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ 1.71875in
+ 7.5in
+
+
+
+
+
+
+
+
+ 7.5in
+
+
+
+
+ 3.69097in
+
+
+
+
+
+
+
+
+
+ 1.26042in
+
+
+ 1.25in
+
+
+ 1.82292in
+
+
+ 1in
+
+
+
+
+ 0.22in
+
+
+
+
+ true
+ true
+
+
+
+
+ Object Type
+
+
+
+
+
+
+ Textbox64
+
+
+ LightGrey
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Object Key
+
+
+
+
+
+
+ Textbox66
+
+
+ LightGrey
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Object Val
+
+
+
+
+
+
+ Textbox68
+
+
+ LightGrey
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Qty
+
+
+
+
+
+
+ Textbox70
+
+
+ LightGrey
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ 0.21in
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!ObjectType.Value
+
+
+
+
+
+
+ ObjectType
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!ObjectKey.Value
+
+
+
+
+
+
+ ObjectKey
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+
+
+
+
+ =Fields!ObjectVal.Value
+
+
+
+
+
+
+ ObjectVal
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!ObjectQty.Value
+
+
+
+
+
+
+ ObjectQty
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ After
+ true
+ true
+
+
+
+
+ =Fields!DoorId.Value
+
+
+
+
+ =Fields!DoorId.Value
+
+
+
+
+
+ Detail
+
+
+
+
+ Detail_Collection
+ Output
+ true
+
+
+
+
+
+ DataSetOrderReportExpl
+
+
+ =Fields!ObjectType.Value
+ Equal
+
+ INFO
+
+
+
+ 1.09979in
+ 0.28223cm
+ 0.43in
+ 5.33333in
+
+
+
+ External
+ =Variables!ImageCodeBaseUrl.Value.ToString() + "DoorImage/GetImage.png?DoorId=" + Fields!DoorId.Value.Tostring()
+
+' leggo in dataset config il valore del URL Base per generatore immagini
+' aggiungo "DoorImage/GetImage.png?DoorId=" x immagine Door e valore DoorId per identificare immagine
+
+' =IIF(Lookup("prt_ImageCodeBaseUrl", Fields!chiave.Value, Fields!valore.Value, "DataSetConfig") = Nothing, "Err", Lookup("prt_ImageCodeBaseUrl", Fields!chiave.Value, Fields!valore.Value, "DataSetConfig")) + "DoorImage/GetImage.png?DoorId=" + Fields!DoorId.Value.Tostring()
+
+' esempio in DEV https://iis01.egalware.com/WDC/SRV/api/DoorImage/GetImage.png?DoorId=191
+
+'=Replace("https://iis01.egalware.com/WDC/SRV/api/DoorImage/GetImage.png?DoorId=QRCODEVALUE","QRC'ODEVALUE",Fields!DoorId.Value.Tostring())
+ FitProportional
+ 0.09722in
+ 5.88417in
+ 3.48958in
+ 1.61583in
+ 1
+
+
+
+
+
+
+
+
+ 1.26042in
+
+
+ 1.25in
+
+
+ 1.82292in
+
+
+ 1in
+
+
+
+
+ 0.22in
+
+
+
+
+ true
+ true
+
+
+
+
+ Object Type
+
+
+
+
+
+
+ Textbox64
+
+
+ LightGrey
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Object Key
+
+
+
+
+
+
+ Textbox66
+
+
+ LightGrey
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Object Val
+
+
+
+
+
+
+ Textbox68
+
+
+ LightGrey
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Qty
+
+
+
+
+
+
+ Textbox70
+
+
+ LightGrey
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ 0.21in
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!ObjectType.Value
+
+
+
+
+
+
+ ObjectType
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!ObjectKey.Value
+
+
+
+
+
+
+ ObjectKey
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+
+
+
+
+ =Fields!ObjectVal.Value
+
+
+
+
+
+
+ ObjectVal
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!ObjectQty.Value
+
+
+
+
+
+
+ ObjectQty
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ After
+ true
+ true
+
+
+
+
+ =Fields!DoorId.Value
+
+
+
+
+ =Fields!DoorId.Value
+
+
+
+
+
+ Detail
+
+
+
+
+ Detail_Collection
+ Output
+ true
+
+
+
+
+
+ DataSetOrderReportExpl
+
+
+ =Fields!ObjectType.Value
+ Equal
+
+ OPTIONS
+
+
+
+ 2.3793in
+ 0.28223cm
+ 0.43in
+ 5.33334in
+ 2
+
+
+
+
+
+
+ 1.26042in
+
+
+ 1.25in
+
+
+ 1.82292in
+
+
+ 1in
+
+
+
+
+ 0.22in
+
+
+
+
+ true
+ true
+
+
+
+
+ Object Type
+
+
+
+
+
+
+ Textbox64
+
+
+ LightGrey
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Object Key
+
+
+
+
+
+
+ Textbox66
+
+
+ LightGrey
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Object Val
+
+
+
+
+
+
+ Textbox68
+
+
+ LightGrey
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Qty
+
+
+
+
+
+
+ Textbox70
+
+
+ LightGrey
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ 0.21in
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!ObjectType.Value
+
+
+
+
+
+
+ ObjectType
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!ObjectKey.Value
+
+
+
+
+
+
+ ObjectKey
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+
+
+
+
+ =Fields!ObjectVal.Value
+
+
+
+
+
+
+ ObjectVal
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!ObjectQty.Value
+
+
+
+
+
+
+ ObjectQty
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ After
+ true
+ true
+
+
+
+
+ =Fields!DoorId.Value
+
+
+
+
+ =Fields!DoorId.Value
+
+
+
+
+
+ Detail
+
+
+
+
+ Detail_Collection
+ Output
+ true
+
+
+
+
+
+ DataSetOrderReportExpl
+
+
+ =Fields!ObjectType.Value
+ Equal
+
+ HARDWARE
+
+
+
+ 1.72305in
+ 0.28223cm
+ 0.43in
+ 5.33334in
+ 3
+
+
+
+ true
+
+
+
+
+ =Variables!ImageCodeBaseUrl.Value.ToString() + "DoorImage/GetImage.png?DoorId=" + Fields!DoorId.Value.Tostring()
+
+' leggo in dataset config il valore del URL Base per generatore immagini
+' aggiungo "DoorImage/GetImage.png?DoorId=" x immagine Door e valore DoorId per identificare immagine
+
+' =IIF(Lookup("prt_ImageCodeBaseUrl", Fields!chiave.Value, Fields!valore.Value, "DataSetConfig") = Nothing, "Err", Lookup("prt_ImageCodeBaseUrl", Fields!chiave.Value, Fields!valore.Value, "DataSetConfig")) + "DoorImage/GetImage.png?DoorId=" + Fields!DoorId.Value.Tostring()
+
+' esempio in DEV https://iis01.egalware.com/WDC/SRV/api/DoorImage/GetImage.png?DoorId=191
+
+'=Replace("https://iis01.egalware.com/WDC/SRV/api/DoorImage/GetImage.png?DoorId=QRCODEVALUE","QRC'ODEVALUE",Fields!DoorId.Value.Tostring())
+
+
+
+
+
+
+ 2.87875in
+ 0.09376in
+ 0.25in
+ 5.3507in
+ 4
+
+ true
+
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Door:
+
+
+
+ =Fields!DoorId.Value
+
+
+
+
+
+
+
+ =Fields!DoorExtCode.Value
+
+
+
+
+
+
+ DoorId1
+ 0.125in
+ 0.25in
+ 5.0543in
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ Type:
+
+
+
+ =Fields!TypeId.Value
+
+
+
+
+
+
+ TypeId
+ 0.29167in
+ 0.125in
+ 0.25in
+ 1.19097in
+ 1
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ Qty:
+
+
+
+ =Fields!Quantity.Value
+
+
+
+
+
+
+ 0.29167in
+ 1.38542in
+ 0.25in
+ 1.13542in
+ 2
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ Cost:
+
+
+
+ =Fields!UnitCost.Value
+
+
+
+
+
+
+ UnitCost
+ 0.29167in
+ 2.75347in
+ 0.25in
+ 1.13541in
+ 3
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ Tot:
+
+
+
+ =Fields!UnitCost.Value * Fields!Quantity.Value
+
+
+
+
+
+
+ UnitCost
+ 0.29167in
+ 3.95833in
+ 0.25in
+ 1.13541in
+ 4
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ Descr:
+
+
+
+ =Fields!DoorDescript.Value
+
+
+
+
+
+
+ DoorDescript1
+ 0.59723in
+ 0.125in
+ 0.25in
+ 2.59597in
+ 5
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ 0.04535in
+ 0.09376in
+ 0.92389in
+ 5.33333in
+ 5
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ =Fields!DoorId.Value
+
+
+ Between
+
+
+
+
+ =Fields!DoorId.Value
+
+
+
+
+
+
+
+
+ DataSetOrderReportExpl
+ 1.97583in
+ 3.69097in
+ 7.5in
+ 1
+
+
+
+
+
+
+ End
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ =Fields!OrderId.Value
+
+
+ Between
+
+
+
+
+ =Fields!OrderId.Value
+
+
+ Output
+ true
+
+
+
+ DataSetOrderReportExpl
+ 5.6668in
+ 7.5in
+
+
+
+
+
+
+ 1in
+
+
+ 1in
+
+
+ 1in
+
+
+
+
+ 0.25in
+
+
+
+
+ true
+ true
+
+
+
+
+ Total Door
+
+
+
+
+
+
+ Textbox15
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Total Order
+
+
+
+
+
+
+ Textbox12
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+ Textbox14
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ 0.25in
+
+
+
+
+ true
+ true
+
+
+
+
+ =First(Fields!Quantity.Value)
+
+
+
+
+
+
+ Quantity1
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ =IIF(RowNumber("DoorId") = 1, 1 ,0)
+
+
+
+
+
+
+ Textbox19
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+ Textbox159
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ 0.25in
+
+
+
+
+ true
+ true
+
+
+
+
+ =SUM( IIF( Fields!RowDoor.Value = 1, Fields!Quantity.Value, 0) )
+
+
+
+
+
+
+ Textbox22
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ =SUM( IIF(Fields!RowDoor.Value = 1, CDec( Fields!Quantity.Value * Fields!UnitCost.Value), CDec(0) ) )
+
+
+
+
+
+
+ Textbox23
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ =SUM( IIF(Fields!RowDoor.Value = 1, CDec(Fields!UnitCost.Value), CDec(0) ) )
+
+
+
+
+
+
+ Textbox160
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+ 1in
+
+
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+ Textbox28
+
+ true
+
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ After
+
+
+
+
+ =Fields!DoorId.Value
+
+
+
+
+ =Fields!DoorId.Value
+
+
+
+ 1in
+
+
+ true
+ true
+
+
+
+
+ =Fields!DoorId.Value
+
+
+
+
+
+
+ DoorId
+
+ true
+
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+ 1in
+
+
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+ Textbox25
+
+ true
+
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+ Before
+
+
+
+ DataSetOrderReportExpl
+ 5.71653in
+ 2.42708in
+ 0.75in
+ 4in
+ 1
+
+
+
+
+
+ 6.50819in
+
+
+
+
+ 7.5in
+
+
+ 0.508cm
+ true
+ true
+
+
+ true
+ true
+
+
+
+
+ powered by Egal
+
+
+
+ Ware
+
+
+
+ © 2008-
+
+
+
+
+ =Format(Today, "yyyy" )
+
+
+
+
+
+
+ 10.9855cm
+ 0.2in
+ 3.1in
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ 0.5in
+ 0.5in
+ 0.5in
+ 0.5in
+
+
+ 0
+
+
+
+ SQL
+ Data Source=SQL2016DEV;Initial Catalog=WebDoorCreator
+ true
+
+ Integrated
+ 0c6d4354-2224-40f1-89ab-5c6635e4dc39
+
+
+
+
+
+ WebDoorCreator
+
+
+ =Parameters!OrderID.Value
+
+
+ exec dbo.stp_prt_OrderReportExpl @OrderID
+ true
+
+
+
+ OrderId
+ System.Int32
+
+
+ CompanyId
+ System.Int32
+
+
+ OrderExtCode
+ System.String
+
+
+ DateIns
+ System.DateTime
+
+
+ UserIdIns
+ System.String
+
+
+ DateMod
+ System.DateTime
+
+
+ UserIdMod
+ System.String
+
+
+ Status
+ System.Int32
+
+
+ OrderDescript
+ System.String
+
+
+ CompanyExtCode
+ System.String
+
+
+ CompanyName
+ System.String
+
+
+ Address
+ System.String
+
+
+ ZipCode
+ System.Int32
+
+
+ City
+ System.String
+
+
+ State
+ System.String
+
+
+ VAT
+ System.String
+
+
+ DoorId
+ System.Int32
+
+
+ RowDoor
+ System.Int64
+
+
+ TypeId
+ System.Int32
+
+
+ DoorExtCode
+ System.String
+
+
+ DoorDescript
+ System.String
+
+
+ Quantity
+ System.Int32
+
+
+ UnitCost
+ System.Decimal
+
+
+ MeasureUnit
+ System.String
+
+
+ ObjectType
+ System.String
+
+
+ ObjectKey
+ System.String
+
+
+ ObjectVal
+ System.String
+
+
+ ObjectQty
+ System.Int32
+
+
+
+
+
+ WebDoorCreator
+ Select * FROM dbo.Config
+
+
+
+ chiave
+ System.String
+
+
+ valore
+ System.String
+
+
+ valoreStd
+ System.String
+
+
+ note
+ System.String
+
+
+
+
+
+
+ String
+
+
+ 33
+
+
+ OrderID:
+
+
+
+
+ image/png
+ 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
+
+
+ en-US
+
+
+ =IIF(Lookup("prt_ImageCodeBaseUrl", Fields!chiave.Value, Fields!valore.Value, "DataSetConfig") = Nothing, "Errore", Lookup("prt_ImageCodeBaseUrl", Fields!chiave.Value, Fields!valore.Value, "DataSetConfig"))
+
+
+ true
+ Inch
+ 8d461fc3-4be4-485c-a65d-ead92a97b9cd
+
\ No newline at end of file
diff --git a/WebDoorCreator.API/WebDoorCreator.API.csproj b/WebDoorCreator.API/WebDoorCreator.API.csproj
index ae88edf..c602aef 100644
--- a/WebDoorCreator.API/WebDoorCreator.API.csproj
+++ b/WebDoorCreator.API/WebDoorCreator.API.csproj
@@ -32,6 +32,15 @@
+
+
+
+ Always
+
+
+ Always
+
+
diff --git a/WebDoorCreator.API/appsettings.json b/WebDoorCreator.API/appsettings.json
index e32a2b4..681b0c5 100644
--- a/WebDoorCreator.API/appsettings.json
+++ b/WebDoorCreator.API/appsettings.json
@@ -26,5 +26,8 @@
"Admin": "samuele@steamware.net",
"ProjCheck": "samuele.locatelli@egalware.com,mara.baroni@egalware.com",
"TimbCheck": "samuele.locatelli@egalware.com,mara.baroni@egalware.com"
+ },
+ "RuntimeOpt": {
+ "VetoRemoveProcessing": 5
}
}
diff --git a/WebDoorCreator.CamSrv.sln b/WebDoorCreator.CamSrv.sln
index 9f221bd..ece10f0 100644
--- a/WebDoorCreator.CamSrv.sln
+++ b/WebDoorCreator.CamSrv.sln
@@ -7,8 +7,6 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "WebDoorCreator.CamSrv", "We
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebDoorCreator.SDK", "WebDoorCreator.SDK\WebDoorCreator.SDK.csproj", "{4A07ADFC-CA24-4135-BA97-3B8E5D49BC09}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestExtProc", "TestExtProc\TestExtProc.csproj", "{88099151-7136-4825-9B5D-B5A6899FD0AF}"
-EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -23,10 +21,6 @@ Global
{4A07ADFC-CA24-4135-BA97-3B8E5D49BC09}.Debug|Any CPU.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
- {88099151-7136-4825-9B5D-B5A6899FD0AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {88099151-7136-4825-9B5D-B5A6899FD0AF}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {88099151-7136-4825-9B5D-B5A6899FD0AF}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {88099151-7136-4825-9B5D-B5A6899FD0AF}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/WebDoorCreator.Core/Constants.cs b/WebDoorCreator.Core/Constants.cs
index 3883d1b..5b6f6a8 100644
--- a/WebDoorCreator.Core/Constants.cs
+++ b/WebDoorCreator.Core/Constants.cs
@@ -45,12 +45,22 @@ 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";
+
+ ///
+ /// variabili accessorie ulteriori
+ ///
+ public const int StatusIdTemplate = 10000;
}
}
diff --git a/WebDoorCreator.Core/ReportViewer/Report.cs b/WebDoorCreator.Core/ReportViewer/Report.cs
new file mode 100644
index 0000000..783df23
--- /dev/null
+++ b/WebDoorCreator.Core/ReportViewer/Report.cs
@@ -0,0 +1,102 @@
+using Microsoft.Reporting.NETCore;
+using Microsoft.ReportingServices.ReportProcessing.ReportObjectModel;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.IO;
+using System.Reflection;
+
+namespace WebDoorCreator.Core.ReportViewer
+{
+ ///
+ /// Gestione report dotNet core
+ ///
+ /// https://github.com/lkosson/reportviewercore/
+ ///
+ public class Report
+ {
+ ///
+ /// Effettua setup del Report corrente
+ ///
+ /// Oggetto LocalReport da impiegare
+ /// Nome del Report (file rdlc) da usare
+ /// Parametri opzionali report
+ /// Dizionario dei dataset del report (DsName + DataTable relativa)
+ public static void Load(LocalReport ReportObj, string FileNameRdlc, List RepParams, Dictionary ReportDatasets)
+ {
+
+ // setup preliminari
+ ReportObj.EnableExternalImages = true;
+ // calcolo path complessivo
+ string reportPath = Path.Combine(AppContext.BaseDirectory, "Reports", FileNameRdlc);
+ /*------------------------------------------------------------------------------------------
+ * NB: SE volessi includere i ReportObj come EMBEDDED potrei usare una versione alternativa,
+ * ad esempio (x ReportObj inclusi in area WebDoorCreator.Core\ReportViewer\Report.rdlc
+ *
+ * using var rs = Assembly.GetExecutingAssembly().GetManifestResourceStream("WebDoorCreator.Core.ReportViewer.Report.rdlc");
+ * ReportObj.LoadReportDefinition(rs);
+ *
+ * oppure con filestream
+ * using (FileStream fs = File.OpenRead(reportPath))
+ * {
+ * ReportObj.LoadReportDefinition(fs);
+ * ....
+ * }
+ *
+ * ------------------------------------------------------------------------------------------*/
+ ReportObj.ReportPath = reportPath;
+ foreach (var item in ReportDatasets)
+ {
+ ReportObj.DataSources.Add(new ReportDataSource(item.Key, item.Value));
+ }
+ ReportObj.SetParameters(RepParams);
+ }
+
+ ///
+ /// Parametri associati al report
+ ///
+ public class RenderParams
+ {
+ public string FileName { get; set; } = "";
+ public string Extension { get; set; } = "";
+ public string MimeType { get; set; } = "";
+ public string RenderFormat { get; set; } = "";
+
+ ///
+ /// Crea setup parametri report dato formato desiderato
+ ///
+ ///
+ public RenderParams(string OutFormat)
+ {
+ this.FileName = $"{DateTime.Now:yyyyMMdd_HHmmss}";
+ switch (OutFormat.ToUpper())
+ {
+ case "HTML":
+ this.Extension = "html";
+ this.RenderFormat = "HTML5";
+ this.MimeType = "text/html";
+ break;
+
+ case "DOCX":
+ this.Extension = "docx";
+ this.RenderFormat = "WORDOPENXML";
+ this.MimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
+ break;
+
+ case "XLSX":
+ this.Extension = "xlsx";
+ this.RenderFormat = "EXCELOPENXML";
+ this.MimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
+ break;
+
+ case "PDF":
+ default:
+ this.Extension = "pdf";
+ this.RenderFormat = "PDF";
+ this.MimeType = "application/pdf";
+ break;
+ }
+ }
+ }
+ }
+}
diff --git a/WebDoorCreator.Core/ReportViewer/Report.rdlc b/WebDoorCreator.Core/ReportViewer/Report.rdlc
new file mode 100644
index 0000000..e0049c6
--- /dev/null
+++ b/WebDoorCreator.Core/ReportViewer/Report.rdlc
@@ -0,0 +1,447 @@
+
+
+ 0
+
+
+
+ System.Data.DataSet
+ /* Local Connection */
+
+ bd60bef3-b3d9-477e-9052-ab58c6f1ec86
+
+
+
+
+
+ LocalSource
+ /* Local Query */
+
+
+
+ Description
+ System.String
+
+
+ Price
+ System.Decimal
+
+
+ Qty
+ System.Int32
+
+
+ Total
+ System.Decimal
+
+
+
+ LocalSource
+ Items
+ ReportViewerCore.ReportItem
+
+
+
+
+
+
+
+
+
+
+
+ 8.31785cm
+
+
+ 2.51905cm
+
+
+ 2.51905cm
+
+
+ 2.51905cm
+
+
+
+
+ 0.67938cm
+
+
+
+
+ true
+ true
+
+
+
+
+ Description
+
+
+
+
+
+
+ Textbox1
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Price
+
+
+
+
+
+
+ Textbox3
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Qty
+
+
+
+
+
+
+ Textbox5
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Total
+
+
+
+
+
+
+ Textbox2
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ 0.67938cm
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!Description.Value
+
+
+
+
+
+
+ Description
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!Price.Value
+
+
+
+
+
+
+ Price
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!Qty.Value
+
+
+
+
+
+
+ Qty
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!Total.Value
+
+
+
+
+
+
+ Total
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ After
+
+
+
+
+
+
+ Items
+ 2.85433cm
+ 0.3175cm
+ 1.35875cm
+ 15.875cm
+
+
+
+
+
+ true
+ true
+
+
+
+
+ =Parameters!Title.Value
+
+
+
+
+
+
+ Textbox6
+ 0.26141cm
+ 0.3175cm
+ 1.79062cm
+ 15.875cm
+ 1
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ 2in
+
+
+ 6.5in
+
+ 29.7cm
+ 21cm
+ 2cm
+ 2cm
+ 2cm
+ 2cm
+ 0.13cm
+
+
+
+
+
+
+ String
+ true
+ true
+ ReportParameter1
+
+
+
+
+ 4
+ 2
+
+
+ 0
+ 0
+ Title
+
+
+
+
+ Cm
+ 156b21d2-9542-4902-99ef-7ec823774bb2
+
\ No newline at end of file
diff --git a/WebDoorCreator.Core/ReportViewer/ReportItem.cs b/WebDoorCreator.Core/ReportViewer/ReportItem.cs
new file mode 100644
index 0000000..1503cbd
--- /dev/null
+++ b/WebDoorCreator.Core/ReportViewer/ReportItem.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace WebDoorCreator.Core.ReportViewer
+{
+ public class ReportItem
+ {
+ public string Description { get; set; }
+ public decimal Price { get; set; }
+ public int Qty { get; set; }
+ public decimal Total => Price * Qty;
+ }
+}
diff --git a/WebDoorCreator.Core/WebDoorCreator.Core.csproj b/WebDoorCreator.Core/WebDoorCreator.Core.csproj
index 5d2fba0..69ac241 100644
--- a/WebDoorCreator.Core/WebDoorCreator.Core.csproj
+++ b/WebDoorCreator.Core/WebDoorCreator.Core.csproj
@@ -6,11 +6,27 @@
enable
+
+
+
+
+
+
+
+
+
+
+
+
+ Always
+
+
+
diff --git a/WebDoorCreator.Data/Controllers/WebDoorCreatorController.cs b/WebDoorCreator.Data/Controllers/WebDoorCreatorController.cs
index b9c6869..4ae640c 100644
--- a/WebDoorCreator.Data/Controllers/WebDoorCreatorController.cs
+++ b/WebDoorCreator.Data/Controllers/WebDoorCreatorController.cs
@@ -1,8 +1,12 @@
-using Microsoft.Data.SqlClient;
+using Microsoft.AspNetCore.Server.IISIntegration;
+using Microsoft.Data.SqlClient;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using NLog;
+using Org.BouncyCastle.Ocsp;
using System.Data;
+using System.IO;
+using System.Reflection.Emit;
using WebDoorCreator.Data.DbModels;
using WebDoorCreator.Data.DTO;
@@ -195,6 +199,34 @@ namespace WebDoorCreator.Data.Controllers
return fatto;
}
+ ///
+ /// Getting door data by key
+ ///
+ ///
+ 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;
+ }
+
///
/// Adding a new door
///
@@ -493,6 +525,82 @@ namespace WebDoorCreator.Data.Controllers
}
return dbResult;
}
+ ///
+ /// Retrieving data from door operation type table filtered by Hw Code
+ ///
+ ///
+ public List DoorOpTypeGetFiltered(string hwCode, int parentId)
+ {
+ List dbResult = new List();
+ 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;
+ }
+ ///
+ /// Retrieving data from door operation type table filtered by path
+ ///
+ ///
+ public List DoorOpTypeGetByPath(string path)
+ {
+ List dbResult = new List();
+ 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
> DoorOpTypeGetDefault()
{
@@ -570,7 +678,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();
@@ -599,7 +706,6 @@ namespace WebDoorCreator.Data.Controllers
dbResult = localDbCtx
.DbSetDoor
.Include(o => o.OrderNav)
- .Include(t => t.TypeNav)
.OrderByDescending(x => x.DoorId)
.Take(numRec)
.AsNoTracking()
@@ -613,6 +719,43 @@ namespace WebDoorCreator.Data.Controllers
return dbResult;
}
+ ///
+ /// Update costing for dictionary of doors
+ ///
+ ///
+ ///
+ public async Task DoorUpdateCosts(Dictionary 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;
+ }
+
///
/// Modifying or adding a new door
///
@@ -630,12 +773,17 @@ 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;
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
@@ -651,6 +799,64 @@ namespace WebDoorCreator.Data.Controllers
}
return fatto;
}
+ ///
+ /// Modifying doorOpType
+ ///
+ /// Record to edit
+ ///
+ public async Task DoorOpTypeUpdate(DoorOpTypeModel addEditRec)
+ {
+ bool fatto = false;
+ //List dbResult = new List();
+ 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;
+ }
///
/// Estraggo tutte le lingue disponibili per questa applicazione
@@ -677,7 +883,7 @@ namespace WebDoorCreator.Data.Controllers
}
///
- /// Adding a new list value
+ /// Adding new list value set
///
/// Record to add
///
@@ -700,14 +906,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)
{
@@ -717,6 +921,45 @@ namespace WebDoorCreator.Data.Controllers
return fatto;
}
+ ///
+ /// Adding new DoorOpType data
+ ///
+ /// Record to add
+ ///
+ public async Task DoorOpTypeAdd(List 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;
+ }
+
///
/// ListValues list (All)
///
@@ -767,10 +1010,10 @@ namespace WebDoorCreator.Data.Controllers
/// Adding a new order
///
/// Record to add
- ///
- public async Task OrderAdd(OrderModel addRec)
+ /// OrderId
+ public async Task OrderAdd(OrderModel addRec)
{
- bool fatto = false;
+ int newOrdId = 0;
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
{
try
@@ -779,16 +1022,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;
+ }
+
+ ///
+ /// Duplicazione di un ordine da SRC a DEST (Doors + DoorOp)
+ ///
+ ///
+ ///
+ ///
+ ///
+ public async Task 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 OrderGetByCompStatus(int CompanyId, int StatusId)
+ {
+ List dbResult = new List();
+ 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();
@@ -799,6 +1101,7 @@ namespace WebDoorCreator.Data.Controllers
var rawData = dbCtx
.DbSetOrders
.Where(x => x.OrderId == orderId)
+ .Include(c => c.CompanyNav)
.AsNoTracking()
.FirstOrDefault();
if (rawData != null)
@@ -964,6 +1267,34 @@ namespace WebDoorCreator.Data.Controllers
return dbResult;
}
+ ///
+ /// Order Data for report printing
+ ///
+ ///
+ ///
+ public List PreRepOrderGetByKey(int orderId)
+ {
+ List dbResult = new List();
+ using (var dbCtx = new WDCDataContext(_configuration))
+ {
+ try
+ {
+ var OrderId = new SqlParameter("@OrderId", orderId);
+
+ dbResult = dbCtx
+ .DbSetPrtRepOrder
+ .FromSqlRaw("exec dbo.stp_prt_OrderReportExpl @OrderId", OrderId)
+ .AsNoTracking()
+ .ToList();
+ }
+ catch (Exception exc)
+ {
+ Log.Error($"Error in PreRepOrderGetByKey:{Environment.NewLine}{exc}");
+ }
+ }
+ return dbResult;
+ }
+
///
/// Retrieving data from roles table
///
@@ -1014,6 +1345,59 @@ namespace WebDoorCreator.Data.Controllers
return dbResult;
}
+ ///
+ /// Adding a new User
+ ///
+ /// Record to edit or add
+ ///
+ public async Task UserAddMod(AspNetUsers addEditRec)
+ {
+ bool fatto = false;
+ //List dbResult = new List();
+ 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;
+ }
+
///
/// Populating DTO to handle users
///
@@ -1164,14 +1548,39 @@ namespace WebDoorCreator.Data.Controllers
///
/// Aggiunta di un nuovo set di lemmi
///
- ///
///
- public async Task VocLemmaInsert(List listNewTerms)
+ public async Task 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 VocLemmaInsertPrepare(List listNewTerms)
+ {
+ bool fatto = false;
+
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
{
try
@@ -1188,20 +1597,112 @@ 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 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 async Task 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> VocLemmaTEMPGetAll()
+ {
+ Dictionary> DTOResult = new Dictionary>();
+ using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
+ {
+ try
+ {
+ List lingue = new List()
+ {
+ "IT",
+ "EN"
+ };
+
+ // extracting entire set
+ var allVoc = localDbCtx
+ .DbSetVocabularyTemp
+ .AsNoTracking()
+ .ToList();
+
+ foreach (var lingua in lingue)
+ {
+ Dictionary dict = new Dictionary();
+ 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
diff --git a/WebDoorCreator.Data/DTO/CalcResultDTO.cs b/WebDoorCreator.Data/DTO/CalcResultDTO.cs
index 6679dc8..2a3dc41 100644
--- a/WebDoorCreator.Data/DTO/CalcResultDTO.cs
+++ b/WebDoorCreator.Data/DTO/CalcResultDTO.cs
@@ -28,7 +28,7 @@ namespace WebDoorCreator.Data.DTO
///
public string SvgGen { get; set; } = "";
///
- /// Articat path (ex 3d zip/pack)
+ /// Artifats path (ex 3d zip/pack)
///
public string artifactPath { get; set; } = "";
}
diff --git a/WebDoorCreator.Data/DTO/DoorCostingDTO.cs b/WebDoorCreator.Data/DTO/DoorCostingDTO.cs
index d9b3475..9851c99 100644
--- a/WebDoorCreator.Data/DTO/DoorCostingDTO.cs
+++ b/WebDoorCreator.Data/DTO/DoorCostingDTO.cs
@@ -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 BOMList { get; set; }= new Dictionary();
+ public Dictionary> BOMList { get; set; }= new Dictionary>();
}
}
diff --git a/WebDoorCreator.Data/DTO/DoorPriceDTO.cs b/WebDoorCreator.Data/DTO/DoorPriceDTO.cs
new file mode 100644
index 0000000..0321a5f
--- /dev/null
+++ b/WebDoorCreator.Data/DTO/DoorPriceDTO.cs
@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WebDoorCreator.Data.DTO
+{
+ ///
+ /// Door cost data DTO
+ ///
+ public class DoorPriceDTO
+ {
+ ///
+ /// Door UID
+ ///
+ public int OrderId { get; set; } = 0;
+ ///
+ /// Door UID
+ ///
+ public int DoorId { get; set; } = 0;
+ ///
+ /// Articat path (ex 3d zip/pack)
+ ///
+ public decimal UnitCost { get; set; } = 0;
+ ///
+ /// Valid = true / cannot deliver = false
+ ///
+ public bool Valid { get; set; } = true;
+ ///
+ /// Error message (optional)
+ ///
+ public string ErrorMsg { get; set; } = "";
+ }
+}
diff --git a/WebDoorCreator.Data/DTO/FileDTO.cs b/WebDoorCreator.Data/DTO/FileDTO.cs
new file mode 100644
index 0000000..36659c5
--- /dev/null
+++ b/WebDoorCreator.Data/DTO/FileDTO.cs
@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WebDoorCreator.Data.DTO
+{
+ ///
+ /// COmpany data DTO
+ ///
+ [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 int status { get; set; } = 0;
+
+ }
+}
diff --git a/WebDoorCreator.Data/DbModels/DoorModel.cs b/WebDoorCreator.Data/DbModels/DoorModel.cs
index 011dc09..8c77093 100644
--- a/WebDoorCreator.Data/DbModels/DoorModel.cs
+++ b/WebDoorCreator.Data/DbModels/DoorModel.cs
@@ -22,6 +22,11 @@ namespace WebDoorCreator.Data.DbModels
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int DoorId { get; set; }
+ ///
+ /// Parent element ID
+ ///
+ public int ParentId { get; set; }
+
///
/// Ordine cui è associata la porta
///
@@ -32,11 +37,6 @@ namespace WebDoorCreator.Data.DbModels
///
public string MeasureUnit { get; set; } = "";
- ///
- /// Door's Type
- ///
- public int TypeId { get; set; } = 0;
-
///
/// Codice esterno x riferimento (es ERP)
///
@@ -91,8 +91,8 @@ namespace WebDoorCreator.Data.DbModels
[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 +102,7 @@ namespace WebDoorCreator.Data.DbModels
{
MeasureUnit = MeasureUnit,
OrderId = OrderId,
- TypeId = TypeId,
+ ParentId = ParentId,
DoorExtCode = DoorExtCode,
DateIns = adesso,
UserIdIns = userId,
@@ -116,5 +116,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 (OrderId != item.OrderId)
+ // return false;
+
+ //if (MeasureUnit != item.MeasureUnit)
+ // return false;
+
+ //if (UnitCost != item.UnitCost)
+ // return false;
+
+ return true;
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
}
}
diff --git a/WebDoorCreator.Data/DbModels/DoorOpModel.cs b/WebDoorCreator.Data/DbModels/DoorOpModel.cs
index cede43b..e4f0c4c 100644
--- a/WebDoorCreator.Data/DbModels/DoorOpModel.cs
+++ b/WebDoorCreator.Data/DbModels/DoorOpModel.cs
@@ -156,9 +156,10 @@ namespace WebDoorCreator.Data.DbModels
///
/// Clone oggetto
///
- ///
+ ///
+ ///
///
- 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;
}
-
}
}
diff --git a/WebDoorCreator.Data/DbModels/DoorOpTypeModel.cs b/WebDoorCreator.Data/DbModels/DoorOpTypeModel.cs
index 0230181..251914f 100644
--- a/WebDoorCreator.Data/DbModels/DoorOpTypeModel.cs
+++ b/WebDoorCreator.Data/DbModels/DoorOpTypeModel.cs
@@ -21,6 +21,11 @@ namespace WebDoorCreator.Data.DbModels
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int DoorOpTypId { get; set; }
+ ///
+ /// Indica Id del parent: se 0 sono root, altrimenti indica il type parent
+ ///
+ public int ParentId { get; set; } = 0;
+
///
/// Codice univoco dell'operazione da svolgere (calcolato, idealmente 4 char da 36 val 0..Z)
///
@@ -68,20 +73,14 @@ namespace WebDoorCreator.Data.DbModels
public string FPath { get; set; } = "";
///
- /// Idx univoco dell'elemento parent (se 0 = root)
+ /// Unit cost for the door
///
- public int ParentDoorOpId { get; set; } = 0;
+ public decimal UnitCost { get; set; } = 0;
- ///
- /// Idx univoco dell'elemento parent (se 0 = root)
- ///
- public HierarchyId? DoorOpIdPathFromPatriarch { get; set; }
-
-
- ///
- /// Oggetto Json per specifica configurazione (template)
- ///
- public string JsoncConfig { get; set; } = "";
+ /////
+ ///// Oggetto Json per specifica configurazione (template)
+ /////
+ //public string JsoncConfig { get; set; } = "";
///
/// Codice esterno (opzionale)
@@ -108,6 +107,21 @@ namespace WebDoorCreator.Data.DbModels
///
public DateTime ValidUntil { get; set; } = new DateTime(3000, 1, 1);
+ ///
+ /// MD5 Calcolato per controllo uguaglianze
+ ///
+ public string FileMD5 { get; set; } = "";
+
+ ///
+ /// Dimensione file corrente
+ ///
+ public long FileDim { get; set; } = 0;
+
+ ///
+ /// Dimensione file corrente
+ ///
+ public DateTime LastMod { get; set; } = DateTime.Today;
+
///
/// Check validità item
///
@@ -116,7 +130,11 @@ namespace WebDoorCreator.Data.DbModels
{
get => DateTime.Today >= ValidFrom && DateTime.Today <= ValidUntil;
}
-
+ ///
+ /// Stato della door operation {-1=DELETED, 0=UNCHANGED, 1=ADDED, 2=MODIFIED}
+ ///
+ [NotMapped]
+ public int status { get; set; } = 0;
///
/// Numero massimo associabile a singola Door
///
diff --git a/WebDoorCreator.Data/DbModels/DoorOpTypeTempModel.cs b/WebDoorCreator.Data/DbModels/DoorOpTypeTempModel.cs
new file mode 100644
index 0000000..54d35f5
--- /dev/null
+++ b/WebDoorCreator.Data/DbModels/DoorOpTypeTempModel.cs
@@ -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;
+
+//
+// This is here so CodeMaid doesn't reorganize this document
+//
+namespace WebDoorCreator.Data.DbModels
+{
+ ///
+ /// Tabella dati Door Operation Type (astratte) TEMP
+ ///
+ [Table("DoorOpTypeTemp")]
+ public class DoorOpTypeTempModel
+ {
+ [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
+ public int DoorOpTypId { get; set; }
+
+ ///
+ /// Codice univoco dell'operazione da svolgere (calcolato, idealmente 4 char da 36 val 0..Z)
+ ///
+ public string OpCode { get; set; } = "";
+
+ ///
+ /// Descrizione
+ ///
+ public string Description { get; set; } = "";
+
+ ///
+ /// Indica se sia da creare sempre
+ ///
+ public bool IsDefault { get; set; } = false;
+
+ ///
+ /// Indica se ci sia un hardware correlato all'operazione
+ ///
+ public bool HasHw { get; set; } = true;
+
+ ///
+ /// Indica se sia un oggetto concreto (= con un file, che si può produrre) o abstract (ha figli, è un gruppo logico)
+ ///
+ public bool IsConcrete { get; set; } = true;
+
+ ///
+ /// Codice dell'HW collegato
+ ///
+ public string HwCode { get; set; } = "";
+
+ ///
+ /// Descrizione dell'HW collegato
+ ///
+ public string HwDescription { get; set; } = "";
+
+
+ ///
+ /// URL dell'immagine/link di riferimento
+ ///
+ public string DisplayUrl { get; set; } = "";
+
+ ///
+ /// Path folder/file di riferimento
+ ///
+ public string FPath { get; set; } = "";
+
+ ///
+ /// Idx univoco dell'elemento parent (se 0 = root)
+ ///
+ public int ParentDoorOpId { get; set; } = 0;
+
+ /////
+ ///// Idx univoco dell'elemento parent (se 0 = root)
+ /////
+ //public HierarchyId? DoorOpIdPathFromPatriarch { get; set; }
+
+ ///
+ /// Unit cost for the door
+ ///
+ public decimal UnitCost { get; set; } = 0;
+
+ /////
+ ///// Oggetto Json per specifica configurazione (template)
+ /////
+ //public string JsoncConfig { get; set; } = "";
+
+ ///
+ /// Codice esterno (opzionale)
+ ///
+ public string ExtOpCode { get; set; } = "";
+
+ ///
+ /// Descrizione esterna (opzionale)
+ ///
+ public string ExtDescript { get; set; } = "";
+
+ ///
+ /// Revisione dell'item
+ ///
+ public string Rev { get; set; } = "";
+
+ ///
+ /// Inizio validità item
+ ///
+ public DateTime ValidFrom { get; set; } = new DateTime(2000, 1, 1);
+
+ ///
+ /// Fine validità item
+ ///
+ public DateTime ValidUntil { get; set; } = new DateTime(3000, 1, 1);
+
+ ///
+ /// MD5 Calcolato per controllo uguaglianze
+ ///
+ public string FileMD5 { get; set; } = "";
+
+ ///
+ /// Dimensione file corrente
+ ///
+ public long FileDim { get; set; } = 0;
+
+ ///
+ /// Data ultima modifica
+ ///
+ public DateTime LastMod { get; set; } = DateTime.Today;
+
+ ///
+ /// Check validità item
+ ///
+ [NotMapped]
+ public bool IsActive
+ {
+ get => DateTime.Today >= ValidFrom && DateTime.Today <= ValidUntil;
+ }
+
+ ///
+ /// Numero massimo associabile a singola Door
+ ///
+ public int MaxAllowed { get; set; } = 1;
+ }
+}
diff --git a/WebDoorCreator.Data/DbModels/DoorTypeModel.cs b/WebDoorCreator.Data/DbModels/DoorTypeModel.cs
deleted file mode 100644
index c219731..0000000
--- a/WebDoorCreator.Data/DbModels/DoorTypeModel.cs
+++ /dev/null
@@ -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;
-
-//
-// This is here so CodeMaid doesn't reorganize this document
-//
-namespace WebDoorCreator.Data.DbModels
-{
- ///
- /// Tabella dati Door Type
- ///
- [Table("DoorType")]
- public class DoorTypeModel
- {
- [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
- public int TypeId { get; set; }
-
- ///
- /// Codice univoco del modello
- ///
- public string TypeCode { get; set; } = "";
-
- ///
- /// Descrizione
- ///
- public string Description { get; set; } = "";
-
- }
-}
diff --git a/WebDoorCreator.Data/DbModels/ListValuesModel.cs b/WebDoorCreator.Data/DbModels/ListValuesModel.cs
index a42ee34..8d3575b 100644
--- a/WebDoorCreator.Data/DbModels/ListValuesModel.cs
+++ b/WebDoorCreator.Data/DbModels/ListValuesModel.cs
@@ -12,18 +12,33 @@ namespace WebDoorCreator.Data.DbModels
//
// This is here so CodeMaid doesn't reorganize this document
//
- [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
}
diff --git a/WebDoorCreator.Data/DbModels/ListValuesTempModel.cs b/WebDoorCreator.Data/DbModels/ListValuesTempModel.cs
index 1abe123..c4c5607 100644
--- a/WebDoorCreator.Data/DbModels/ListValuesTempModel.cs
+++ b/WebDoorCreator.Data/DbModels/ListValuesTempModel.cs
@@ -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; }
diff --git a/WebDoorCreator.Data/DbModels/OrderModel.cs b/WebDoorCreator.Data/DbModels/OrderModel.cs
index 869202a..568477f 100644
--- a/WebDoorCreator.Data/DbModels/OrderModel.cs
+++ b/WebDoorCreator.Data/DbModels/OrderModel.cs
@@ -51,6 +51,16 @@ namespace WebDoorCreator.Data.DbModels
///
public string UserIdMod { get; set; } = "";
+ ///
+ /// Data promessa di consegna
+ ///
+ public DateTime DateDelivery { get; set; } = DateTime.Now.AddDays(60);
+
+ ///
+ /// Eventuale sconto globale
+ ///
+ public double Discount { get; set; } = 0;
+
///
/// Stato globale dell'ordine
///
@@ -65,5 +75,6 @@ namespace WebDoorCreator.Data.DbModels
[ForeignKey("CompanyId")]
public virtual CompanyModel? CompanyNav { get; set; }
+
}
}
diff --git a/WebDoorCreator.Data/DbModels/OrderStatusViewModel.cs b/WebDoorCreator.Data/DbModels/OrderStatusViewModel.cs
index 1108cec..bbb95b4 100644
--- a/WebDoorCreator.Data/DbModels/OrderStatusViewModel.cs
+++ b/WebDoorCreator.Data/DbModels/OrderStatusViewModel.cs
@@ -14,7 +14,6 @@ namespace WebDoorCreator.Data.DbModels
///
/// View to retrieve data from multiple tables
///
- //[Table("v_OrderStatus")]
public class OrderStatusViewModel
{
///
@@ -70,5 +69,16 @@ namespace WebDoorCreator.Data.DbModels
/// TotCost represent the total cost of the order
///
public decimal TotCost { get; set; } = 0;
+
+
+ ///
+ /// Data promessa di consegna
+ ///
+ public DateTime DateDelivery { get; set; } = DateTime.Now.AddDays(60);
+
+ ///
+ /// Eventuale sconto globale
+ ///
+ public double Discount { get; set; } = 0;
}
}
diff --git a/WebDoorCreator.Data/DbModels/PrtRepOrderModel.cs b/WebDoorCreator.Data/DbModels/PrtRepOrderModel.cs
new file mode 100644
index 0000000..cf03473
--- /dev/null
+++ b/WebDoorCreator.Data/DbModels/PrtRepOrderModel.cs
@@ -0,0 +1,146 @@
+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 static WebDoorCreator.Core.Enum;
+
+//
+// This is here so CodeMaid doesn't reorganize this document
+//
+namespace WebDoorCreator.Data.DbModels
+{
+ public class PrtRepOrderModel
+ {
+ public int OrderId { get; set; }
+
+ ///
+ /// Company cui è associato l'ordine
+ ///
+ public int CompanyId { get; set; }
+
+ ///
+ /// Codice esterno x riferimento (es ERP)
+ ///
+ public string OrderExtCode { get; set; } = "";
+
+ ///
+ /// Data inserimento ordine
+ ///
+ public DateTime DateIns { get; set; } = DateTime.Now;
+
+ ///
+ /// Codice utente che ha creato
+ ///
+ public string UserIdIns { get; set; } = "";
+
+ ///
+ /// Data (ultima) modifica ordine
+ ///
+ public DateTime DateMod { get; set; } = DateTime.Now;
+
+ ///
+ /// Codice utente che ha creato
+ ///
+ public string UserIdMod { get; set; } = "";
+
+ ///
+ /// Stato globale dell'ordine
+ ///
+ public int Status { get; set; } = 10;
+
+ ///
+ /// Descrizione
+ ///
+ public string OrderDescript { get; set; } = "";
+
+ ///
+ /// Codice esterno x riferimento (es ERP)
+ ///
+ public string CompanyExtCode { get; set; } = "";
+
+ ///
+ /// Nome / ragione Sociale
+ ///
+ public string CompanyName { get; set; } = "";
+
+ ///
+ /// indirizzo
+ ///
+ public string Address { get; set; } = "";
+
+ ///
+ /// CAP
+ ///
+ public int ZipCode { get; set; } = 0;
+
+ ///
+ /// Citta
+ ///
+ public string City { get; set; } = "";
+
+ ///
+ /// Stato
+ ///
+ public string State { get; set; } = "";
+ ///
+ /// VAT / P.Iva
+ ///
+ public string VAT { get; set; } = "";
+
+ ///
+ /// Current Door ID
+ ///
+ public int DoorId { get; set; }
+
+ ///
+ /// Door's parent ID
+ ///
+ public int ParentId { get; set; } = 0;
+
+ ///
+ /// Codice esterno x riferimento (es ERP)
+ ///
+ public string DoorExtCode { get; set; } = "";
+ ///
+ /// Descrizione
+ ///
+ public string DoorDescript { get; set; } = "";
+
+ ///
+ /// Quantity Ordered
+ ///
+ public int Quantity { get; set; } = 1;
+
+ ///
+ /// Unit cost for the door
+ ///
+ public decimal UnitCost { get; set; } = 0;
+
+ ///
+ /// Unità di misura
+ ///
+ public string MeasureUnit { get; set; } = "";
+
+ ///
+ /// Tipo DoorOP
+ ///
+ public string ObjectType { get; set; } = "";
+
+ ///
+ /// Chiave DoorOP
+ ///
+ public string ObjectKey { get; set; } = "";
+ ///
+ /// Valore DoorOp
+ ///
+ public string ObjectVal { get; set; } = "";
+
+ ///
+ /// Quantità DoorOp
+ ///
+ public int ObjectQty { get; set; } = 1;
+ }
+}
diff --git a/WebDoorCreator.Data/DbModels/SerializedDoorsModel.cs b/WebDoorCreator.Data/DbModels/SerializedDoorsModel.cs
index 6da5bda..1ab29a9 100644
--- a/WebDoorCreator.Data/DbModels/SerializedDoorsModel.cs
+++ b/WebDoorCreator.Data/DbModels/SerializedDoorsModel.cs
@@ -12,33 +12,17 @@ namespace WebDoorCreator.Data.DbModels
//
// This is here so CodeMaid doesn't reorganize this document
//
- [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
}
diff --git a/WebDoorCreator.Data/DbModels/UsersViewModel.cs b/WebDoorCreator.Data/DbModels/UsersViewModel.cs
index 2894690..ce2a7fb 100644
--- a/WebDoorCreator.Data/DbModels/UsersViewModel.cs
+++ b/WebDoorCreator.Data/DbModels/UsersViewModel.cs
@@ -34,10 +34,22 @@ namespace WebDoorCreator.Data.DbModels
/// RoleId from AspNetUserRoles table
///
public string RoleId { get; set; } = "";
-
///
/// Name from AspNetRole table
///
public string RoleName { get; set; } = "";
+
+ ///
+ /// ClaimId from AspNetUserRoles table
+ ///
+ public int ClaimId { get; set; } = 0;
+ ///
+ /// ClaimType from AspNetRole table
+ ///
+ public string ClaimType { get; set; } = "";
+ ///
+ /// ClaimValue from AspNetRole table
+ ///
+ public string ClaimValue { get; set; } = "";
}
}
diff --git a/WebDoorCreator.Data/DbModels/VocabularyTempModel.cs b/WebDoorCreator.Data/DbModels/VocabularyTempModel.cs
index 1ba7024..0e68889 100644
--- a/WebDoorCreator.Data/DbModels/VocabularyTempModel.cs
+++ b/WebDoorCreator.Data/DbModels/VocabularyTempModel.cs
@@ -35,5 +35,9 @@ namespace WebDoorCreator.Data.DbModels
///
[MaxLength(500)]
public string Traduzione { get; set; } = "";
+ ///
+ /// Indica se è da salvare su db o no
+ ///
+ public bool IsConfSave { get; set; } = false;
}
}
diff --git a/WebDoorCreator.Data/Migrations/20230308154051_RoleAdd.Designer.cs b/WebDoorCreator.Data/Migrations/20230308154051_RoleAdd.Designer.cs
index 5de77ae..0d5c600 100644
--- a/WebDoorCreator.Data/Migrations/20230308154051_RoleAdd.Designer.cs
+++ b/WebDoorCreator.Data/Migrations/20230308154051_RoleAdd.Designer.cs
@@ -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
{
diff --git a/WebDoorCreator.Data/Migrations/20230308154051_RoleAdd.cs b/WebDoorCreator.Data/Migrations/20230308154051_RoleAdd.cs
index aeb7e76..8cac121 100644
--- a/WebDoorCreator.Data/Migrations/20230308154051_RoleAdd.cs
+++ b/WebDoorCreator.Data/Migrations/20230308154051_RoleAdd.cs
@@ -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" }
diff --git a/WebDoorCreator.Data/Migrations/20230308155746_UsersAdd.Designer.cs b/WebDoorCreator.Data/Migrations/20230308155746_UsersAdd.Designer.cs
index 257205a..fa4462d 100644
--- a/WebDoorCreator.Data/Migrations/20230308155746_UsersAdd.Designer.cs
+++ b/WebDoorCreator.Data/Migrations/20230308155746_UsersAdd.Designer.cs
@@ -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
{
diff --git a/WebDoorCreator.Data/Migrations/20230308155746_UsersAdd.cs b/WebDoorCreator.Data/Migrations/20230308155746_UsersAdd.cs
index 3b68a5f..f353a2f 100644
--- a/WebDoorCreator.Data/Migrations/20230308155746_UsersAdd.cs
+++ b/WebDoorCreator.Data/Migrations/20230308155746_UsersAdd.cs
@@ -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" }
diff --git a/WebDoorCreator.Data/Migrations/20230308160217_UsersSeed.Designer.cs b/WebDoorCreator.Data/Migrations/20230308160217_UsersSeed.Designer.cs
index 2ca3c93..ed9fb7b 100644
--- a/WebDoorCreator.Data/Migrations/20230308160217_UsersSeed.Designer.cs
+++ b/WebDoorCreator.Data/Migrations/20230308160217_UsersSeed.Designer.cs
@@ -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
{
diff --git a/WebDoorCreator.Data/Migrations/20230308160217_UsersSeed.cs b/WebDoorCreator.Data/Migrations/20230308160217_UsersSeed.cs
index c55752a..c6cf6dd 100644
--- a/WebDoorCreator.Data/Migrations/20230308160217_UsersSeed.cs
+++ b/WebDoorCreator.Data/Migrations/20230308160217_UsersSeed.cs
@@ -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" }
});
diff --git a/WebDoorCreator.Data/Migrations/20230309075354_AddAdmins.Designer.cs b/WebDoorCreator.Data/Migrations/20230309075354_AddAdmins.Designer.cs
index 2060d29..8a2aad5 100644
--- a/WebDoorCreator.Data/Migrations/20230309075354_AddAdmins.Designer.cs
+++ b/WebDoorCreator.Data/Migrations/20230309075354_AddAdmins.Designer.cs
@@ -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
{
diff --git a/WebDoorCreator.Data/Migrations/20230309075354_AddAdmins.cs b/WebDoorCreator.Data/Migrations/20230309075354_AddAdmins.cs
index 2271249..e74afb6 100644
--- a/WebDoorCreator.Data/Migrations/20230309075354_AddAdmins.cs
+++ b/WebDoorCreator.Data/Migrations/20230309075354_AddAdmins.cs
@@ -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(
diff --git a/WebDoorCreator.Data/Migrations/20230313081642_seedUserRoles.Designer.cs b/WebDoorCreator.Data/Migrations/20230313081642_seedUserRoles.Designer.cs
index 8da328f..6d55ce8 100644
--- a/WebDoorCreator.Data/Migrations/20230313081642_seedUserRoles.Designer.cs
+++ b/WebDoorCreator.Data/Migrations/20230313081642_seedUserRoles.Designer.cs
@@ -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
{
diff --git a/WebDoorCreator.Data/Migrations/20230313081642_seedUserRoles.cs b/WebDoorCreator.Data/Migrations/20230313081642_seedUserRoles.cs
index 96c3fe4..0798520 100644
--- a/WebDoorCreator.Data/Migrations/20230313081642_seedUserRoles.cs
+++ b/WebDoorCreator.Data/Migrations/20230313081642_seedUserRoles.cs
@@ -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" },
diff --git a/WebDoorCreator.Data/Migrations/20230313082430_seedOnlyUserRoles.cs b/WebDoorCreator.Data/Migrations/20230313082430_seedOnlyUserRoles.cs
index 741dee8..b3c2ac3 100644
--- a/WebDoorCreator.Data/Migrations/20230313082430_seedOnlyUserRoles.cs
+++ b/WebDoorCreator.Data/Migrations/20230313082430_seedOnlyUserRoles.cs
@@ -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" },
diff --git a/WebDoorCreator.Data/Migrations/WDCData/20230313075917_initDbOrderDoors.Designer.cs b/WebDoorCreator.Data/Migrations/WDCData/20230313075917_initDbOrderDoors.Designer.cs
index 281099d..b7204b1 100644
--- a/WebDoorCreator.Data/Migrations/WDCData/20230313075917_initDbOrderDoors.Designer.cs
+++ b/WebDoorCreator.Data/Migrations/WDCData/20230313075917_initDbOrderDoors.Designer.cs
@@ -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
{
diff --git a/WebDoorCreator.Data/Migrations/WDCData/20230313075917_initDbOrderDoors.cs b/WebDoorCreator.Data/Migrations/WDCData/20230313075917_initDbOrderDoors.cs
index f21a264..4f449a9 100644
--- a/WebDoorCreator.Data/Migrations/WDCData/20230313075917_initDbOrderDoors.cs
+++ b/WebDoorCreator.Data/Migrations/WDCData/20230313075917_initDbOrderDoors.cs
@@ -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" }
});
diff --git a/WebDoorCreator.Data/Migrations/WDCData/20230317075501_ListValuesAndViewsAdd.cs b/WebDoorCreator.Data/Migrations/WDCData/20230317075501_ListValuesAndViewsAdd.cs
index 6a57acd..95f5576 100644
--- a/WebDoorCreator.Data/Migrations/WDCData/20230317075501_ListValuesAndViewsAdd.cs
+++ b/WebDoorCreator.Data/Migrations/WDCData/20230317075501_ListValuesAndViewsAdd.cs
@@ -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" }
});
}
diff --git a/WebDoorCreator.Data/Migrations/WDCData/20230526063309_tryFixSqlErr.Designer.cs b/WebDoorCreator.Data/Migrations/WDCData/20230526063309_tryFixSqlErr.Designer.cs
new file mode 100644
index 0000000..2641c15
--- /dev/null
+++ b/WebDoorCreator.Data/Migrations/WDCData/20230526063309_tryFixSqlErr.Designer.cs
@@ -0,0 +1,890 @@
+//
+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("20230526063309_tryFixSqlErr")]
+ partial class tryFixSqlErr
+ {
+ 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("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("ConcurrencyStamp")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("NormalizedName")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.ToTable("AspNetRoles", null, t => t.ExcludeFromMigrations());
+ });
+
+ modelBuilder.Entity("WebDoorCreator.Data.DbModels.AspNetUserRoles", b =>
+ {
+ b.Property("UserId")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("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("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("AccessFailedCount")
+ .HasColumnType("int");
+
+ b.Property("ConcurrencyStamp")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Email")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("EmailConfirmed")
+ .HasColumnType("bit");
+
+ b.Property("LockoutEnabled")
+ .HasColumnType("bit");
+
+ b.Property("LockoutEnd")
+ .HasColumnType("datetimeoffset");
+
+ b.Property("NormalizedEmail")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("NormalizedUserName")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("PasswordHash")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("PhoneNumber")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("PhoneNumberConfirmed")
+ .HasColumnType("bit");
+
+ b.Property("SecurityStamp")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TwoFactorEnabled")
+ .HasColumnType("bit");
+
+ b.Property("UserName")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.ToTable("AspNetUsers", null, t => t.ExcludeFromMigrations());
+ });
+
+ modelBuilder.Entity("WebDoorCreator.Data.DbModels.CompanyModel", b =>
+ {
+ b.Property("CompanyId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("CompanyId"), 1L, 1);
+
+ b.Property("Address")
+ .IsRequired()
+ .HasMaxLength(250)
+ .HasColumnType("nvarchar(250)");
+
+ b.Property("City")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("CompanyExtCode")
+ .IsRequired()
+ .HasMaxLength(250)
+ .HasColumnType("nvarchar(250)");
+
+ b.Property("CompanyName")
+ .IsRequired()
+ .HasMaxLength(500)
+ .HasColumnType("nvarchar(500)");
+
+ b.Property("CompanyToken")
+ .IsRequired()
+ .HasMaxLength(150)
+ .HasColumnType("nvarchar(150)");
+
+ b.Property("PrivateNote")
+ .IsRequired()
+ .HasMaxLength(500)
+ .HasColumnType("nvarchar(500)");
+
+ b.Property("State")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("VAT")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("ZipCode")
+ .HasColumnType("int");
+
+ b.HasKey("CompanyId");
+
+ b.ToTable("Company");
+ });
+
+ modelBuilder.Entity("WebDoorCreator.Data.DbModels.ConfigModel", b =>
+ {
+ b.Property("chiave")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("note")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("valore")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("valoreStd")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("chiave");
+
+ b.ToTable("Config");
+ });
+
+ modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorModel", b =>
+ {
+ b.Property("DoorId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("DoorId"), 1L, 1);
+
+ b.Property("DateIns")
+ .HasColumnType("datetime2");
+
+ b.Property("DateLockExpiry")
+ .HasColumnType("datetime2");
+
+ b.Property("DateMod")
+ .HasColumnType("datetime2");
+
+ b.Property("DoorDescript")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DoorExtCode")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("MeasureUnit")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("OrderId")
+ .HasColumnType("int");
+
+ b.Property("Quantity")
+ .HasColumnType("int");
+
+ b.Property("TypeId")
+ .HasColumnType("int");
+
+ b.Property("UnitCost")
+ .HasColumnType("decimal(18,2)");
+
+ b.Property("UserIdIns")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UserIdLock")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UserIdMod")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("DoorId");
+
+ b.HasIndex("OrderId");
+
+ b.HasIndex("TypeId");
+
+ b.ToTable("Door");
+ });
+
+ modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorOpModel", b =>
+ {
+ b.Property("DoorOpId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("DoorOpId"), 1L, 1);
+
+ b.Property("DateIns")
+ .HasColumnType("datetime2");
+
+ b.Property("DateMod")
+ .HasColumnType("datetime2");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DoorId")
+ .HasColumnType("int");
+
+ b.Property("DtConfirm")
+ .HasColumnType("datetime2");
+
+ b.Property("JsoncActVal")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("JsoncConfigVal")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ObjectId")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UserIdIns")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UserIdMod")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("userConfirm")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("DoorOpId");
+
+ b.HasIndex("DoorId");
+
+ b.ToTable("DoorOp");
+ });
+
+ modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorOpTypeModel", b =>
+ {
+ b.Property("DoorOpTypId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("DoorOpTypId"), 1L, 1);
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DisplayUrl")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DoorOpIdPathFromPatriarch")
+ .HasColumnType("hierarchyid");
+
+ b.Property("ExtDescript")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ExtOpCode")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("FPath")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("HasHw")
+ .HasColumnType("bit");
+
+ b.Property("HwCode")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("HwDescription")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("IsConcrete")
+ .HasColumnType("bit");
+
+ b.Property("IsDefault")
+ .HasColumnType("bit");
+
+ b.Property("JsoncConfig")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("MaxAllowed")
+ .HasColumnType("int");
+
+ b.Property("OpCode")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ParentDoorOpId")
+ .HasColumnType("int");
+
+ b.Property("Rev")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ValidFrom")
+ .HasColumnType("datetime2");
+
+ b.Property("ValidUntil")
+ .HasColumnType("datetime2");
+
+ b.HasKey("DoorOpTypId");
+
+ b.ToTable("DoorOpType");
+ });
+
+ modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorTypeModel", b =>
+ {
+ b.Property("TypeId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("TypeId"), 1L, 1);
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TypeCode")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("TypeId");
+
+ b.ToTable("DoorType");
+ });
+
+ modelBuilder.Entity("WebDoorCreator.Data.DbModels.GraphicParamsModel", b =>
+ {
+ b.Property("GraphicParamId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("GraphicParamId"), 1L, 1);
+
+ b.Property("compoId")
+ .HasColumnType("int");
+
+ b.Property("graphicParamAlias")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("graphicParamDefaultVal")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("graphicParamKey")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("graphicParamName")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("graphicParamType")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("graphicParamsN")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("GraphicParamId");
+
+ b.ToTable("GraphicParams");
+ });
+
+ modelBuilder.Entity("WebDoorCreator.Data.DbModels.HardwareModel", b =>
+ {
+ b.Property("HardwareId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("HardwareId"), 1L, 1);
+
+ b.Property("compoAlias")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("compoLayerName")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("compoName")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("compoTemplateIsActive")
+ .HasColumnType("bit");
+
+ b.HasKey("HardwareId");
+
+ b.ToTable("Hardware");
+ });
+
+ modelBuilder.Entity("WebDoorCreator.Data.DbModels.LanguageModel", b =>
+ {
+ b.Property("CodLingua")
+ .HasMaxLength(5)
+ .HasColumnType("nvarchar(5)");
+
+ b.Property("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("TableName")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("FieldName")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("Value")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("DefaultVal")
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("InputType")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("Label")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("Ordinal")
+ .HasColumnType("int");
+
+ b.Property("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("TableName")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("FieldName")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("Value")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("DefaultVal")
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("InputType")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("Label")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("Ordinal")
+ .HasColumnType("int");
+
+ b.Property("isSerializable")
+ .HasMaxLength(5)
+ .HasColumnType("bit");
+
+ b.HasKey("TableName", "FieldName", "Value");
+
+ b.ToTable("ListValuesTemp");
+ });
+
+ modelBuilder.Entity("WebDoorCreator.Data.DbModels.OrderModel", b =>
+ {
+ b.Property("OrderId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("OrderId"), 1L, 1);
+
+ b.Property("CompanyId")
+ .HasColumnType("int");
+
+ b.Property("DateIns")
+ .HasColumnType("datetime2");
+
+ b.Property("DateMod")
+ .HasColumnType("datetime2");
+
+ b.Property("OrderDescript")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("OrderExtCode")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Status")
+ .HasColumnType("int");
+
+ b.Property("UserIdIns")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UserIdMod")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("OrderId");
+
+ b.HasIndex("CompanyId");
+
+ b.ToTable("Order");
+ });
+
+ modelBuilder.Entity("WebDoorCreator.Data.DbModels.OrderStatusViewModel", b =>
+ {
+ b.Property("OrderId")
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("OrderId"), 1L, 1);
+
+ b.Property("CompanyId")
+ .HasColumnType("int");
+
+ b.Property("DateIns")
+ .HasColumnType("datetime2");
+
+ b.Property("NumDoors")
+ .HasColumnType("int");
+
+ b.Property("NumType")
+ .HasColumnType("int");
+
+ b.Property("OrderDescript")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("OrderExtCode")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("OrderStatus")
+ .HasColumnType("int");
+
+ b.Property("TotCost")
+ .HasColumnType("decimal(18,2)");
+
+ b.Property("UserIdIns")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UserIdMod")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("OrderId");
+
+ b.ToView("OrderStatusViewModel");
+ });
+
+ modelBuilder.Entity("WebDoorCreator.Data.DbModels.SerializedDoorsModel", b =>
+ {
+ b.Property("DoorTmpId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("DoorTmpId"), 1L, 1);
+
+ b.Property("DoorSerVal")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Lock")
+ .HasColumnType("bit");
+
+ b.HasKey("DoorTmpId");
+
+ b.ToTable("SerializedDoors");
+ });
+
+ modelBuilder.Entity("WebDoorCreator.Data.DbModels.UsersViewModel", b =>
+ {
+ b.Property("UserId")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("RoleId")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("Email")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RoleName")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UserName")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("UserId", "RoleId");
+
+ b.ToView("UsersViewModel");
+ });
+
+ modelBuilder.Entity("WebDoorCreator.Data.DbModels.VocabularyModel", b =>
+ {
+ b.Property("Lingua")
+ .HasMaxLength(5)
+ .HasColumnType("nvarchar(5)");
+
+ b.Property("Lemma")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("Traduzione")
+ .IsRequired()
+ .HasMaxLength(500)
+ .HasColumnType("nvarchar(500)");
+
+ b.HasKey("Lingua", "Lemma");
+
+ b.ToTable("Vocabulary");
+ });
+
+ modelBuilder.Entity("WebDoorCreator.Data.DbModels.VocabularyTempModel", b =>
+ {
+ b.Property("Lingua")
+ .HasMaxLength(5)
+ .HasColumnType("nvarchar(5)");
+
+ b.Property("Lemma")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("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.HasOne("WebDoorCreator.Data.DbModels.DoorTypeModel", "TypeNav")
+ .WithMany()
+ .HasForeignKey("TypeId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("OrderNav");
+
+ b.Navigation("TypeNav");
+ });
+
+ 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
+ }
+ }
+}
diff --git a/WebDoorCreator.Data/Migrations/WDCData/20230526063309_tryFixSqlErr.cs b/WebDoorCreator.Data/Migrations/WDCData/20230526063309_tryFixSqlErr.cs
new file mode 100644
index 0000000..9795bf1
--- /dev/null
+++ b/WebDoorCreator.Data/Migrations/WDCData/20230526063309_tryFixSqlErr.cs
@@ -0,0 +1,19 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace WebDoorCreator.Data.Migrations.WDCData
+{
+ public partial class tryFixSqlErr : Migration
+ {
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+
+ }
+
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+
+ }
+ }
+}
diff --git a/WebDoorCreator.Data/Migrations/WDCData/20230601135441_fixDoorTypeId.Designer.cs b/WebDoorCreator.Data/Migrations/WDCData/20230601135441_fixDoorTypeId.Designer.cs
new file mode 100644
index 0000000..a83f460
--- /dev/null
+++ b/WebDoorCreator.Data/Migrations/WDCData/20230601135441_fixDoorTypeId.Designer.cs
@@ -0,0 +1,992 @@
+//
+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("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("ConcurrencyStamp")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("NormalizedName")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.ToTable("AspNetRoles", null, t => t.ExcludeFromMigrations());
+ });
+
+ modelBuilder.Entity("WebDoorCreator.Data.DbModels.AspNetUserRoles", b =>
+ {
+ b.Property("UserId")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("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("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("AccessFailedCount")
+ .HasColumnType("int");
+
+ b.Property("ConcurrencyStamp")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Email")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("EmailConfirmed")
+ .HasColumnType("bit");
+
+ b.Property("LockoutEnabled")
+ .HasColumnType("bit");
+
+ b.Property("LockoutEnd")
+ .HasColumnType("datetimeoffset");
+
+ b.Property("NormalizedEmail")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("NormalizedUserName")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("PasswordHash")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("PhoneNumber")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("PhoneNumberConfirmed")
+ .HasColumnType("bit");
+
+ b.Property("SecurityStamp")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TwoFactorEnabled")
+ .HasColumnType("bit");
+
+ b.Property("UserName")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.ToTable("AspNetUsers", null, t => t.ExcludeFromMigrations());
+ });
+
+ modelBuilder.Entity("WebDoorCreator.Data.DbModels.CompanyModel", b =>
+ {
+ b.Property("CompanyId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("CompanyId"), 1L, 1);
+
+ b.Property("Address")
+ .IsRequired()
+ .HasMaxLength(250)
+ .HasColumnType("nvarchar(250)");
+
+ b.Property("City")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property