From f140b6df541760077f179e24bfcfebca039d0ee4 Mon Sep 17 00:00:00 2001 From: Emmanuele Sassi Date: Fri, 29 Sep 2023 11:44:50 +0200 Subject: [PATCH 01/15] - correzione funzionamento OpenProject su BTL aggiunti direttamente a Prod --- .../OpenProjectFileDialogVM.vb | 4 +- .../OpenProjectFileDialogVM.vb | 5 +- .../OpenProjectFileDialogVM.vb | 51 ++++++++++--------- 3 files changed, 32 insertions(+), 28 deletions(-) diff --git a/EgtBEAMWALL.Core/OpenProjectFileDialog/OpenProjectFileDialogVM.vb b/EgtBEAMWALL.Core/OpenProjectFileDialog/OpenProjectFileDialogVM.vb index 73e2dc6b..bb3f303b 100644 --- a/EgtBEAMWALL.Core/OpenProjectFileDialog/OpenProjectFileDialogVM.vb +++ b/EgtBEAMWALL.Core/OpenProjectFileDialog/OpenProjectFileDialogVM.vb @@ -42,6 +42,8 @@ Public MustInherit Class OpenProjectFileDialogVM Friend Event m_CloseWindow(bDialogResult As Boolean) + Protected m_GoToProd As Boolean = False + Protected m_ProjectColumns As New ObservableCollection(Of EgtDataGridColumn) Public Property ProjectColumns As ObservableCollection(Of EgtDataGridColumn) Get @@ -438,7 +440,7 @@ Public MustInherit Class OpenProjectFileDialogVM #Region "METHODS" Public MustOverride Function Init(ProjectType As ProjectType, Optional CurrProjectList As List(Of ProjectFileVM) = Nothing, Optional GoToProd As Boolean = False) As Boolean? - Public Overridable Sub RefreshProjectList(Optional GoToProd As Boolean = False) + Public Overridable Sub RefreshProjectList() End Sub Protected Sub LoadColumns(ProjectType As ProjectType) diff --git a/EgtBEAMWALL.Supervisor/OpenProjectFileDialog/OpenProjectFileDialogVM.vb b/EgtBEAMWALL.Supervisor/OpenProjectFileDialog/OpenProjectFileDialogVM.vb index 5a98738d..6a5ebb90 100644 --- a/EgtBEAMWALL.Supervisor/OpenProjectFileDialog/OpenProjectFileDialogVM.vb +++ b/EgtBEAMWALL.Supervisor/OpenProjectFileDialog/OpenProjectFileDialogVM.vb @@ -11,13 +11,14 @@ Public Class OpenProjectFileDialogVM Public Overrides Function Init(ProjectType As ProjectType, Optional CurrProjectList As List(Of ProjectFileVM) = Nothing, Optional GoToProd As Boolean = False) As Boolean? m_ProjectType = ProjectType + m_GoToProd = GoToProd ' carico colonne LoadColumns(m_ProjectType) NotifyPropertyChanged(NameOf(FilterTypeList)) m_SelFilterType = m_FilterTypeList(0) ' carico lista progetti If IsNothing(CurrProjectList) OrElse CurrProjectList.Count = 0 Then - RefreshProjectList(GoToProd) + RefreshProjectList() Else m_ProjectList = New ObservableCollection(Of ProjectFileVM)(CurrProjectList) NotifyPropertyChanged(NameOf(ProjectList)) @@ -26,7 +27,7 @@ Public Class OpenProjectFileDialogVM m_ProjectList_View.Filter = AddressOf ProjectFilter End Function - Public Overrides Sub RefreshProjectList(Optional GoToProd As Boolean = False) + Public Overrides Sub RefreshProjectList() m_ProjectList.Clear() ' calcolo periodo e righe Dim dtStart As DateTime diff --git a/EgtBEAMWALL.ViewerOptimizer/OpenProjectFileDialog/OpenProjectFileDialogVM.vb b/EgtBEAMWALL.ViewerOptimizer/OpenProjectFileDialog/OpenProjectFileDialogVM.vb index fbb1481f..3a94b47e 100644 --- a/EgtBEAMWALL.ViewerOptimizer/OpenProjectFileDialog/OpenProjectFileDialogVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/OpenProjectFileDialog/OpenProjectFileDialogVM.vb @@ -12,6 +12,7 @@ Public Class OpenProjectFileDialogVM Public Overrides Function Init(ProjectType As ProjectType, Optional CurrProjectList As List(Of ProjectFileVM) = Nothing, Optional GoToProd As Boolean = False) As Boolean? m_ProjectType = ProjectType + m_GoToProd = GoToProd ' carico colonne LoadColumns(ProjectType) NotifyPropertyChanged(NameOf(FilterTypeList)) @@ -19,7 +20,7 @@ Public Class OpenProjectFileDialogVM ' carico lista progetti If IsNothing(CurrProjectList) OrElse CurrProjectList.Count = 0 Then SetFixedProjectList(False) - RefreshProjectList(GoToProd) + RefreshProjectList() Else SetFixedProjectList(True) m_ProjectList = New ObservableCollection(Of ProjectFileVM)(CurrProjectList) @@ -29,7 +30,7 @@ Public Class OpenProjectFileDialogVM m_ProjectList_View.Filter = AddressOf ProjectFilter End Function - Public Overrides Sub RefreshProjectList(Optional GoToProd As Boolean = False) + Public Overrides Sub RefreshProjectList() m_ProjectList.Clear() ' calcolo periodo e righe Dim dtStart As DateTime @@ -66,30 +67,15 @@ Public Class OpenProjectFileDialogVM Else DbProjectList = DbControllers.m_ProjController.GetLastByExpDesc(dtStart, dtEnd, nRowQuantity, False) End If - For Each Project In DbProjectList - ' recupero path per verificare esista - If IsNothing(Project.nProjId) OrElse Project.nProjId = 0 Then Continue For - Dim sPath As String = Map.refMainWindowVM.MainWindowM.sProjsDir & "\" & Project.nProjId.ToString("0000") & "\" & Project.nProjId.ToString("0000") & ".nge" - If File.Exists(sPath) Then - m_ProjectList.Add(New ProjFileVM(Project)) - Else - ' CheckMe impostata come cancellazione FISICA dal DB... - DbControllers.m_ProjController.DeleteProj(Project.nProjId, False) - EgtOutLog("Found project on Db without the folder and erased it! Proj number " & Project.nProjId.ToString("0000")) - End If - Next - ElseIf m_ProjectType = ProjectType.PROD Then - Dim DbProjectList As New List(Of ProdFileM) - DbProjectList = DbControllers.m_ProdController.GetLastDesc(dtStart, dtEnd, nRowQuantity, True) - If GoToProd Then + If m_GoToProd Then For Each Project In DbProjectList ' recupero path per verificare esista If IsNothing(Project.nProdId) OrElse Project.nProdId = 0 Then Continue For - Dim sPath As String = Map.refMainWindowVM.MainWindowM.sProdsDir & "\" & Project.nProdId.ToString("0000") & "\" & Project.nProdId.ToString("0000") & ".nge" + Dim sPath As String = Map.refMainWindowVM.MainWindowM.sProjsDir & "\" & Project.nProjId.ToString("0000") & "\" & Project.nProjId.ToString("0000") & ".nge" If Project.sMachine = Map.refProjManagerVM.CurrProj.sMachine AndAlso Project.nType = Map.refProjManagerVM.CurrProj.nType Then If File.Exists(sPath) Then - m_ProjectList.Add(New ProdFileVM(Project)) + m_ProjectList.Add(New ProjFileVM(Project)) Else DbControllers.m_ProdController.DeleteProd(Project.nProdId, True) EgtOutLog("Found project on Db without the folder and erased it! Prod number " & Project.nProdId.ToString("0000")) @@ -99,16 +85,31 @@ Public Class OpenProjectFileDialogVM Else For Each Project In DbProjectList ' recupero path per verificare esista - If IsNothing(Project.nProdId) OrElse Project.nProdId = 0 Then Continue For - Dim sPath As String = Map.refMainWindowVM.MainWindowM.sProdsDir & "\" & Project.nProdId.ToString("0000") & "\" & Project.nProdId.ToString("0000") & ".nge" + If IsNothing(Project.nProjId) OrElse Project.nProjId = 0 Then Continue For + Dim sPath As String = Map.refMainWindowVM.MainWindowM.sProjsDir & "\" & Project.nProjId.ToString("0000") & "\" & Project.nProjId.ToString("0000") & ".nge" If File.Exists(sPath) Then - m_ProjectList.Add(New ProdFileVM(Project)) + m_ProjectList.Add(New ProjFileVM(Project)) Else - DbControllers.m_ProdController.DeleteProd(Project.nProdId, True) - EgtOutLog("Found project on Db without the folder and erased it! Prod number " & Project.nProdId.ToString("0000")) + ' CheckMe impostata come cancellazione FISICA dal DB... + DbControllers.m_ProjController.DeleteProj(Project.nProjId, False) + EgtOutLog("Found project on Db without the folder and erased it! Proj number " & Project.nProjId.ToString("0000")) End If Next End If + ElseIf m_ProjectType = ProjectType.PROD Then + Dim DbProjectList As New List(Of ProdFileM) + DbProjectList = DbControllers.m_ProdController.GetLastDesc(dtStart, dtEnd, nRowQuantity, True) + For Each Project In DbProjectList + ' recupero path per verificare esista + If IsNothing(Project.nProdId) OrElse Project.nProdId = 0 Then Continue For + Dim sPath As String = Map.refMainWindowVM.MainWindowM.sProdsDir & "\" & Project.nProdId.ToString("0000") & "\" & Project.nProdId.ToString("0000") & ".nge" + If File.Exists(sPath) Then + m_ProjectList.Add(New ProdFileVM(Project)) + Else + DbControllers.m_ProdController.DeleteProd(Project.nProdId, True) + EgtOutLog("Found project on Db without the folder and erased it! Prod number " & Project.nProdId.ToString("0000")) + End If + Next End If End Sub From f65d07ab22dd8de93f00b8661c6ce32ba68324d0 Mon Sep 17 00:00:00 2001 From: Emmanuele Sassi Date: Fri, 29 Sep 2023 15:53:47 +0200 Subject: [PATCH 02/15] - aggiunta lista ProjFileM in ProdFileM --- EgtBEAMWALL.Core/ProjectFileVM/ProdFileM.vb | 25 +++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/EgtBEAMWALL.Core/ProjectFileVM/ProdFileM.vb b/EgtBEAMWALL.Core/ProjectFileVM/ProdFileM.vb index 58286ce9..df781938 100644 --- a/EgtBEAMWALL.Core/ProjectFileVM/ProdFileM.vb +++ b/EgtBEAMWALL.Core/ProjectFileVM/ProdFileM.vb @@ -14,6 +14,13 @@ Public Class ProdFileM m_nProjIdList = value End Sub + Protected m_ProjMList As List(Of ProjFileM) + Public ReadOnly Property ProjMList As List(Of ProjFileM) + Get + Return m_ProjMList + End Get + End Property + Protected m_sName As String Public Property sName As String Get @@ -60,6 +67,24 @@ Public Class ProdFileM Return NewProjectFileM End Function + Public Shared Function CreateProdFileM(nProdId As Integer, nProjIdList As List(Of Integer), dtCreateProjDate As DateTime, sName As String, nType As BWType, + sMachine As String, sLockedBy As String, dtLock As DateTime, bIsActive As Boolean, bIsProduced As Boolean, bIsArchived As Boolean, ProjMList As List(Of ProjFileM)) As ProdFileM + Dim NewProjectFileM As New ProdFileM + NewProjectFileM.m_nProdId = nProdId + NewProjectFileM.m_nProjIdList = nProjIdList + NewProjectFileM.m_dtCreateDate = dtCreateProjDate + NewProjectFileM.m_sName = sName + NewProjectFileM.m_nType = nType + NewProjectFileM.m_sMachine = sMachine + NewProjectFileM.m_sLockedBy = sLockedBy + NewProjectFileM.m_dtLock = dtLock + NewProjectFileM.m_bIsActive = bIsActive + NewProjectFileM.m_bIsProduced = bIsProduced + NewProjectFileM.m_bIsArchived = bIsArchived + NewProjectFileM.m_ProjMList = ProjMList + Return NewProjectFileM + End Function + #End Region ' CONSTRUCTORS End Class \ No newline at end of file From fb92f9faea5d7f07d8c572ffe31f975477b8ee00 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Fri, 29 Sep 2023 15:56:26 +0200 Subject: [PATCH 03/15] typo --- EgtBEAMWALL.DataLayer/Controllers/ProjController.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/EgtBEAMWALL.DataLayer/Controllers/ProjController.cs b/EgtBEAMWALL.DataLayer/Controllers/ProjController.cs index b546fea7..870f64a4 100644 --- a/EgtBEAMWALL.DataLayer/Controllers/ProjController.cs +++ b/EgtBEAMWALL.DataLayer/Controllers/ProjController.cs @@ -33,6 +33,8 @@ namespace EgtBEAMWALL.DataLayer.Controllers var dbResult = localDbCtx .ProjList .Where(x => x.BTLFileName == BTLFileName) + //valutare se usare solo attivi... + //.Where(x => x.BTLFileName == BTLFileName && x.IsActive == true) .FirstOrDefault(); //se avesse trovato-- > riporto id... @@ -581,7 +583,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers /// Update record su DB x elenco BTLParts /// /// - /// + /// /// public ProjModel UpdateBtlParts(int ProjId, List BtlPartList) { From 689e81219bdab6876fe5752a16435b02c88ed5c3 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Fri, 29 Sep 2023 16:37:25 +0200 Subject: [PATCH 04/15] Modifica x gestione lettura proj insieme a prod (da testare) --- .../Controllers/ProdController.cs | 88 ++++++++++++++++++- .../DatabaseModels/ProdModel.cs | 10 +++ 2 files changed, 97 insertions(+), 1 deletion(-) diff --git a/EgtBEAMWALL.DataLayer/Controllers/ProdController.cs b/EgtBEAMWALL.DataLayer/Controllers/ProdController.cs index 509259d7..ce33d92a 100644 --- a/EgtBEAMWALL.DataLayer/Controllers/ProdController.cs +++ b/EgtBEAMWALL.DataLayer/Controllers/ProdController.cs @@ -2,6 +2,7 @@ using NLog; using System; using System.Collections.Generic; +using System.Data.Entity; using System.Linq; using static EgtBEAMWALL.Core.ConstBeam; @@ -285,6 +286,90 @@ namespace EgtBEAMWALL.DataLayer.Controllers return result; } + /// + /// Elenco prod + /// + /// Num max record da recuperare + /// Solo con ALMENO 1 PROJ attivo (senza cancellazione logica) + /// Se true: mostra anche archiviati (default li nasconde) + /// + public List GetLastDescFull(int numRecord, bool OnlyActive, bool ShowArchived = false) + { + List result = new List(); + //List dbResult = GetLastDbModelDesc(numRecord); + List dbResult = new List(); + using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING)) + { + // se numRecord = 0 --> passo tutti + if (numRecord == 0) + { + numRecord = localDbCtx.ProdList.Count(); + } + // retrieve + dbResult = localDbCtx + .ProdList + .Where(x => (!x.IsArchived || ShowArchived)) + //.Include(j => j.) + // condizione join sui PROJ + .Join(localDbCtx.ProjList.Where(x => x.IsActive || !OnlyActive), + p => p.ProdDbId, + e => e.ProdDbId, + (p, e) => p) + .Distinct() + .Include(j => j.ProjListNav) + .OrderByDescending(x => x.ProdId) + .Take(numRecord) + .ToList(); + } + + // conversione + result = dbResult.Select(x => coreConv(x)).ToList(); + //result = dbResult.Select(x => Core.ProdFileM.CreateProdFileM(x.ProdId, ProjIdByProd(x.ProdId), x.DtCreated, x.Description, x.PType, x.Machine, x.LockedBy, x.LockDate, x.IsActive, x.IsProduced, x.IsArchived, x.ProjListNav.Select(j => Core.ProjFileM.CreateProjFileM(j.ProjId, x.ProdId, j.DtCreated, j.DtExported, j.ListName, j.BTLFileName, j.ProjDescription, j.IsNew, j.Locked, j.PType, j.Machine, j.IsActive, j.IsActive)).ToList())).ToList(); + return result; + } + /// + /// Elenco prod + /// + /// Inizio periodo estrazione + /// Fine periodo estrazione + /// Num max record da recuperare + /// Solo con ALMENO 1 PROJ attivo (senza cancellazione logica) + /// Se true: mostra anche archiviati (default li nasconde) + /// + public List GetLastDescFull(DateTime dtStart, DateTime dtEnd, int numRecord, bool OnlyActive, bool ShowArchived = false) + { + List result = new List(); + //List dbResult = GetLastDbModelDesc(numRecord); + List dbResult = new List(); + using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING)) + { + // se numRecord = 0 --> passo tutti + if (numRecord == 0) + { + numRecord = localDbCtx.ProdList.Count(); + } + // retrieve + dbResult = localDbCtx + .ProdList + .Where(x => x.DtCreated >= dtStart && x.DtCreated <= dtEnd && (!x.IsArchived || ShowArchived)) + // condizione join sui PROJ + .Join(localDbCtx.ProjList.Where(x => x.IsActive || !OnlyActive), + p => p.ProdDbId, + e => e.ProdDbId, + (p, e) => p) + .Distinct() + .Include(j => j.ProjListNav) + .OrderByDescending(x => x.ProdId) + .Take(numRecord) + .ToList(); + } + + // conversione + result = dbResult.Select(x => coreConv(x)).ToList(); + //result = dbResult.Select(x => Core.ProdFileM.CreateProdFileM(x.ProdId, ProjIdByProd(x.ProdId), x.DtCreated, x.Description, x.PType, x.Machine, x.LockedBy, x.LockDate, x.IsActive, x.IsProduced, x.IsArchived, x.ProjListNav.Select(j => Core.ProjFileM.CreateProjFileM(j.ProjId, x.ProdId, j.DtCreated, j.DtExported, j.ListName, j.BTLFileName, j.ProjDescription, j.IsNew, j.Locked, j.PType, j.Machine, j.IsActive, j.IsActive)).ToList())).ToList(); + return result; + } + /// /// Fornisce nuovo indice VUOTO da usare (allocando sul DB) /// @@ -909,7 +994,8 @@ namespace EgtBEAMWALL.DataLayer.Controllers /// protected Core.ProdFileM coreConv(ProdModel currProd) { - Core.ProdFileM answ = Core.ProdFileM.CreateProdFileM(currProd.ProdId, ProjIdByProd(currProd.ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine, currProd.LockedBy, currProd.LockDate, currProd.IsActive, currProd.IsProduced, currProd.IsArchived); + //Core.ProdFileM answ = Core.ProdFileM.CreateProdFileM(currProd.ProdId, ProjIdByProd(currProd.ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine, currProd.LockedBy, currProd.LockDate, currProd.IsActive, currProd.IsProduced, currProd.IsArchived); + Core.ProdFileM answ = Core.ProdFileM.CreateProdFileM(currProd.ProdId, ProjIdByProd(currProd.ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine, currProd.LockedBy, currProd.LockDate, currProd.IsActive, currProd.IsProduced, currProd.IsArchived, currProd.ProjListNav.Select(j => Core.ProjFileM.CreateProjFileM(j.ProjId, currProd.ProdId, j.DtCreated, j.DtExported, j.ListName, j.BTLFileName, j.ProjDescription, j.IsNew, j.Locked, j.PType, j.Machine, j.IsActive, j.IsActive)).ToList()); return answ; } diff --git a/EgtBEAMWALL.DataLayer/DatabaseModels/ProdModel.cs b/EgtBEAMWALL.DataLayer/DatabaseModels/ProdModel.cs index 093201f2..7999da61 100644 --- a/EgtBEAMWALL.DataLayer/DatabaseModels/ProdModel.cs +++ b/EgtBEAMWALL.DataLayer/DatabaseModels/ProdModel.cs @@ -19,6 +19,11 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels { #region Public Properties + public ProdModel() + { + ProjListNav = new HashSet(); + } + /// /// Chiave univoca DB /// @@ -98,6 +103,11 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels [Column("IsArchived")] public bool IsArchived { get; set; } = false; + /// + /// Collezione oggetti Proj associati (almeno 1 by design) + /// + public virtual ICollection ProjListNav { get; set; } + #endregion Public Properties } } \ No newline at end of file From 946ad1d29c20402d88229245b78655a4d4036eb3 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Fri, 29 Sep 2023 17:13:53 +0200 Subject: [PATCH 05/15] Modifica output: Prod --> prodItem list --- EgtBEAMWALL.Core/EgtBEAMWALL.Core.vbproj | 1 + .../NewOpenProjectFileDialogVM.vb | 91 --------------- EgtBEAMWALL.Core/ProjectFileVM/ProdItem.vb | 109 ++++++++++++++++++ .../Controllers/ProdController.cs | 27 +++-- 4 files changed, 129 insertions(+), 99 deletions(-) create mode 100644 EgtBEAMWALL.Core/ProjectFileVM/ProdItem.vb diff --git a/EgtBEAMWALL.Core/EgtBEAMWALL.Core.vbproj b/EgtBEAMWALL.Core/EgtBEAMWALL.Core.vbproj index 69217ff5..bb1e5b00 100644 --- a/EgtBEAMWALL.Core/EgtBEAMWALL.Core.vbproj +++ b/EgtBEAMWALL.Core/EgtBEAMWALL.Core.vbproj @@ -116,6 +116,7 @@ NewOpenProjectFileDialogV.xaml + diff --git a/EgtBEAMWALL.Core/NewOpenProjectFileDialog/NewOpenProjectFileDialogVM.vb b/EgtBEAMWALL.Core/NewOpenProjectFileDialog/NewOpenProjectFileDialogVM.vb index 10507a51..8246ab49 100644 --- a/EgtBEAMWALL.Core/NewOpenProjectFileDialog/NewOpenProjectFileDialogVM.vb +++ b/EgtBEAMWALL.Core/NewOpenProjectFileDialog/NewOpenProjectFileDialogVM.vb @@ -779,94 +779,3 @@ Public MustInherit Class NewOpenProjectFileDialogVM End Class -Public Class ProdItem - Inherits VMBase - - Public Shared m_delIsModifiedSetUp As Action(Of Boolean) - - Protected m_ProdFileVM As ProdFileVM - Public ReadOnly Property ProdFileVM As ProdFileVM - Get - Return m_ProdFileVM - End Get - End Property - - Private m_ProjFileList As New List(Of ProjectFileVM) - Public ReadOnly Property ProjFileList As List(Of ProjectFileVM) - Get - Return m_ProjFileList - End Get - End Property - - Public ReadOnly Property sProdId As String - Get - Return If(Not IsNothing(m_ProdFileVM), m_ProdFileVM.sProdId, "") - End Get - End Property - - Public Overridable Property sName As String - Get - Return If(Not IsNothing(m_ProdFileVM), m_ProdFileVM.sName, "") - End Get - Set(value As String) - If Not IsNothing(m_ProdFileVM) Then - m_ProdFileVM.sName = value - End If - End Set - End Property - - Public ReadOnly Property dtCreateDate As Date - Get - Return If(Not IsNothing(m_ProdFileVM), {m_ProdFileVM.dtCreateDate, m_ProjFileList.Min(Function(x) x.dtCreateDate)}.Min(), m_ProjFileList.Min(Function(x) x.dtCreateDate)) - End Get - End Property - Public ReadOnly Property sCreateDate As String - Get - Return dtCreateDate.ToString() - End Get - End Property - - Public ReadOnly Property sMachine As String - Get - If Not IsNothing(m_ProdFileVM) Then - Return m_ProdFileVM.sMachine - ElseIf Not IsNothing(m_ProjFileList(0)) Then - Return m_ProjFileList(0).sMachine - Else Return "" - End If - End Get - End Property - - Public ReadOnly Property bIsArchived As Boolean - Get - If Not IsNothing(m_ProdFileVM) Then - Return m_ProdFileVM.bIsArchived - ElseIf Not IsNothing(m_ProjFileList(0)) Then - Return m_ProjFileList(0).bIsArchived - Else - Return True - End If - End Get - End Property - - Public ReadOnly Property Archived_Visibility As Visibility - Get - Return If(bIsArchived, Visibility.Visible, Visibility.Collapsed) - End Get - End Property - - Sub New(ProdFileVM As ProdFileVM, ProjFileVM As ProjFileVM) - m_ProdFileVM = ProdFileVM - m_ProjFileList.Add(ProjFileVM) - End Sub - - Sub New(ProjFileVM As ProjFileVM) - m_ProjFileList = New List(Of ProjectFileVM)({ProjFileVM}) - End Sub - - Sub New(ProdFileVM As ProjectFileVM, ProjFileVMList As List(Of ProjectFileVM)) - m_ProdFileVM = ProdFileVM - m_ProjFileList = ProjFileVMList - End Sub - -End Class diff --git a/EgtBEAMWALL.Core/ProjectFileVM/ProdItem.vb b/EgtBEAMWALL.Core/ProjectFileVM/ProdItem.vb new file mode 100644 index 00000000..c00abb2b --- /dev/null +++ b/EgtBEAMWALL.Core/ProjectFileVM/ProdItem.vb @@ -0,0 +1,109 @@ + +Imports EgtWPFLib5 +Imports System.Windows + +Public Class ProdItem + Inherits VMBase + + Public Shared m_delIsModifiedSetUp As Action(Of Boolean) + + Protected m_ProdFileVM As ProdFileVM + Public ReadOnly Property ProdFileVM As ProdFileVM + Get + Return m_ProdFileVM + End Get + End Property + + Private m_ProjFileList As New List(Of ProjectFileVM) + Public ReadOnly Property ProjFileList As List(Of ProjectFileVM) + Get + Return m_ProjFileList + End Get + End Property + + Public ReadOnly Property sProdId As String + Get + Return If(Not IsNothing(m_ProdFileVM), m_ProdFileVM.sProdId, "") + End Get + End Property + + Public Overridable Property sName As String + Get + Return If(Not IsNothing(m_ProdFileVM), m_ProdFileVM.sName, "") + End Get + Set(value As String) + If Not IsNothing(m_ProdFileVM) Then + m_ProdFileVM.sName = value + End If + End Set + End Property + + Public ReadOnly Property dtCreateDate As Date + Get + Return If(Not IsNothing(m_ProdFileVM), {m_ProdFileVM.dtCreateDate, m_ProjFileList.Min(Function(x) x.dtCreateDate)}.Min(), m_ProjFileList.Min(Function(x) x.dtCreateDate)) + End Get + End Property + Public ReadOnly Property sCreateDate As String + Get + Return dtCreateDate.ToString() + End Get + End Property + + Public ReadOnly Property sMachine As String + Get + If Not IsNothing(m_ProdFileVM) Then + Return m_ProdFileVM.sMachine + ElseIf Not IsNothing(m_ProjFileList(0)) Then + Return m_ProjFileList(0).sMachine + Else Return "" + End If + End Get + End Property + + Public ReadOnly Property bIsArchived As Boolean + Get + If Not IsNothing(m_ProdFileVM) Then + Return m_ProdFileVM.bIsArchived + ElseIf Not IsNothing(m_ProjFileList(0)) Then + Return m_ProjFileList(0).bIsArchived + Else + Return True + End If + End Get + End Property + + Public ReadOnly Property Archived_Visibility As Visibility + Get + Return If(bIsArchived, Visibility.Visible, Visibility.Collapsed) + End Get + End Property + + Sub New(ProdFileVM As ProdFileVM, ProjFileVM As ProjFileVM) + m_ProdFileVM = ProdFileVM + m_ProjFileList.Add(ProjFileVM) + End Sub + + Sub New(ProjFileVM As ProjFileVM) + m_ProjFileList = New List(Of ProjectFileVM)({ProjFileVM}) + End Sub + + Sub New(ProdFileVM As ProjectFileVM, ProjFileVMList As List(Of ProjectFileVM)) + m_ProdFileVM = ProdFileVM + m_ProjFileList = ProjFileVMList + End Sub + + + Public Shared Function CreateProdItem(nProdId As Integer, nProjIdList As List(Of Integer), dtCreateProjDate As DateTime, sName As String, nType As BWType, + sMachine As String, sLockedBy As String, dtLock As DateTime, bIsActive As Boolean, bIsProduced As Boolean, bIsArchived As Boolean, ProjMList As List(Of ProjFileM)) As ProdItem + + + Dim NewProdFileM = ProdFileM.CreateProdFileM(nProdId, nProjIdList, dtCreateProjDate, sName, nType, sMachine, sLockedBy, dtLock, bIsActive, bIsProduced, bIsArchived) + Dim NewProdFileVM = New ProdFileVM(NewProdFileM) + Dim NewProjFileVM As IEnumerable(Of ProjectFileVM) + NewProjFileVM = ProjMList.Select(Of ProjFileVM)(Function(j) New ProjFileVM(j)).ToList + Dim NewProdItem = New ProdItem(NewProdFileVM, NewProjFileVM.ToList) + + Return NewProdItem + End Function + +End Class \ No newline at end of file diff --git a/EgtBEAMWALL.DataLayer/Controllers/ProdController.cs b/EgtBEAMWALL.DataLayer/Controllers/ProdController.cs index ce33d92a..ac1537bf 100644 --- a/EgtBEAMWALL.DataLayer/Controllers/ProdController.cs +++ b/EgtBEAMWALL.DataLayer/Controllers/ProdController.cs @@ -293,9 +293,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers /// Solo con ALMENO 1 PROJ attivo (senza cancellazione logica) /// Se true: mostra anche archiviati (default li nasconde) /// - public List GetLastDescFull(int numRecord, bool OnlyActive, bool ShowArchived = false) + public List GetLastDescFull(int numRecord, bool OnlyActive, bool ShowArchived = false) { - List result = new List(); + List result = new List(); //List dbResult = GetLastDbModelDesc(numRecord); List dbResult = new List(); using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING)) @@ -323,7 +323,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers } // conversione - result = dbResult.Select(x => coreConv(x)).ToList(); + result = dbResult.Select(x => coreItemConv(x)).ToList(); //result = dbResult.Select(x => Core.ProdFileM.CreateProdFileM(x.ProdId, ProjIdByProd(x.ProdId), x.DtCreated, x.Description, x.PType, x.Machine, x.LockedBy, x.LockDate, x.IsActive, x.IsProduced, x.IsArchived, x.ProjListNav.Select(j => Core.ProjFileM.CreateProjFileM(j.ProjId, x.ProdId, j.DtCreated, j.DtExported, j.ListName, j.BTLFileName, j.ProjDescription, j.IsNew, j.Locked, j.PType, j.Machine, j.IsActive, j.IsActive)).ToList())).ToList(); return result; } @@ -336,9 +336,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers /// Solo con ALMENO 1 PROJ attivo (senza cancellazione logica) /// Se true: mostra anche archiviati (default li nasconde) /// - public List GetLastDescFull(DateTime dtStart, DateTime dtEnd, int numRecord, bool OnlyActive, bool ShowArchived = false) + public List GetLastDescFull(DateTime dtStart, DateTime dtEnd, int numRecord, bool OnlyActive, bool ShowArchived = false) { - List result = new List(); + List result = new List(); //List dbResult = GetLastDbModelDesc(numRecord); List dbResult = new List(); using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING)) @@ -365,7 +365,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers } // conversione - result = dbResult.Select(x => coreConv(x)).ToList(); + result = dbResult.Select(x => coreItemConv(x)).ToList(); //result = dbResult.Select(x => Core.ProdFileM.CreateProdFileM(x.ProdId, ProjIdByProd(x.ProdId), x.DtCreated, x.Description, x.PType, x.Machine, x.LockedBy, x.LockDate, x.IsActive, x.IsProduced, x.IsArchived, x.ProjListNav.Select(j => Core.ProjFileM.CreateProjFileM(j.ProjId, x.ProdId, j.DtCreated, j.DtExported, j.ListName, j.BTLFileName, j.ProjDescription, j.IsNew, j.Locked, j.PType, j.Machine, j.IsActive, j.IsActive)).ToList())).ToList(); return result; } @@ -994,8 +994,19 @@ namespace EgtBEAMWALL.DataLayer.Controllers /// protected Core.ProdFileM coreConv(ProdModel currProd) { - //Core.ProdFileM answ = Core.ProdFileM.CreateProdFileM(currProd.ProdId, ProjIdByProd(currProd.ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine, currProd.LockedBy, currProd.LockDate, currProd.IsActive, currProd.IsProduced, currProd.IsArchived); - Core.ProdFileM answ = Core.ProdFileM.CreateProdFileM(currProd.ProdId, ProjIdByProd(currProd.ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine, currProd.LockedBy, currProd.LockDate, currProd.IsActive, currProd.IsProduced, currProd.IsArchived, currProd.ProjListNav.Select(j => Core.ProjFileM.CreateProjFileM(j.ProjId, currProd.ProdId, j.DtCreated, j.DtExported, j.ListName, j.BTLFileName, j.ProjDescription, j.IsNew, j.Locked, j.PType, j.Machine, j.IsActive, j.IsActive)).ToList()); + Core.ProdFileM answ = Core.ProdFileM.CreateProdFileM(currProd.ProdId, ProjIdByProd(currProd.ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine, currProd.LockedBy, currProd.LockDate, currProd.IsActive, currProd.IsProduced, currProd.IsArchived); + //Core.ProdFileM answ = Core.ProdFileM.CreateProdFileM(currProd.ProdId, ProjIdByProd(currProd.ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine, currProd.LockedBy, currProd.LockDate, currProd.IsActive, currProd.IsProduced, currProd.IsArchived, currProd.ProjListNav.Select(j => Core.ProjFileM.CreateProjFileM(j.ProjId, currProd.ProdId, j.DtCreated, j.DtExported, j.ListName, j.BTLFileName, j.ProjDescription, j.IsNew, j.Locked, j.PType, j.Machine, j.IsActive, j.IsActive)).ToList()); + return answ; + } + + /// + /// Helper conversione modelli verso prodItem + /// + /// + /// + protected Core.ProdItem coreItemConv(ProdModel currProd) + { + Core.ProdItem answ = Core.ProdItem.CreateProdItem(currProd.ProdId, ProjIdByProd(currProd.ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine, currProd.LockedBy, currProd.LockDate, currProd.IsActive, currProd.IsProduced, currProd.IsArchived, currProd.ProjListNav.Select(j => Core.ProjFileM.CreateProjFileM(j.ProjId, currProd.ProdId, j.DtCreated, j.DtExported, j.ListName, j.BTLFileName, j.ProjDescription, j.IsNew, j.Locked, j.PType, j.Machine, j.IsActive, j.IsActive)).ToList()); return answ; } From efea14db897519846166322c0f23ea6f5a471aaa Mon Sep 17 00:00:00 2001 From: Emmanuele Sassi Date: Fri, 29 Sep 2023 17:33:29 +0200 Subject: [PATCH 06/15] - aggiunto metodo per creare ProItem con solo ProjFileM --- EgtBEAMWALL.Core/ProjectFileVM/ProdItem.vb | 23 ++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/EgtBEAMWALL.Core/ProjectFileVM/ProdItem.vb b/EgtBEAMWALL.Core/ProjectFileVM/ProdItem.vb index c00abb2b..5bb31bb0 100644 --- a/EgtBEAMWALL.Core/ProjectFileVM/ProdItem.vb +++ b/EgtBEAMWALL.Core/ProjectFileVM/ProdItem.vb @@ -93,17 +93,24 @@ Public Class ProdItem End Sub - Public Shared Function CreateProdItem(nProdId As Integer, nProjIdList As List(Of Integer), dtCreateProjDate As DateTime, sName As String, nType As BWType, + Public Shared Function CreateProdItem(nProdId As Integer, nProjIdList As List(Of Integer), dtCreateProjDate As DateTime, sName As String, nType As BWType, sMachine As String, sLockedBy As String, dtLock As DateTime, bIsActive As Boolean, bIsProduced As Boolean, bIsArchived As Boolean, ProjMList As List(Of ProjFileM)) As ProdItem - Dim NewProdFileM = ProdFileM.CreateProdFileM(nProdId, nProjIdList, dtCreateProjDate, sName, nType, sMachine, sLockedBy, dtLock, bIsActive, bIsProduced, bIsArchived) - Dim NewProdFileVM = New ProdFileVM(NewProdFileM) - Dim NewProjFileVM As IEnumerable(Of ProjectFileVM) - NewProjFileVM = ProjMList.Select(Of ProjFileVM)(Function(j) New ProjFileVM(j)).ToList - Dim NewProdItem = New ProdItem(NewProdFileVM, NewProjFileVM.ToList) + Dim NewProdFileM = ProdFileM.CreateProdFileM(nProdId, nProjIdList, dtCreateProjDate, sName, nType, sMachine, sLockedBy, dtLock, bIsActive, bIsProduced, bIsArchived) + Dim NewProdFileVM = New ProdFileVM(NewProdFileM) + Dim NewProjFileVM As IEnumerable(Of ProjectFileVM) + NewProjFileVM = ProjMList.Select(Of ProjFileVM)(Function(j) New ProjFileVM(j)).ToList + Dim NewProdItem = New ProdItem(NewProdFileVM, NewProjFileVM.ToList) - Return NewProdItem - End Function + Return NewProdItem + End Function + + Public Shared Function CreateProdItem(ProjFileM As ProjFileM) As ProdItem + + Dim NewProdItem = New ProdItem(New ProjFileVM(ProjFileM)) + + Return NewProdItem + End Function End Class \ No newline at end of file From ec2ce96b3bfda1ccc97918f05981564a41ad9def Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Fri, 29 Sep 2023 17:48:11 +0200 Subject: [PATCH 07/15] Aggiunta in coda dei proj "orfani" --- .../Controllers/ProdController.cs | 55 +++++++++++++++---- 1 file changed, 45 insertions(+), 10 deletions(-) diff --git a/EgtBEAMWALL.DataLayer/Controllers/ProdController.cs b/EgtBEAMWALL.DataLayer/Controllers/ProdController.cs index ac1537bf..796127d1 100644 --- a/EgtBEAMWALL.DataLayer/Controllers/ProdController.cs +++ b/EgtBEAMWALL.DataLayer/Controllers/ProdController.cs @@ -296,8 +296,10 @@ namespace EgtBEAMWALL.DataLayer.Controllers public List GetLastDescFull(int numRecord, bool OnlyActive, bool ShowArchived = false) { List result = new List(); - //List dbResult = GetLastDbModelDesc(numRecord); - List dbResult = new List(); + // elenco prod completi + List dbResultProd = new List(); + // elenco proj "orfani" + List dbResultProj = new List(); using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING)) { // se numRecord = 0 --> passo tutti @@ -305,8 +307,8 @@ namespace EgtBEAMWALL.DataLayer.Controllers { numRecord = localDbCtx.ProdList.Count(); } - // retrieve - dbResult = localDbCtx + // recupero PROD + proj relativi + dbResultProd = localDbCtx .ProdList .Where(x => (!x.IsArchived || ShowArchived)) //.Include(j => j.) @@ -320,11 +322,21 @@ namespace EgtBEAMWALL.DataLayer.Controllers .OrderByDescending(x => x.ProdId) .Take(numRecord) .ToList(); + + // recupero i proj "orfani" + dbResultProj = localDbCtx + .ProjList + .Where(x => (x.IsActive || !OnlyActive) && x.Prod == null) + .OrderByDescending(x => x.ProjId) + .Take(numRecord) + .ToList(); } // conversione - result = dbResult.Select(x => coreItemConv(x)).ToList(); - //result = dbResult.Select(x => Core.ProdFileM.CreateProdFileM(x.ProdId, ProjIdByProd(x.ProdId), x.DtCreated, x.Description, x.PType, x.Machine, x.LockedBy, x.LockDate, x.IsActive, x.IsProduced, x.IsArchived, x.ProjListNav.Select(j => Core.ProjFileM.CreateProjFileM(j.ProjId, x.ProdId, j.DtCreated, j.DtExported, j.ListName, j.BTLFileName, j.ProjDescription, j.IsNew, j.Locked, j.PType, j.Machine, j.IsActive, j.IsActive)).ToList())).ToList(); + result = dbResultProd.Select(x => coreItemConv(x)).ToList(); + var resProj = dbResultProj.Select(x => coreItemConv(x)).ToList(); + // sommo i risultati + result.AddRange(resProj); return result; } /// @@ -340,7 +352,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers { List result = new List(); //List dbResult = GetLastDbModelDesc(numRecord); - List dbResult = new List(); + List dbResultProd = new List(); + // elenco proj "orfani" + List dbResultProj = new List(); using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING)) { // se numRecord = 0 --> passo tutti @@ -349,7 +363,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers numRecord = localDbCtx.ProdList.Count(); } // retrieve - dbResult = localDbCtx + dbResultProd = localDbCtx .ProdList .Where(x => x.DtCreated >= dtStart && x.DtCreated <= dtEnd && (!x.IsArchived || ShowArchived)) // condizione join sui PROJ @@ -362,11 +376,21 @@ namespace EgtBEAMWALL.DataLayer.Controllers .OrderByDescending(x => x.ProdId) .Take(numRecord) .ToList(); + + // recupero i proj "orfani" + dbResultProj = localDbCtx + .ProjList + .Where(x => (x.IsActive || !OnlyActive) && x.Prod == null && (x.DtCreated >= dtStart && x.DtCreated <= dtEnd)) + .OrderByDescending(x => x.ProjId) + .Take(numRecord) + .ToList(); } // conversione - result = dbResult.Select(x => coreItemConv(x)).ToList(); - //result = dbResult.Select(x => Core.ProdFileM.CreateProdFileM(x.ProdId, ProjIdByProd(x.ProdId), x.DtCreated, x.Description, x.PType, x.Machine, x.LockedBy, x.LockDate, x.IsActive, x.IsProduced, x.IsArchived, x.ProjListNav.Select(j => Core.ProjFileM.CreateProjFileM(j.ProjId, x.ProdId, j.DtCreated, j.DtExported, j.ListName, j.BTLFileName, j.ProjDescription, j.IsNew, j.Locked, j.PType, j.Machine, j.IsActive, j.IsActive)).ToList())).ToList(); + result = dbResultProd.Select(x => coreItemConv(x)).ToList(); + var resProj = dbResultProj.Select(x => coreItemConv(x)).ToList(); + // sommo i risultati + result.AddRange(resProj); return result; } @@ -1010,6 +1034,17 @@ namespace EgtBEAMWALL.DataLayer.Controllers return answ; } + /// + /// Helper conversione modelli verso prodItem da singolo proj + /// + /// + /// + protected Core.ProdItem coreItemConv(ProjModel currProj) + { + Core.ProdItem answ = Core.ProdItem.CreateProdItem(Core.ProjFileM.CreateProjFileM(currProj.ProjId, 0, currProj.DtCreated, currProj.DtExported, currProj.ListName, currProj.BTLFileName, currProj.ProjDescription, currProj.IsNew, currProj.Locked, currProj.PType, currProj.Machine, currProj.IsActive, currProj.IsActive)); + return answ; + } + protected List ProjIdByProd(int ProdId) { var ProjCtr = new ProjController(); From a83752e565a7d4609ffbf8ca42eec2aad009c136 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Sat, 30 Sep 2023 10:36:50 +0200 Subject: [PATCH 08/15] Aggiunta ulteriore metodo con filtro completo x - BtlName - ListName - Machine - tipo data --- .../Controllers/ProdController.cs | 129 ++++++++++++++---- 1 file changed, 99 insertions(+), 30 deletions(-) diff --git a/EgtBEAMWALL.DataLayer/Controllers/ProdController.cs b/EgtBEAMWALL.DataLayer/Controllers/ProdController.cs index 796127d1..f7861d52 100644 --- a/EgtBEAMWALL.DataLayer/Controllers/ProdController.cs +++ b/EgtBEAMWALL.DataLayer/Controllers/ProdController.cs @@ -209,11 +209,11 @@ namespace EgtBEAMWALL.DataLayer.Controllers /// /// Elenco prod /// - /// Num max record da recuperare + /// Num max record da recuperare /// Solo con ALMENO 1 PROJ attivo (senza cancellazione logica) /// Se true: mostra anche archiviati (default li nasconde) /// - public List GetLastDesc(int numRecord, bool OnlyActive, bool ShowArchived = false) + public List GetLastDesc(int NumRecord, bool OnlyActive, bool ShowArchived = false) { List result = new List(); //List dbResult = GetLastDbModelDesc(numRecord); @@ -221,9 +221,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING)) { // se numRecord = 0 --> passo tutti - if (numRecord == 0) + if (NumRecord == 0) { - numRecord = localDbCtx.ProdList.Count(); + NumRecord = localDbCtx.ProdList.Count(); } // retrieve dbResult = localDbCtx @@ -236,7 +236,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers (p, e) => p) .Distinct() .OrderByDescending(x => x.ProdId) - .Take(numRecord) + .Take(NumRecord) .ToList(); } @@ -248,13 +248,13 @@ namespace EgtBEAMWALL.DataLayer.Controllers /// /// Elenco prod /// - /// Inizio periodo estrazione - /// Fine periodo estrazione - /// Num max record da recuperare + /// Inizio periodo estrazione + /// Fine periodo estrazione + /// Num max record da recuperare /// Solo con ALMENO 1 PROJ attivo (senza cancellazione logica) /// Se true: mostra anche archiviati (default li nasconde) /// - public List GetLastDesc(DateTime dtStart, DateTime dtEnd, int numRecord, bool OnlyActive, bool ShowArchived = false) + public List GetLastDesc(DateTime DtStart, DateTime DtEnd, int NumRecord, bool OnlyActive, bool ShowArchived = false) { List result = new List(); //List dbResult = GetLastDbModelDesc(numRecord); @@ -262,14 +262,14 @@ namespace EgtBEAMWALL.DataLayer.Controllers using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING)) { // se numRecord = 0 --> passo tutti - if (numRecord == 0) + if (NumRecord == 0) { - numRecord = localDbCtx.ProdList.Count(); + NumRecord = localDbCtx.ProdList.Count(); } // retrieve dbResult = localDbCtx .ProdList - .Where(x => x.DtCreated >= dtStart && x.DtCreated <= dtEnd && (!x.IsArchived || ShowArchived)) + .Where(x => x.DtCreated >= DtStart && x.DtCreated <= DtEnd && (!x.IsArchived || ShowArchived)) // condizione join sui PROJ .Join(localDbCtx.ProjList.Where(x => x.IsActive || !OnlyActive), p => p.ProdDbId, @@ -277,7 +277,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers (p, e) => p) .Distinct() .OrderByDescending(x => x.ProdId) - .Take(numRecord) + .Take(NumRecord) .ToList(); } @@ -289,11 +289,11 @@ namespace EgtBEAMWALL.DataLayer.Controllers /// /// Elenco prod /// - /// Num max record da recuperare + /// Num max record da recuperare /// Solo con ALMENO 1 PROJ attivo (senza cancellazione logica) /// Se true: mostra anche archiviati (default li nasconde) /// - public List GetLastDescFull(int numRecord, bool OnlyActive, bool ShowArchived = false) + public List GetLastDescFull(int NumRecord, bool OnlyActive, bool ShowArchived = false) { List result = new List(); // elenco prod completi @@ -303,9 +303,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING)) { // se numRecord = 0 --> passo tutti - if (numRecord == 0) + if (NumRecord == 0) { - numRecord = localDbCtx.ProdList.Count(); + NumRecord = localDbCtx.ProdList.Count(); } // recupero PROD + proj relativi dbResultProd = localDbCtx @@ -320,7 +320,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers .Distinct() .Include(j => j.ProjListNav) .OrderByDescending(x => x.ProdId) - .Take(numRecord) + .Take(NumRecord) .ToList(); // recupero i proj "orfani" @@ -328,7 +328,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers .ProjList .Where(x => (x.IsActive || !OnlyActive) && x.Prod == null) .OrderByDescending(x => x.ProjId) - .Take(numRecord) + .Take(NumRecord) .ToList(); } @@ -339,33 +339,34 @@ namespace EgtBEAMWALL.DataLayer.Controllers result.AddRange(resProj); return result; } + /// /// Elenco prod /// - /// Inizio periodo estrazione - /// Fine periodo estrazione - /// Num max record da recuperare + /// Inizio periodo estrazione + /// Fine periodo estrazione + /// Num max record da recuperare /// Solo con ALMENO 1 PROJ attivo (senza cancellazione logica) /// Se true: mostra anche archiviati (default li nasconde) /// - public List GetLastDescFull(DateTime dtStart, DateTime dtEnd, int numRecord, bool OnlyActive, bool ShowArchived = false) + public List GetLastDescFull(DateTime DtStart, DateTime DtEnd, int NumRecord, bool OnlyActive, bool ShowArchived = false) { List result = new List(); - //List dbResult = GetLastDbModelDesc(numRecord); + // elenco prod completi List dbResultProd = new List(); // elenco proj "orfani" List dbResultProj = new List(); using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING)) { // se numRecord = 0 --> passo tutti - if (numRecord == 0) + if (NumRecord == 0) { - numRecord = localDbCtx.ProdList.Count(); + NumRecord = localDbCtx.ProdList.Count(); } // retrieve dbResultProd = localDbCtx .ProdList - .Where(x => x.DtCreated >= dtStart && x.DtCreated <= dtEnd && (!x.IsArchived || ShowArchived)) + .Where(x => x.DtCreated >= DtStart && x.DtCreated <= DtEnd && (!x.IsArchived || ShowArchived)) // condizione join sui PROJ .Join(localDbCtx.ProjList.Where(x => x.IsActive || !OnlyActive), p => p.ProdDbId, @@ -374,18 +375,86 @@ namespace EgtBEAMWALL.DataLayer.Controllers .Distinct() .Include(j => j.ProjListNav) .OrderByDescending(x => x.ProdId) - .Take(numRecord) + .Take(NumRecord) .ToList(); // recupero i proj "orfani" dbResultProj = localDbCtx .ProjList - .Where(x => (x.IsActive || !OnlyActive) && x.Prod == null && (x.DtCreated >= dtStart && x.DtCreated <= dtEnd)) + .Where(x => (x.IsActive || !OnlyActive) && x.Prod == null && (x.DtCreated >= DtStart && x.DtCreated <= DtEnd)) .OrderByDescending(x => x.ProjId) - .Take(numRecord) + .Take(NumRecord) .ToList(); } + // conversione + result = dbResultProd.Select(x => coreItemConv(x)).ToList(); + var resProj = dbResultProj.Select(x => coreItemConv(x)).ToList(); + // sommo i risultati + result.AddRange(resProj); + return result; + } + /// + /// Elenco prod + /// + /// Inizio periodo estrazione + /// Fine periodo estrazione + /// Ture: usa data creazione / False: usa data export + /// Num max record da recuperare + /// Solo con ALMENO 1 PROJ attivo (senza cancellazione logica) + /// Nome Macchina (default vuoto = non usato) + /// Nome file BTL (default vuoto = non usato) + /// Nome List (default vuoto = non usato) + /// Se true: mostra anche archiviati (default li nasconde) + /// + public List GetLastDescFull(DateTime DtStart, DateTime DtEnd, bool DtIsCreation, int NumRecord, bool OnlyActive, string Machine = "", string BtlFileName = "", string ListName = "", bool ShowArchived = false) + { + List result = new List(); + List dbResultProd = new List(); + // elenco proj "orfani" + List dbResultProj = new List(); + using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING)) + { + // se numRecord = 0 --> passo tutti + if (NumRecord == 0) + { + NumRecord = localDbCtx.ProdList.Count(); + } + // retrieve + dbResultProd = localDbCtx + .ProdList + .Where(x => (!x.IsArchived || ShowArchived)) + // condizione join sui PROJ + .Join(localDbCtx.ProjList.Where(x => + (x.IsActive || !OnlyActive) + && (string.IsNullOrEmpty(Machine) || x.Machine == Machine) + && (string.IsNullOrEmpty(BtlFileName) || x.BTLFileName == BtlFileName) + && (string.IsNullOrEmpty(ListName) || x.ListName == ListName) + && ((DtIsCreation && (x.DtCreated >= DtStart && x.DtCreated <= DtEnd)) || (!DtIsCreation && (x.DtExported >= DtStart && x.DtExported <= DtEnd))) + ), + p => p.ProdDbId, + e => e.ProdDbId, + (p, e) => p) + .Distinct() + .Include(j => j.ProjListNav) + .OrderByDescending(x => x.ProdId) + .Take(NumRecord) + .ToList(); + + // recupero i proj "orfani" + dbResultProj = localDbCtx + .ProjList + .Where(x => + (x.IsActive || !OnlyActive) + && x.Prod == null + && (string.IsNullOrEmpty(Machine) || x.Machine == Machine) + && (string.IsNullOrEmpty(BtlFileName) || x.BTLFileName == BtlFileName) + && (string.IsNullOrEmpty(ListName) || x.ListName == ListName) + && ((DtIsCreation && (x.DtCreated >= DtStart && x.DtCreated <= DtEnd)) || (!DtIsCreation && (x.DtExported >= DtStart && x.DtExported <= DtEnd)))) + .OrderByDescending(x => x.ProjId) + .Take(NumRecord) + .ToList(); + } // conversione result = dbResultProd.Select(x => coreItemConv(x)).ToList(); var resProj = dbResultProj.Select(x => coreItemConv(x)).ToList(); From c32715a4b5187b78714dbc9a7be2bf9bbbec4274 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Mon, 2 Oct 2023 09:43:46 +0200 Subject: [PATCH 09/15] fix ricerca contains --- EgtBEAMWALL.DataLayer/Controllers/ProdController.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/EgtBEAMWALL.DataLayer/Controllers/ProdController.cs b/EgtBEAMWALL.DataLayer/Controllers/ProdController.cs index f7861d52..4d64c555 100644 --- a/EgtBEAMWALL.DataLayer/Controllers/ProdController.cs +++ b/EgtBEAMWALL.DataLayer/Controllers/ProdController.cs @@ -427,9 +427,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers // condizione join sui PROJ .Join(localDbCtx.ProjList.Where(x => (x.IsActive || !OnlyActive) - && (string.IsNullOrEmpty(Machine) || x.Machine == Machine) - && (string.IsNullOrEmpty(BtlFileName) || x.BTLFileName == BtlFileName) - && (string.IsNullOrEmpty(ListName) || x.ListName == ListName) + && (string.IsNullOrEmpty(Machine) || x.Machine.ToLower().Contains(Machine.ToLower())) + && (string.IsNullOrEmpty(BtlFileName) || x.BTLFileName.ToLower().Contains( BtlFileName.ToLower())) + && (string.IsNullOrEmpty(ListName) || x.ListName.ToLower().Contains(ListName.ToLower())) && ((DtIsCreation && (x.DtCreated >= DtStart && x.DtCreated <= DtEnd)) || (!DtIsCreation && (x.DtExported >= DtStart && x.DtExported <= DtEnd))) ), p => p.ProdDbId, @@ -447,9 +447,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers .Where(x => (x.IsActive || !OnlyActive) && x.Prod == null - && (string.IsNullOrEmpty(Machine) || x.Machine == Machine) - && (string.IsNullOrEmpty(BtlFileName) || x.BTLFileName == BtlFileName) - && (string.IsNullOrEmpty(ListName) || x.ListName == ListName) + && (string.IsNullOrEmpty(Machine) || x.Machine.ToLower().Contains(Machine.ToLower())) + && (string.IsNullOrEmpty(BtlFileName) || x.BTLFileName.ToLower().Contains(BtlFileName.ToLower())) + && (string.IsNullOrEmpty(ListName) || x.ListName.ToLower().Contains(ListName.ToLower())) && ((DtIsCreation && (x.DtCreated >= DtStart && x.DtCreated <= DtEnd)) || (!DtIsCreation && (x.DtExported >= DtStart && x.DtExported <= DtEnd)))) .OrderByDescending(x => x.ProjId) .Take(NumRecord) From 07b7ad6ee3c5da6a937f965cab6028fc7d160c78 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Thu, 18 Jan 2024 12:45:35 +0100 Subject: [PATCH 10/15] Aggiunta datamodel x Materiali e grezzi (barre, pareti) --- .../DatabaseModels/MaterialModel.cs | 93 ++++++++++++++++ .../DatabaseModels/ProdModel.cs | 2 - .../DatabaseModels/RawItemModel.cs | 104 ++++++++++++++++++ .../EgtBEAMWALL.DataLayer.csproj | 2 + 4 files changed, 199 insertions(+), 2 deletions(-) create mode 100644 EgtBEAMWALL.DataLayer/DatabaseModels/MaterialModel.cs create mode 100644 EgtBEAMWALL.DataLayer/DatabaseModels/RawItemModel.cs diff --git a/EgtBEAMWALL.DataLayer/DatabaseModels/MaterialModel.cs b/EgtBEAMWALL.DataLayer/DatabaseModels/MaterialModel.cs new file mode 100644 index 00000000..b6c8d01c --- /dev/null +++ b/EgtBEAMWALL.DataLayer/DatabaseModels/MaterialModel.cs @@ -0,0 +1,93 @@ +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; + +namespace EgtBEAMWALL.DataLayer.DatabaseModels +{ + // + // This is here so CodeMaid doesn't reorganize this document + // + [Table("Materials")] + public partial class MaterialModel + { + /// + /// Primary Key AUTO + /// + [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public int MatId { get; set; } + + /// + /// Codice materiale (Identificativo esterno del magazzino in sync) + /// + public int MatExtId { get; set; } = 0; + + /// + /// Codice Materiale + /// + public string MatCode { get; set; } = ""; + + /// + /// Descrizione Materiale + /// + public string MatDesc { get; set; } = ""; + + /// + /// Lenght/Lunghezza in mm + /// + public decimal LMm { get; set; } = 0; + /// + /// Width/Larghezza in mm + /// + public decimal WMm { get; set; } = 0; + /// + /// Height (Thikness/Spessore) in mm + /// + public decimal HMm { get; set; } = 0; + + /// + /// ItemId dell'ultimo artico,o usato per il materiale + /// + public int ItemIdLast { get; set; } = 0; +#if false + /// + /// Lenght/Lunghezza in inch + /// + [NotMapped] + public decimal LIn + { + get => Math.Round(LMm / (decimal)25.4, 3); + } + /// + /// Width/Larghezza in inch + /// + [NotMapped] + public decimal WIn + { + get => Math.Round(WMm / (decimal)25.4, 3); + } + /// + /// Height/Altezza (Thikness/Spessore) in inch + /// + [NotMapped] + public decimal HIn + { + get => Math.Round(HMm / (decimal)25.4, 3); + } + + /// + /// Codice materiale x QR/Datamatrix + /// + [NotMapped] + public string MatDtmx + { + get => $"MT{MatExtId:00000000}"; + } +#endif + + public virtual ICollection ItemList { get; set; } + } +} diff --git a/EgtBEAMWALL.DataLayer/DatabaseModels/ProdModel.cs b/EgtBEAMWALL.DataLayer/DatabaseModels/ProdModel.cs index 7999da61..9c661955 100644 --- a/EgtBEAMWALL.DataLayer/DatabaseModels/ProdModel.cs +++ b/EgtBEAMWALL.DataLayer/DatabaseModels/ProdModel.cs @@ -1,7 +1,5 @@ using System; using System.Collections.Generic; -using System.Linq; -using System.Text; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using static EgtBEAMWALL.Core.ConstBeam; diff --git a/EgtBEAMWALL.DataLayer/DatabaseModels/RawItemModel.cs b/EgtBEAMWALL.DataLayer/DatabaseModels/RawItemModel.cs new file mode 100644 index 00000000..57af985b --- /dev/null +++ b/EgtBEAMWALL.DataLayer/DatabaseModels/RawItemModel.cs @@ -0,0 +1,104 @@ +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; + +namespace EgtBEAMWALL.DataLayer.DatabaseModels +{ + // + // This is here so CodeMaid doesn't reorganize this document + // + //[Index(nameof(Installazione), nameof(Active), nameof(DiskStatus))] + [Table("RawItemModel")] + public partial class RawItemModel + { + /// + /// Primary Key AUTO + /// + [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public int ItemId { get; set; } + + /// + /// ForeignKey Materiale + /// + public int MatId { get; set; } = 0; + + /// + /// Qty available on wharehouse + /// + public int QtyAvail { get; set; } = 0; + + /// + /// Check if is a Remnant + /// + public bool IsActive { get; set; } = false; + + /// + /// Item's Lenght + /// + public decimal LMm { get; set; } = 0; + + /// + /// Item's Width + /// + public decimal WMm { get; set; } = 0; + + /// + /// Item's Height (Thikness/Spessore) in mm + /// + public decimal HMm { get; set; } = 0; + + /// + /// Note (optional) + /// + public string Note { get; set; } = ""; + +#if false + [NotMapped] + public decimal LIn + { + get => Math.Round(LMm / (decimal)25.4, 3); + } + [NotMapped] + public decimal WIn + { + get => Math.Round(WMm / (decimal)25.4, 3); + } + [NotMapped] + public decimal HIn + { + get => Math.Round(HMm / (decimal)25.4, 3); + } + + [NotMapped] + public decimal Area + { + get => LMm * WMm; + } + + [NotMapped] + public string ItemDtmx + { + get + { + string answ = $"MT99999999-{LMm * 1000:00000000}"; + if (MaterialNav != null) + { + answ = $"MT{MaterialNav.MatExtId:00000000}-{LMm * 1000:00000000}"; + } + return answ; + } + } +#endif + + /// + /// Navigation property to Material + /// + [ForeignKey("MatId")] + public virtual MaterialModel MaterialNav { get; set; } + + } +} diff --git a/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj b/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj index 87909530..6bd3ce35 100644 --- a/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj +++ b/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj @@ -126,6 +126,8 @@ + + From 70078533d26e007d0d155b8054cc0f153c24ebf4 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Thu, 18 Jan 2024 13:07:08 +0100 Subject: [PATCH 11/15] Modifiche modelli x creazione migrations --- EgtBEAMWALL.DataLayer/DatabaseContext.cs | 10 ++++++++++ .../DatabaseModels/MaterialModel.cs | 15 ++++++++++++--- .../DatabaseModels/RawItemModel.cs | 2 +- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/EgtBEAMWALL.DataLayer/DatabaseContext.cs b/EgtBEAMWALL.DataLayer/DatabaseContext.cs index 3122f8fe..a2c3d9fd 100644 --- a/EgtBEAMWALL.DataLayer/DatabaseContext.cs +++ b/EgtBEAMWALL.DataLayer/DatabaseContext.cs @@ -80,6 +80,16 @@ namespace EgtBEAMWALL.DataLayer /// public DbSet StatusMapList { get; set; } + + /// + /// Wharehouse materials management + /// + public DbSet MaterialsList { get; set; } + /// + /// Wharehouse items management + /// + public DbSet RawItemList { get; set; } + #endregion Public Properties #region Public Methods diff --git a/EgtBEAMWALL.DataLayer/DatabaseModels/MaterialModel.cs b/EgtBEAMWALL.DataLayer/DatabaseModels/MaterialModel.cs index b6c8d01c..489d9c9c 100644 --- a/EgtBEAMWALL.DataLayer/DatabaseModels/MaterialModel.cs +++ b/EgtBEAMWALL.DataLayer/DatabaseModels/MaterialModel.cs @@ -14,6 +14,14 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels [Table("Materials")] public partial class MaterialModel { + /// + /// Init classe + /// + public MaterialModel() + { + RawItemList = new HashSet(); + } + /// /// Primary Key AUTO /// @@ -49,9 +57,10 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels public decimal HMm { get; set; } = 0; /// - /// ItemId dell'ultimo artico,o usato per il materiale + /// ID dell'ultimo articolo (variante) usato per il materiale /// - public int ItemIdLast { get; set; } = 0; + public int RawItemIdLast { get; set; } = 0; + #if false /// /// Lenght/Lunghezza in inch @@ -88,6 +97,6 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels } #endif - public virtual ICollection ItemList { get; set; } + public virtual ICollection RawItemList { get; set; } } } diff --git a/EgtBEAMWALL.DataLayer/DatabaseModels/RawItemModel.cs b/EgtBEAMWALL.DataLayer/DatabaseModels/RawItemModel.cs index 57af985b..925d01ef 100644 --- a/EgtBEAMWALL.DataLayer/DatabaseModels/RawItemModel.cs +++ b/EgtBEAMWALL.DataLayer/DatabaseModels/RawItemModel.cs @@ -19,7 +19,7 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels /// Primary Key AUTO /// [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] - public int ItemId { get; set; } + public int RawItemId { get; set; } /// /// ForeignKey Materiale From 589686261477a9e885c97d0f0ee89672333683ec Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Thu, 18 Jan 2024 13:08:33 +0100 Subject: [PATCH 12/15] Aggiunta migrazione --- EgtBEAMWALL.DataLayer/App.config | 2 +- EgtBEAMWALL.DataLayer/DbConfig.cs | 2 +- .../EgtBEAMWALL.DataLayer.csproj | 7 + ...1206504_AddMaterialAndRawItems.Designer.cs | 29 ++++ .../202401181206504_AddMaterialAndRawItems.cs | 52 ++++++++ ...02401181206504_AddMaterialAndRawItems.resx | 126 ++++++++++++++++++ 6 files changed, 216 insertions(+), 2 deletions(-) create mode 100644 EgtBEAMWALL.DataLayer/Migrations/202401181206504_AddMaterialAndRawItems.Designer.cs create mode 100644 EgtBEAMWALL.DataLayer/Migrations/202401181206504_AddMaterialAndRawItems.cs create mode 100644 EgtBEAMWALL.DataLayer/Migrations/202401181206504_AddMaterialAndRawItems.resx diff --git a/EgtBEAMWALL.DataLayer/App.config b/EgtBEAMWALL.DataLayer/App.config index 450f9b92..afaa2e90 100644 --- a/EgtBEAMWALL.DataLayer/App.config +++ b/EgtBEAMWALL.DataLayer/App.config @@ -13,7 +13,7 @@ - + diff --git a/EgtBEAMWALL.DataLayer/DbConfig.cs b/EgtBEAMWALL.DataLayer/DbConfig.cs index 9e6806f7..3cf9e10f 100644 --- a/EgtBEAMWALL.DataLayer/DbConfig.cs +++ b/EgtBEAMWALL.DataLayer/DbConfig.cs @@ -33,7 +33,7 @@ namespace EgtBEAMWALL.DataLayer public static string ADMIN_CONNECTION_STRING { get; set; } = ""; /// - /// DB Connection string, per effettuare migration riportare valore connessione admin cablato (server=localhost;port=3306;database=EgtBwDb_000102;) + /// DB Connection string, per effettuare migration riportare valore connessione admin cablato (server=localhost;port=3306;database=EgtBwDb_000102;uid=root;pwd=Egalware_24068!;) /// public static string CONNECTION_STRING { get; set; } = ""; diff --git a/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj b/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj index 6bd3ce35..229de958 100644 --- a/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj +++ b/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj @@ -189,6 +189,10 @@ 202308250853396_AddProjArchivedField.cs + + + 202401181206504_AddMaterialAndRawItems.cs + @@ -237,6 +241,9 @@ 202308250853396_AddProjArchivedField.cs + + 202401181206504_AddMaterialAndRawItems.cs + diff --git a/EgtBEAMWALL.DataLayer/Migrations/202401181206504_AddMaterialAndRawItems.Designer.cs b/EgtBEAMWALL.DataLayer/Migrations/202401181206504_AddMaterialAndRawItems.Designer.cs new file mode 100644 index 00000000..ae88cc7a --- /dev/null +++ b/EgtBEAMWALL.DataLayer/Migrations/202401181206504_AddMaterialAndRawItems.Designer.cs @@ -0,0 +1,29 @@ +// +namespace EgtBEAMWALL.DataLayer.Migrations +{ + using System.CodeDom.Compiler; + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + using System.Resources; + + [GeneratedCode("EntityFramework.Migrations", "6.4.4")] + public sealed partial class AddMaterialAndRawItems : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(AddMaterialAndRawItems)); + + string IMigrationMetadata.Id + { + get { return "202401181206504_AddMaterialAndRawItems"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/EgtBEAMWALL.DataLayer/Migrations/202401181206504_AddMaterialAndRawItems.cs b/EgtBEAMWALL.DataLayer/Migrations/202401181206504_AddMaterialAndRawItems.cs new file mode 100644 index 00000000..a46d3c39 --- /dev/null +++ b/EgtBEAMWALL.DataLayer/Migrations/202401181206504_AddMaterialAndRawItems.cs @@ -0,0 +1,52 @@ +namespace EgtBEAMWALL.DataLayer.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class AddMaterialAndRawItems : DbMigration + { + public override void Up() + { + CreateTable( + "dbo.Materials", + c => new + { + MatId = c.Int(nullable: false, identity: true), + MatExtId = c.Int(nullable: false), + MatCode = c.String(unicode: false), + MatDesc = c.String(unicode: false), + LMm = c.Decimal(nullable: false, precision: 18, scale: 2), + WMm = c.Decimal(nullable: false, precision: 18, scale: 2), + HMm = c.Decimal(nullable: false, precision: 18, scale: 2), + RawItemIdLast = c.Int(nullable: false), + }) + .PrimaryKey(t => t.MatId); + + CreateTable( + "dbo.RawItemModel", + c => new + { + RawItemId = c.Int(nullable: false, identity: true), + MatId = c.Int(nullable: false), + QtyAvail = c.Int(nullable: false), + IsActive = c.Boolean(nullable: false), + LMm = c.Decimal(nullable: false, precision: 18, scale: 2), + WMm = c.Decimal(nullable: false, precision: 18, scale: 2), + HMm = c.Decimal(nullable: false, precision: 18, scale: 2), + Note = c.String(unicode: false), + }) + .PrimaryKey(t => t.RawItemId) + .ForeignKey("dbo.Materials", t => t.MatId, cascadeDelete: true) + .Index(t => t.MatId); + + } + + public override void Down() + { + DropForeignKey("dbo.RawItemModel", "MatId", "dbo.Materials"); + DropIndex("dbo.RawItemModel", new[] { "MatId" }); + DropTable("dbo.RawItemModel"); + DropTable("dbo.Materials"); + } + } +} diff --git a/EgtBEAMWALL.DataLayer/Migrations/202401181206504_AddMaterialAndRawItems.resx b/EgtBEAMWALL.DataLayer/Migrations/202401181206504_AddMaterialAndRawItems.resx new file mode 100644 index 00000000..185e349d --- /dev/null +++ b/EgtBEAMWALL.DataLayer/Migrations/202401181206504_AddMaterialAndRawItems.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + + dbo + + \ No newline at end of file From 24300e88057d1c0983ad9f84f3803d2e0d1c60fc Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Thu, 18 Jan 2024 15:31:30 +0100 Subject: [PATCH 13/15] Aggiunta migration x Alias --- EgtBEAMWALL.DataLayer/DatabaseContext.cs | 7 +- .../DatabaseModels/AliasModel.cs | 30 +++++ .../EgtBEAMWALL.DataLayer.csproj | 8 ++ .../202401181425519_AddAliasModel.Designer.cs | 29 ++++ .../202401181425519_AddAliasModel.cs | 27 ++++ .../202401181425519_AddAliasModel.resx | 126 ++++++++++++++++++ 6 files changed, 226 insertions(+), 1 deletion(-) create mode 100644 EgtBEAMWALL.DataLayer/DatabaseModels/AliasModel.cs create mode 100644 EgtBEAMWALL.DataLayer/Migrations/202401181425519_AddAliasModel.Designer.cs create mode 100644 EgtBEAMWALL.DataLayer/Migrations/202401181425519_AddAliasModel.cs create mode 100644 EgtBEAMWALL.DataLayer/Migrations/202401181425519_AddAliasModel.resx diff --git a/EgtBEAMWALL.DataLayer/DatabaseContext.cs b/EgtBEAMWALL.DataLayer/DatabaseContext.cs index a2c3d9fd..059d6a61 100644 --- a/EgtBEAMWALL.DataLayer/DatabaseContext.cs +++ b/EgtBEAMWALL.DataLayer/DatabaseContext.cs @@ -80,16 +80,21 @@ namespace EgtBEAMWALL.DataLayer /// public DbSet StatusMapList { get; set; } - /// /// Wharehouse materials management /// public DbSet MaterialsList { get; set; } + /// /// Wharehouse items management /// public DbSet RawItemList { get; set; } + /// + /// Alias management + /// + public DbSet AliasList { get; set; } + #endregion Public Properties #region Public Methods diff --git a/EgtBEAMWALL.DataLayer/DatabaseModels/AliasModel.cs b/EgtBEAMWALL.DataLayer/DatabaseModels/AliasModel.cs new file mode 100644 index 00000000..c5ae0987 --- /dev/null +++ b/EgtBEAMWALL.DataLayer/DatabaseModels/AliasModel.cs @@ -0,0 +1,30 @@ +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; + +namespace EgtBEAMWALL.DataLayer.DatabaseModels +{ + public class AliasModel + { + /// + /// Famiglia di sinonimi + /// + [Column("Family", Order = 1), Key] + public string Family { get; set; } = ""; + + /// + /// Codice originale (da trasformare) + /// + [Column("ValueOriginal", Order = 2), Key] + public string ValueOriginal { get; set; } = ""; + + /// + /// Codice Alias + /// + public string ValueAlias { get; set; } = ""; + } +} diff --git a/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj b/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj index 229de958..d63d2d18 100644 --- a/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj +++ b/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj @@ -126,6 +126,7 @@ + @@ -193,6 +194,10 @@ 202401181206504_AddMaterialAndRawItems.cs + + + 202401181425519_AddAliasModel.cs + @@ -244,6 +249,9 @@ 202401181206504_AddMaterialAndRawItems.cs + + 202401181425519_AddAliasModel.cs + diff --git a/EgtBEAMWALL.DataLayer/Migrations/202401181425519_AddAliasModel.Designer.cs b/EgtBEAMWALL.DataLayer/Migrations/202401181425519_AddAliasModel.Designer.cs new file mode 100644 index 00000000..9c4c5bc6 --- /dev/null +++ b/EgtBEAMWALL.DataLayer/Migrations/202401181425519_AddAliasModel.Designer.cs @@ -0,0 +1,29 @@ +// +namespace EgtBEAMWALL.DataLayer.Migrations +{ + using System.CodeDom.Compiler; + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + using System.Resources; + + [GeneratedCode("EntityFramework.Migrations", "6.4.4")] + public sealed partial class AddAliasModel : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(AddAliasModel)); + + string IMigrationMetadata.Id + { + get { return "202401181425519_AddAliasModel"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/EgtBEAMWALL.DataLayer/Migrations/202401181425519_AddAliasModel.cs b/EgtBEAMWALL.DataLayer/Migrations/202401181425519_AddAliasModel.cs new file mode 100644 index 00000000..f29bfee4 --- /dev/null +++ b/EgtBEAMWALL.DataLayer/Migrations/202401181425519_AddAliasModel.cs @@ -0,0 +1,27 @@ +namespace EgtBEAMWALL.DataLayer.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class AddAliasModel : DbMigration + { + public override void Up() + { + CreateTable( + "dbo.AliasModels", + c => new + { + Family = c.String(nullable: false, maxLength: 128, storeType: "nvarchar"), + ValueOriginal = c.String(nullable: false, maxLength: 128, storeType: "nvarchar"), + ValueAlias = c.String(unicode: false), + }) + .PrimaryKey(t => new { t.Family, t.ValueOriginal }); + + } + + public override void Down() + { + DropTable("dbo.AliasModels"); + } + } +} diff --git a/EgtBEAMWALL.DataLayer/Migrations/202401181425519_AddAliasModel.resx b/EgtBEAMWALL.DataLayer/Migrations/202401181425519_AddAliasModel.resx new file mode 100644 index 00000000..4cae3fad --- /dev/null +++ b/EgtBEAMWALL.DataLayer/Migrations/202401181425519_AddAliasModel.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + + dbo + + \ No newline at end of file From 819928805fa1d55a2bcb166d7fb5febe5895f817 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Thu, 18 Jan 2024 16:24:38 +0100 Subject: [PATCH 14/15] Fix model names --- EgtBEAMWALL.DataLayer/DatabaseModels/MaterialModel.cs | 2 +- EgtBEAMWALL.DataLayer/DatabaseModels/RawItemModel.cs | 2 +- EgtBEAMWALL.DataLayer/DbConfig.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/EgtBEAMWALL.DataLayer/DatabaseModels/MaterialModel.cs b/EgtBEAMWALL.DataLayer/DatabaseModels/MaterialModel.cs index 489d9c9c..17ef7eba 100644 --- a/EgtBEAMWALL.DataLayer/DatabaseModels/MaterialModel.cs +++ b/EgtBEAMWALL.DataLayer/DatabaseModels/MaterialModel.cs @@ -11,7 +11,7 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels // // This is here so CodeMaid doesn't reorganize this document // - [Table("Materials")] + [Table("MaterialsList")] public partial class MaterialModel { /// diff --git a/EgtBEAMWALL.DataLayer/DatabaseModels/RawItemModel.cs b/EgtBEAMWALL.DataLayer/DatabaseModels/RawItemModel.cs index 925d01ef..d6bf4e8a 100644 --- a/EgtBEAMWALL.DataLayer/DatabaseModels/RawItemModel.cs +++ b/EgtBEAMWALL.DataLayer/DatabaseModels/RawItemModel.cs @@ -12,7 +12,7 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels // This is here so CodeMaid doesn't reorganize this document // //[Index(nameof(Installazione), nameof(Active), nameof(DiskStatus))] - [Table("RawItemModel")] + [Table("RawItemList")] public partial class RawItemModel { /// diff --git a/EgtBEAMWALL.DataLayer/DbConfig.cs b/EgtBEAMWALL.DataLayer/DbConfig.cs index 3cf9e10f..8a756362 100644 --- a/EgtBEAMWALL.DataLayer/DbConfig.cs +++ b/EgtBEAMWALL.DataLayer/DbConfig.cs @@ -35,7 +35,7 @@ namespace EgtBEAMWALL.DataLayer /// /// DB Connection string, per effettuare migration riportare valore connessione admin cablato (server=localhost;port=3306;database=EgtBwDb_000102;uid=root;pwd=Egalware_24068!;) /// - public static string CONNECTION_STRING { get; set; } = ""; + public static string CONNECTION_STRING { get; set; } = "server=localhost;port=3306;database=EgtBwDb_000470;uid=root;pwd=Egalware_24068!"; #endregion Public Properties From 559206cd70d378f46d762ea0a4cede337b37f77d Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Thu, 18 Jan 2024 16:35:04 +0100 Subject: [PATCH 15/15] Fix migrazioni e naming --- .../DatabaseModels/AliasModel.cs | 4 + .../EgtBEAMWALL.DataLayer.csproj | 17 +-- ...02401181206504_AddMaterialAndRawItems.resx | 126 ------------------ .../202401181425519_AddAliasModel.Designer.cs | 29 ---- .../202401181425519_AddAliasModel.cs | 27 ---- .../202401181425519_AddAliasModel.resx | 126 ------------------ ...AddAliasMaterialRawItemsModel.Designer.cs} | 6 +- ...81534084_AddAliasMaterialRawItemsModel.cs} | 27 ++-- ...1534084_AddAliasMaterialRawItemsModel.resx | 126 ++++++++++++++++++ 9 files changed, 157 insertions(+), 331 deletions(-) delete mode 100644 EgtBEAMWALL.DataLayer/Migrations/202401181206504_AddMaterialAndRawItems.resx delete mode 100644 EgtBEAMWALL.DataLayer/Migrations/202401181425519_AddAliasModel.Designer.cs delete mode 100644 EgtBEAMWALL.DataLayer/Migrations/202401181425519_AddAliasModel.cs delete mode 100644 EgtBEAMWALL.DataLayer/Migrations/202401181425519_AddAliasModel.resx rename EgtBEAMWALL.DataLayer/Migrations/{202401181206504_AddMaterialAndRawItems.Designer.cs => 202401181534084_AddAliasMaterialRawItemsModel.Designer.cs} (76%) rename EgtBEAMWALL.DataLayer/Migrations/{202401181206504_AddMaterialAndRawItems.cs => 202401181534084_AddAliasMaterialRawItemsModel.cs} (63%) create mode 100644 EgtBEAMWALL.DataLayer/Migrations/202401181534084_AddAliasMaterialRawItemsModel.resx diff --git a/EgtBEAMWALL.DataLayer/DatabaseModels/AliasModel.cs b/EgtBEAMWALL.DataLayer/DatabaseModels/AliasModel.cs index c5ae0987..276164b3 100644 --- a/EgtBEAMWALL.DataLayer/DatabaseModels/AliasModel.cs +++ b/EgtBEAMWALL.DataLayer/DatabaseModels/AliasModel.cs @@ -8,6 +8,10 @@ using System.Threading.Tasks; namespace EgtBEAMWALL.DataLayer.DatabaseModels { + // + // This is here so CodeMaid doesn't reorganize this document + // + [Table("AliasList")] public class AliasModel { /// diff --git a/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj b/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj index d63d2d18..c7dd0428 100644 --- a/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj +++ b/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj @@ -190,13 +190,9 @@ 202308250853396_AddProjArchivedField.cs - - - 202401181206504_AddMaterialAndRawItems.cs - - - - 202401181425519_AddAliasModel.cs + + + 202401181534084_AddAliasMaterialRawItemsModel.cs @@ -246,11 +242,8 @@ 202308250853396_AddProjArchivedField.cs - - 202401181206504_AddMaterialAndRawItems.cs - - - 202401181425519_AddAliasModel.cs + + 202401181534084_AddAliasMaterialRawItemsModel.cs diff --git a/EgtBEAMWALL.DataLayer/Migrations/202401181206504_AddMaterialAndRawItems.resx b/EgtBEAMWALL.DataLayer/Migrations/202401181206504_AddMaterialAndRawItems.resx deleted file mode 100644 index 185e349d..00000000 --- a/EgtBEAMWALL.DataLayer/Migrations/202401181206504_AddMaterialAndRawItems.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 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 - - - dbo - - \ No newline at end of file diff --git a/EgtBEAMWALL.DataLayer/Migrations/202401181425519_AddAliasModel.Designer.cs b/EgtBEAMWALL.DataLayer/Migrations/202401181425519_AddAliasModel.Designer.cs deleted file mode 100644 index 9c4c5bc6..00000000 --- a/EgtBEAMWALL.DataLayer/Migrations/202401181425519_AddAliasModel.Designer.cs +++ /dev/null @@ -1,29 +0,0 @@ -// -namespace EgtBEAMWALL.DataLayer.Migrations -{ - using System.CodeDom.Compiler; - using System.Data.Entity.Migrations; - using System.Data.Entity.Migrations.Infrastructure; - using System.Resources; - - [GeneratedCode("EntityFramework.Migrations", "6.4.4")] - public sealed partial class AddAliasModel : IMigrationMetadata - { - private readonly ResourceManager Resources = new ResourceManager(typeof(AddAliasModel)); - - string IMigrationMetadata.Id - { - get { return "202401181425519_AddAliasModel"; } - } - - string IMigrationMetadata.Source - { - get { return null; } - } - - string IMigrationMetadata.Target - { - get { return Resources.GetString("Target"); } - } - } -} diff --git a/EgtBEAMWALL.DataLayer/Migrations/202401181425519_AddAliasModel.cs b/EgtBEAMWALL.DataLayer/Migrations/202401181425519_AddAliasModel.cs deleted file mode 100644 index f29bfee4..00000000 --- a/EgtBEAMWALL.DataLayer/Migrations/202401181425519_AddAliasModel.cs +++ /dev/null @@ -1,27 +0,0 @@ -namespace EgtBEAMWALL.DataLayer.Migrations -{ - using System; - using System.Data.Entity.Migrations; - - public partial class AddAliasModel : DbMigration - { - public override void Up() - { - CreateTable( - "dbo.AliasModels", - c => new - { - Family = c.String(nullable: false, maxLength: 128, storeType: "nvarchar"), - ValueOriginal = c.String(nullable: false, maxLength: 128, storeType: "nvarchar"), - ValueAlias = c.String(unicode: false), - }) - .PrimaryKey(t => new { t.Family, t.ValueOriginal }); - - } - - public override void Down() - { - DropTable("dbo.AliasModels"); - } - } -} diff --git a/EgtBEAMWALL.DataLayer/Migrations/202401181425519_AddAliasModel.resx b/EgtBEAMWALL.DataLayer/Migrations/202401181425519_AddAliasModel.resx deleted file mode 100644 index 4cae3fad..00000000 --- a/EgtBEAMWALL.DataLayer/Migrations/202401181425519_AddAliasModel.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 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 - - - dbo - - \ No newline at end of file diff --git a/EgtBEAMWALL.DataLayer/Migrations/202401181206504_AddMaterialAndRawItems.Designer.cs b/EgtBEAMWALL.DataLayer/Migrations/202401181534084_AddAliasMaterialRawItemsModel.Designer.cs similarity index 76% rename from EgtBEAMWALL.DataLayer/Migrations/202401181206504_AddMaterialAndRawItems.Designer.cs rename to EgtBEAMWALL.DataLayer/Migrations/202401181534084_AddAliasMaterialRawItemsModel.Designer.cs index ae88cc7a..253f1598 100644 --- a/EgtBEAMWALL.DataLayer/Migrations/202401181206504_AddMaterialAndRawItems.Designer.cs +++ b/EgtBEAMWALL.DataLayer/Migrations/202401181534084_AddAliasMaterialRawItemsModel.Designer.cs @@ -7,13 +7,13 @@ namespace EgtBEAMWALL.DataLayer.Migrations using System.Resources; [GeneratedCode("EntityFramework.Migrations", "6.4.4")] - public sealed partial class AddMaterialAndRawItems : IMigrationMetadata + public sealed partial class AddAliasMaterialRawItemsModel : IMigrationMetadata { - private readonly ResourceManager Resources = new ResourceManager(typeof(AddMaterialAndRawItems)); + private readonly ResourceManager Resources = new ResourceManager(typeof(AddAliasMaterialRawItemsModel)); string IMigrationMetadata.Id { - get { return "202401181206504_AddMaterialAndRawItems"; } + get { return "202401181534084_AddAliasMaterialRawItemsModel"; } } string IMigrationMetadata.Source diff --git a/EgtBEAMWALL.DataLayer/Migrations/202401181206504_AddMaterialAndRawItems.cs b/EgtBEAMWALL.DataLayer/Migrations/202401181534084_AddAliasMaterialRawItemsModel.cs similarity index 63% rename from EgtBEAMWALL.DataLayer/Migrations/202401181206504_AddMaterialAndRawItems.cs rename to EgtBEAMWALL.DataLayer/Migrations/202401181534084_AddAliasMaterialRawItemsModel.cs index a46d3c39..14adf95c 100644 --- a/EgtBEAMWALL.DataLayer/Migrations/202401181206504_AddMaterialAndRawItems.cs +++ b/EgtBEAMWALL.DataLayer/Migrations/202401181534084_AddAliasMaterialRawItemsModel.cs @@ -3,12 +3,22 @@ using System; using System.Data.Entity.Migrations; - public partial class AddMaterialAndRawItems : DbMigration + public partial class AddAliasMaterialRawItemsModel : DbMigration { public override void Up() { CreateTable( - "dbo.Materials", + "dbo.AliasList", + c => new + { + Family = c.String(nullable: false, maxLength: 128, storeType: "nvarchar"), + ValueOriginal = c.String(nullable: false, maxLength: 128, storeType: "nvarchar"), + ValueAlias = c.String(unicode: false), + }) + .PrimaryKey(t => new { t.Family, t.ValueOriginal }); + + CreateTable( + "dbo.MaterialsList", c => new { MatId = c.Int(nullable: false, identity: true), @@ -23,7 +33,7 @@ .PrimaryKey(t => t.MatId); CreateTable( - "dbo.RawItemModel", + "dbo.RawItemList", c => new { RawItemId = c.Int(nullable: false, identity: true), @@ -36,17 +46,18 @@ Note = c.String(unicode: false), }) .PrimaryKey(t => t.RawItemId) - .ForeignKey("dbo.Materials", t => t.MatId, cascadeDelete: true) + .ForeignKey("dbo.MaterialsList", t => t.MatId, cascadeDelete: true) .Index(t => t.MatId); } public override void Down() { - DropForeignKey("dbo.RawItemModel", "MatId", "dbo.Materials"); - DropIndex("dbo.RawItemModel", new[] { "MatId" }); - DropTable("dbo.RawItemModel"); - DropTable("dbo.Materials"); + DropForeignKey("dbo.RawItemList", "MatId", "dbo.MaterialsList"); + DropIndex("dbo.RawItemList", new[] { "MatId" }); + DropTable("dbo.RawItemList"); + DropTable("dbo.MaterialsList"); + DropTable("dbo.AliasList"); } } } diff --git a/EgtBEAMWALL.DataLayer/Migrations/202401181534084_AddAliasMaterialRawItemsModel.resx b/EgtBEAMWALL.DataLayer/Migrations/202401181534084_AddAliasMaterialRawItemsModel.resx new file mode 100644 index 00000000..6877e2d6 --- /dev/null +++ b/EgtBEAMWALL.DataLayer/Migrations/202401181534084_AddAliasMaterialRawItemsModel.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + + dbo + + \ No newline at end of file