From eaa43c6209368aae04bfb6038819490908ffa0e0 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Thu, 8 Jun 2023 17:17:15 +0200 Subject: [PATCH] Fix gestione cancellazione logica x ricerche --- .../Controllers/ProjController.cs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/EgtBEAMWALL.DataLayer/Controllers/ProjController.cs b/EgtBEAMWALL.DataLayer/Controllers/ProjController.cs index 2d17dd4b..cff3d240 100644 --- a/EgtBEAMWALL.DataLayer/Controllers/ProjController.cs +++ b/EgtBEAMWALL.DataLayer/Controllers/ProjController.cs @@ -112,8 +112,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers /// Get records filtered by BtlPartName matching regexp BtlFileName[_number] /// /// Base name to search for (=starts by BtlFileName%) + /// Solo i record attivi (senza cancellazione logica) /// - public List FindByBtlFileName(string BtlFileName) + public List FindByBtlFileName(string BtlFileName, bool OnlyActive) { List searchResult = new List(); using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING)) @@ -121,7 +122,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers // in primi cerco il record "parent" generale, se non ci fosse inutile proseguire... ProjModel parentRec = localDbCtx .ProjList - .Where(x => x.BTLFileName == BtlFileName) + .Where(x => x.BTLFileName == BtlFileName && (!OnlyActive || x.IsActive)) .FirstOrDefault(); if (parentRec != null && parentRec.ProjId > 0) { @@ -130,7 +131,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers // cerco eventuali dati "child" puliti var childRec = localDbCtx .ProjList - .Where(x => x.BTLFileName.StartsWith(BtlFileName + "_")) + .Where(x => x.BTLFileName.StartsWith(BtlFileName + "_") && (!OnlyActive || x.IsActive)) .ToList(); // faccio filtro con ricerca regexp x scartare "falsi positivi" come BtlFileName_nonNumero... if (childRec.Count > 0) @@ -201,7 +202,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers /// /// Get filtered data by ProdId (ASC ordered) /// - /// + /// /// public List GetByProdAsc(int ProdId) { @@ -302,8 +303,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers /// Elenco progetti /// /// + /// Solo i record attivi (senza cancellazione logica) /// - public List GetLastDesc(int numRecord) + public List GetLastDesc(int numRecord, bool OnlyActive) { List answ = new List(); @@ -317,6 +319,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers // retrieve var dbRes = localDbCtx .ProjList + .Where(x => (!OnlyActive || x.IsActive)) .OrderByDescending(x => x.ProjId) .Take(numRecord) .ToList(); @@ -670,7 +673,8 @@ namespace EgtBEAMWALL.DataLayer.Controllers { // 2022.01.24: verifico UNIVOCITA' nel nome del file: SE fosse duplicato --> // nuovo nome, nel formato nomeOriginale_idx, dove idx è il contatore libero successivo - var duplicateList = FindByBtlFileName(BTLFileName); + // 2023.06.08: lasciato come prima, anche NON attivi (cancellazione logica) + var duplicateList = FindByBtlFileName(BTLFileName, false); // devo verificare SOLO SE la lista non è vuota if (duplicateList != null && duplicateList.Count > 0) {