# NKC Progetto per NKC Sauder con Egaltech ## Architettura L'architettura prevede ## Db Scaffolding EFCore Per la gestione dell'accesso al DB si opera con EFCore --> app blazor server Per generare le classi da un DB esistente con cui operare EFCore CodeFirst usare lo scaffolding coi seguenti comandi. Attenzione: la classe DbCOntext viene creata INSIEME alle viste nella folder DatabaseModel (nell'esempio seguente...) ### DB iniziale Scaffold-DbContext "Server=SQL2016DEV;Database=Sauder_NKC;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir DbModels ### SOLO di tabelle/viste selezionate (con force update) Scaffold-DbContext "Server=SQL2016DEV;Database=Sauder_NKC;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir DbModels -Tables Models ### Approfondimenti Qualche link di approfondimento: - https://docs.microsoft.com/en-us/ef/core/ - https://docs.microsoft.com/en-us/ef/core/extensions/ - https://www.entityframeworktutorial.net/efcore/create-model-for-existing-database-in-ef-core.aspx - https://entityframework.net/ef-code-first ## Note setup Va installato - powershell - salt - IIS - SqlServer - Redis - tools vari x gestione dei 3 va inoiltre configurato IIS per gestire el chaimate PUT/DELETE di WebAPI: in particoalre per **abilitare i METODI PUT** Task | Come ---------|---------- Conf IIS | modificare il file **applicationHost.config** che si trova in *C:\Windows\System32\inetsrv\config* WebDAV | disinstallare webDav oppure commentare le righe dell'*esempio (1)* sottostante Conf IIS | aggiungere PUT/DELETE a handler come nell'*esempio (2)* sottostante *esempio (1)* ```xml ``` *esempio (2)*: ```xml ``` ## Specifica codici DataMatrix Abbiamo convenuto di tenere i codici datamatrix piùcporti possibili. La lunghezza target è 10char. Le prime due cifre servono a distinguere COSA stiamo traccaindo Le restanti 8 ci permettono di codificare in HEX (escludenxo 0x iniziale) cifre sino a FFFF FFFF = 4 miliardi di codici (INT di SQL è la emtà essendo con segno). Ogni tipo di oggetto tracciato avrà quindi una codifica parlante in cui la prima cifra indicherà la sua natura secondo il seguente schema: Cifra iniziale | Oggetto | Esempio | Note ---------|----------|---------|---------|---------|--------- BN | Bin | BN00041F120 | Ceste, usiamo la conversione HEX del contatore BinId | CR | Cart | CR004B0F120 | Carrelli, usiamo la conversione HEX del contatore CartId | IT | Item | IT000F1234 | Usiamo la conversione HEX del contatore ItemId IG | Item GENERIC |IG000F2314 | Viene staccato ogni giorno un nuovo numero x indicare gli items uguali della giornata, con conversione Hex | MT | Material | MT00006120 | Viene usato il codice del materiale originale con padding di zero (no conv HEX) | OR | Order | OR000B0F120 | Usiamo la conversione HEX del contatore OrderId | ST | Stack | ST000FB120 | Usiamo la conversione HEX del contatore StackId | ## Postazioni ### Postazione OrderManager Questa prima psotazione serve alla gestione preliminare degli ordini e quindi al calcolo del tempo stimato dal **NESTING + CNC** delel alvorazioni connesse.