From 38e071e5be8d238e85fabbed39c3027489516fe2 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Wed, 19 Aug 2020 15:59:48 +0200 Subject: [PATCH] iniziata riscrittura metodi acesso dataLayer (tolto singleton) --- AppData/ComLib.cs | 97 +++++++++++-------- AppData/DataLayer.cs | 4 +- NKC_WF/BasePage.cs | 7 +- NKC_WF/BaseUserControl.cs | 4 + .../cmp_stackNextloading.ascx.cs | 6 +- 5 files changed, 75 insertions(+), 43 deletions(-) diff --git a/AppData/ComLib.cs b/AppData/ComLib.cs index ab5dc64..58e7c8c 100644 --- a/AppData/ComLib.cs +++ b/AppData/ComLib.cs @@ -376,8 +376,9 @@ namespace AppData public static bool sendMaterials() { bool answ = false; - // leggo tab MNATERIALS da DB - var table = DataLayer.man.taMat.GetData(); + // leggo tab MATERIALS da DB + DataLayer DLMan = new DataLayer(); + var table = DLMan.taMat.GetData(); // serializzo string redVal = JsonConvert.SerializeObject(table); // salvo @@ -457,13 +458,14 @@ namespace AppData /// public static bool sendFirstValidationBatch() { - bool answ = false; + DataLayer DLMan = new DataLayer(); + bool answ = false; // verifico se NON CI SIANO GIA' validazioni in corso... - var tabBatchRunning = DataLayer.man.taBL.getByStatus(1, "", 0); + var tabBatchRunning = DLMan.taBL.getByStatus(1, "", 0); if (tabBatchRunning.Count == 0) { // ora verifico, se ci sono batch in stato 8 (da validare) --> metto in coda! - var tabBatch = DataLayer.man.taBL.getByStatus(8, "", 1); + var tabBatch = DLMan.taBL.getByStatus(8, "", 1); bool hasValReq = tabBatch.Count > 0; if (hasValReq) { @@ -482,7 +484,7 @@ namespace AppData // richiedo! sendBatchReq(nextBatchId, "Estimation", 1); // registro su DB nesting iniziato... QUANDO MI RISPONDE dovrò verificare che era un batch x VALIDAZIONE - DataLayer.man.taBL.updateStatus(nextBatchId, (int)BatchStatus.EstimationRequested, "", 0); + DLMan.taBL.updateStatus(nextBatchId, (int)BatchStatus.EstimationRequested, "", 0); answ = true; } } @@ -499,6 +501,7 @@ namespace AppData /// public static bool sendBatchReq(int BatchID, string note, int pType) { + DataLayer DLMan = new DataLayer(); bool answ = false; // per prima cosa mi serve una "nuova busta" per inviare i messaggi string nextEnv = getNextEnv(BatchID, note); @@ -506,7 +509,7 @@ namespace AppData try { // in base allo stato del BATCH corrente determino il tempo e le opzioni da inviare... - var batch = DataLayer.man.taBL.getByKey(BatchID); + var batch = DLMan.taBL.getByKey(BatchID); int mTime = 1; if (batch[0].STATUS < (int)BatchStatus.EstimationDone) { @@ -526,11 +529,11 @@ namespace AppData List listPart = new List(); // leggo tab ORDINI da DB - var tblOrd = DataLayer.man.taOL.getByBatch(BatchID); + var tblOrd = DLMan.taOL.getByBatch(BatchID); // leggo tab KIT da DB - var tblKit = DataLayer.man.taKL.getByBatch(BatchID); + var tblKit = DLMan.taKL.getByBatch(BatchID); // leggo tab ITEMS da DB - var tblItm = DataLayer.man.taIL.getByBatch(BatchID); + var tblItm = DLMan.taIL.getByBatch(BatchID); // ciclo per comporre oggetto con cicli annidiati ext --> int foreach (var rigaOrd in tblOrd) @@ -618,6 +621,7 @@ namespace AppData { get { + DataLayer DLMan = new DataLayer(); bool answ = false; bool valido = false; // cerco in redis @@ -629,10 +633,10 @@ namespace AppData if (!valido) { // in primis controllo SE ci siano task running, nel qual caso è false e basta... - int numEst = DataLayer.man.taBL.getByStatus((int)BatchStatus.EstimationRequested, "", 0).Count; - int numNest = DataLayer.man.taBL.getByStatus((int)BatchStatus.NestRequested, "", 0).Count; + int numEst = DLMan.taBL.getByStatus((int)BatchStatus.EstimationRequested, "", 0).Count; + int numNest = DLMan.taBL.getByStatus((int)BatchStatus.NestRequested, "", 0).Count; // ora controllo anche offline orders... - int numOffOrd = DataLayer.man.taOffOL.getRunning().Count; + int numOffOrd = DLMan.taOffOL.getRunning().Count; // ora la somma di tutti DEVE essere zero... answ = ((numEst + numNest + numOffOrd) == 0); // salvo in redis @@ -690,7 +694,7 @@ namespace AppData { // aggiorno su DB il disegno... string disegno = sheets[0].Drawing; - DataLayer.man.taOffOL.updateDrawing(OffOrderID, disegno); + DLMan.taOffOL.updateDrawing(OffOrderID, disegno); } } } @@ -717,6 +721,7 @@ namespace AppData /// public static bool sendOfflineOrderReq(int OffOrderID, string note) { + DataLayer DLMan = new DataLayer(); bool answ = false; // per prima cosa mi serve una "nuova busta" per inviare i messaggi string nextEnv = getNextEnv(OffOrderID, note); @@ -727,7 +732,7 @@ namespace AppData // FIX pType a ESTIM int pType = 1; // ora ITEMS - var tblItm = DataLayer.man.taIL.getByOfflineOrder(OffOrderID); + var tblItm = DLMan.taIL.getByOfflineOrder(OffOrderID); // init oggetti x fare cicli... Order currOrder = null; @@ -811,6 +816,7 @@ namespace AppData /// public static bool checkOfflineOrderReq(int OffOrderID) { + DataLayer DLMan = new DataLayer(); bool answ = false; string typeSearch = "OffOrdCalculation"; string keyEnv = ""; @@ -840,7 +846,7 @@ namespace AppData // se ho in risposta drawing if (!string.IsNullOrEmpty(offOrder.DrawingPath)) { - DataLayer.man.taOffOL.updateDrawing(OffOrderID, offOrder.DrawingPath, offOrder.CncPath); + DLMan.taOffOL.updateDrawing(OffOrderID, offOrder.DrawingPath, offOrder.CncPath); } } // restituisco ok @@ -854,7 +860,8 @@ namespace AppData public static void resetPrevDataFromNesting(int BatchID) { //elimino dati child MA NON il batch... - DataLayer.man.taBL.deleteTree(BatchID, 0); + DataLayer DLMan = new DataLayer(); + DLMan.taBL.deleteTree(BatchID, 0); } /// /// Salvo dati Bunks/Sheets/Parts ricevuti da Nesting (COMPETATO) @@ -863,13 +870,14 @@ namespace AppData /// public static void updateBunksFromNesting(int BatchID, List BunkList) { + DataLayer DLMan = new DataLayer(); // inizio a processare... bunks! if (BunkList != null) { foreach (var bunk in BunkList) { // creo il BUNK! - var newBunk = DataLayer.man.taSTL.insertAndReturn(bunk.BunkIndex, BatchID); + var newBunk = DLMan.taSTL.insertAndReturn(bunk.BunkIndex, BatchID); // se ho un bunk in risposta... if (newBunk.Count == 1) { @@ -880,7 +888,7 @@ namespace AppData foreach (var sheet in bunk.SheetList) { // creo lo sheet... - var newSheet = DataLayer.man.taSHL.insertAndReturn(sheet.SheetIndex, sheet.MatId, (decimal)sheet.EstimatedWorktime, currBunk.StackID, sheet.PrintProgram, sheet.MachiningProgram, sheet.Drawing); + var newSheet = DLMan.taSHL.insertAndReturn(sheet.SheetIndex, sheet.MatId, (decimal)sheet.EstimatedWorktime, currBunk.StackID, sheet.PrintProgram, sheet.MachiningProgram, sheet.Drawing); // se ho 1 sheet in risposta if (newSheet.Count == 1) { @@ -891,13 +899,13 @@ namespace AppData foreach (var part in sheet.PartList) { // aggiungo part a sheet (in tab nesting) - DataLayer.man.taNest.insertAndReturn(currSheet.SheetID, part.PartId); + DLMan.taNest.insertAndReturn(currSheet.SheetID, part.PartId); } } // ora salvo ANCHE i remnants dello sheet... SE ci sono if (sheet.Remnant != null) { - DataLayer.man.taRem.insertAndReturn(BatchID, sheet.MatId, currSheet.SheetID, sheet.Remnant.L_mm, sheet.Remnant.W_mm, false); + DLMan.taRem.insertAndReturn(BatchID, sheet.MatId, currSheet.SheetID, sheet.Remnant.L_mm, sheet.Remnant.W_mm, false); } } } @@ -913,13 +921,14 @@ namespace AppData /// public static void updateBinsFromNesting(int BatchID, List BinList) { + DataLayer DLMan = new DataLayer(); // inizio a processare... bunks! if (BinList != null) { foreach (var item in BinList) { // creo il BIN! - var newBin = DataLayer.man.taBN.insertAndReturn(item.BinIndex); + var newBin = DLMan.taBN.insertAndReturn(item.BinIndex); // se ho un BIN in risposta... if (newBin.Count == 1) { @@ -930,7 +939,7 @@ namespace AppData foreach (var part in item.PartList) { // creo lo sheet... - var newB2I = DataLayer.man.taBNLS.insertAndReturn(currBin.BinID, part.PartId); + var newB2I = DLMan.taBNLS.insertAndReturn(currBin.BinID, part.PartId); } } } @@ -944,13 +953,14 @@ namespace AppData /// public static void updateCartsFromNesting(int BatchID, List CartList) { + DataLayer DLMan = new DataLayer(); // inizio a processare... bunks! if (CartList != null) { foreach (var item in CartList) { // creo il CART! - var newCart = DataLayer.man.taCR.insertAndReturn(item.CartIndex); + var newCart = DLMan.taCR.insertAndReturn(item.CartIndex); // se ho un CART in risposta... if (newCart.Count == 1) { @@ -961,7 +971,7 @@ namespace AppData foreach (var kit in item.KitList) { // creo lo sheet... - var updKit = DataLayer.man.taKL.updateCart(kit.KitId, currCart.CartID); + var updKit = DLMan.taKL.updateCart(kit.KitId, currCart.CartID); } } } @@ -974,6 +984,7 @@ namespace AppData /// public static void updatePartsFromNesting(List PartList) { + DataLayer DLMan = new DataLayer(); string PostProcList = ""; string ProcessesReq = ""; string pdfFilePath = ""; @@ -984,7 +995,7 @@ namespace AppData PostProcList = getPostProcList(currItem.OptParameters); ProcessesReq = getProcessesReq(currItem.OptParameters); pdfFilePath = getPdfFilePath(currItem.OptParameters); - DataLayer.man.taIL.updateFromNesting(currItem.PartId, currItem.MatId, PostProcList, ProcessesReq, pdfFilePath); + DLMan.taIL.updateFromNesting(currItem.PartId, currItem.MatId, PostProcList, ProcessesReq, pdfFilePath); } } @@ -1416,8 +1427,9 @@ namespace AppData /// public static void updateBatchPosition(int BatchID) { + DataLayer DLMan = new DataLayer(); // chiamo stored x checkPosition - DataLayer.man.taBL.checkPosition(BatchID); + DLMan.taBL.checkPosition(BatchID); } /// /// Aggiorna la POSITION del BATCH a partire dallo stato dei bunk/stack selezionato @@ -1427,8 +1439,9 @@ namespace AppData /// public static void updateBatchPositionByBunk(int BunkID) { + DataLayer DLMan = new DataLayer(); // recupero il BatchID - DS_App.StackListDataTable tabBunk = DataLayer.man.taSTL.getByKey(BunkID); + DS_App.StackListDataTable tabBunk = DLMan.taSTL.getByKey(BunkID); if (tabBunk.Count > 0) { try @@ -1491,10 +1504,11 @@ namespace AppData /// public static SheetWorkList prodGetSheetWorkList(string codPost) { + DataLayer DLMan = new DataLayer(); // init out SheetWorkList answ = null; // recupero batch corrente - DS_App.BatchListDataTable currBatch = DataLayer.man.taBL.getCurrentByMachine(codPost); + DS_App.BatchListDataTable currBatch = DLMan.taBL.getCurrentByMachine(codPost); try { if (currBatch != null) @@ -1502,7 +1516,7 @@ namespace AppData // come batch DOVREI averne solo 1 in corso... DS_App.BatchListRow batchRow = currBatch[0]; // recupero i vari SHEETS del batch... - DS_App.SheetListDataTable sheetTable = DataLayer.man.taSHL.getCurrentByBatch(batchRow.BatchID); + DS_App.SheetListDataTable sheetTable = DLMan.taSHL.getCurrentByBatch(batchRow.BatchID); List sheetList = new List(); // controllo che SIA NULL la data di unload --> NON ancora scaricato foreach (var item in sheetTable) @@ -1600,12 +1614,13 @@ namespace AppData /// public static ProdBunk prodGetFirstBunk() { + DataLayer DLMan = new DataLayer(); // cerco prima su REDIS... ProdBunk answ = redisFirstBunk; if (answ == null) { // vado sul DB e leggo ... - DS_App.StackListDataTable tabBunks = DataLayer.man.taSTL.getLoaded(); + DS_App.StackListDataTable tabBunks = DLMan.taSTL.getLoaded(); // controllo di averne almeno 1... if (tabBunks.Count > 0) { @@ -1691,8 +1706,9 @@ namespace AppData /// public static DS_App.PackListRow getCurrPackList() { + DataLayer DLMan = new DataLayer(); DS_App.PackListRow answ = null; - var tabPLD = DataLayer.man.taPL.getRunning(); + var tabPLD = DLMan.taPL.getRunning(); if (tabPLD.Count > 0) { answ = tabPLD[0]; @@ -1788,11 +1804,12 @@ namespace AppData /// public static ProdBunk prodGetNextBunk(int BunkID) { + DataLayer DLMan = new DataLayer(); ProdBunk answ = getRedisNextBunk(BunkID); if (answ == null) { // vado sul DB e leggo ... - DS_App.StackListDataTable tabBunks = DataLayer.man.taSTL.getLoaded(); + DS_App.StackListDataTable tabBunks = DLMan.taSTL.getLoaded(); // controllo di averne almeno 1... if (tabBunks.Count > 0) { @@ -1830,6 +1847,7 @@ namespace AppData /// private static ProdBunk getBunkFromDb(DS_App.StackListRow currBunk) { + DataLayer DLMan = new DataLayer(); ProdBunk answ; // calcolo attributi oggetti CStatus currSt = CStatus.Programmed; @@ -1843,7 +1861,7 @@ namespace AppData } List elSheet = new List(); // recupero gli sheets di questo stack... - DS_App.SheetListDataTable tabSheets = DataLayer.man.taSHL.getByStack(currBunk.StackID); + DS_App.SheetListDataTable tabSheets = DLMan.taSHL.getByStack(currBunk.StackID); DateTime dataStart = DateTime.Now; ProdSheet currPanel; string nestBasePath = memLayer.ML.CRS("nestBasePath").ToLower(); @@ -1910,9 +1928,10 @@ namespace AppData /// public static ProdBunk prodGetBunk(int StackID) { + DataLayer DLMan = new DataLayer(); ProdBunk answ = null; List elSheet = new List(); - var tabBunks = DataLayer.man.taSTL.getByKey(StackID); + var tabBunks = DLMan.taSTL.getByKey(StackID); if (tabBunks.Count == 1) { DS_App.StackListRow currBunk = tabBunks[0]; @@ -1927,7 +1946,7 @@ namespace AppData currSt = CStatus.Done; } // recupero gli sheets di questo stack... - DS_App.SheetListDataTable tabSheets = DataLayer.man.taSHL.getByStack(StackID); + DS_App.SheetListDataTable tabSheets = DLMan.taSHL.getByStack(StackID); DateTime dataStart = DateTime.Now; ProdSheet currPanel; string nestBasePath = memLayer.ML.CRS("nestBasePath").ToLower(); @@ -2124,6 +2143,7 @@ namespace AppData /// public static string getCurrentCss(int sheetID) { + DataLayer DLMan = new DataLayer(); // area REDIS! string redKeyBase = $"{machineUnloadArea(sheetID)}"; // TTL standard @@ -2138,7 +2158,7 @@ namespace AppData try { // elenco items da foglio!!! - var tabItems = DataLayer.man.taIL.getBySheet(sheetID); + var tabItems = DLMan.taIL.getBySheet(sheetID); List itemsAll = new List(); List itemsDepo = new List(); List itemsCart = new List(); @@ -2402,10 +2422,11 @@ namespace AppData { get { + DataLayer DLMan = new DataLayer(); int answ = 0; try { - var currData = DataLayer.man.taBL.getNextAvailable(); + var currData = DLMan.taBL.getNextAvailable(); if (currData.Count > 0) { answ = currData[0].BatchID; diff --git a/AppData/DataLayer.cs b/AppData/DataLayer.cs index 31380df..fee43c2 100644 --- a/AppData/DataLayer.cs +++ b/AppData/DataLayer.cs @@ -140,10 +140,12 @@ namespace AppData #endregion +#if false /// /// oggetto static/singleton per fare chiamate sul datalayer /// - public static DataLayer man = new DataLayer(); + public static DataLayer man = new DataLayer(); +#endif public string CodSoggCurrUser { diff --git a/NKC_WF/BasePage.cs b/NKC_WF/BasePage.cs index 7116ede..78f7fa1 100644 --- a/NKC_WF/BasePage.cs +++ b/NKC_WF/BasePage.cs @@ -1,4 +1,5 @@ -using SteamWare; +using AppData; +using SteamWare; using System; using System.IO; using System.Web.UI; @@ -7,6 +8,10 @@ namespace NKC_WF { public class BasePage : System.Web.UI.Page { + /// + /// Membro gestione accessi al datalayer (istanza x ogni classe controllo) + /// + protected DataLayer DLMan = new DataLayer(); /// /// Wrapper traduzione termini /// diff --git a/NKC_WF/BaseUserControl.cs b/NKC_WF/BaseUserControl.cs index 9b8539d..cc48101 100644 --- a/NKC_WF/BaseUserControl.cs +++ b/NKC_WF/BaseUserControl.cs @@ -8,6 +8,10 @@ namespace NKC_WF { public class BaseUserControl : System.Web.UI.UserControl { + /// + /// Membro gestione accessi al datalayer (istanza x ogni classe controllo) + /// + protected DataLayer DLMan = new DataLayer(); /// /// Generico evento di richiesta refresh a aprent /// diff --git a/NKC_WF/WebUserControls/cmp_stackNextloading.ascx.cs b/NKC_WF/WebUserControls/cmp_stackNextloading.ascx.cs index 13cf0af..be05713 100644 --- a/NKC_WF/WebUserControls/cmp_stackNextloading.ascx.cs +++ b/NKC_WF/WebUserControls/cmp_stackNextloading.ascx.cs @@ -13,7 +13,7 @@ namespace NKC_WF.WebUserControls { // mostra button x collezionare Redo SOLO SE ci sono fogli da rilavorare... int numRedo = 0; - var stList = DataLayer.man.taSTL.getByBatch(BatchId); + var stList = DLMan.taSTL.getByBatch(BatchId); foreach (var item in stList) { numRedo += item.NumSheetsToRedo; @@ -64,7 +64,7 @@ namespace NKC_WF.WebUserControls protected void lbtCollectRedo_Click(object sender, EventArgs e) { // chiamo stored x sistemare - DataLayer.man.taBL.fixRedoSheet(BatchId); + DLMan.taBL.fixRedoSheet(BatchId); doUpdate(); } @@ -76,7 +76,7 @@ namespace NKC_WF.WebUserControls protected void lbtCollectRedoOnEnd_Click(object sender, EventArgs e) { // chiamo stored x sistemare - DataLayer.man.taBL.fixRedoSheetOnEnd(BatchId); + DLMan.taBL.fixRedoSheetOnEnd(BatchId); doUpdate(); }