diff --git a/EgtBEAMWALL.Core/EgtBEAMWALL.Core.vbproj.bak b/EgtBEAMWALL.Core/EgtBEAMWALL.Core.vbproj.bak new file mode 100644 index 00000000..cc5b0e32 --- /dev/null +++ b/EgtBEAMWALL.Core/EgtBEAMWALL.Core.vbproj.bak @@ -0,0 +1,129 @@ + + + + + Debug + AnyCPU + {F22835A1-83D8-4334-91BB-BAAEB9CF59B1} + Library + EgtBEAMWALL.Core + EgtBEAMWALL.Core + 512 + Windows + v4.0 + true + + + true + full + true + true + bin\Debug\ + EgtBEAMWALL.Core.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + EgtBEAMWALL.Core.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + On + + + Binary + + + Off + + + On + + + + ..\..\..\EgtProg\DllD32\EgtUILib.dll + + + ..\..\..\EgtProg\DllD32\EgtWPFLib5.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + + + + + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + copy $(TargetPath) c:\EgtProg\EgtBEAMWALL\ViewerOptimizer\EgtBEAMWALL.Core.dll + + \ No newline at end of file diff --git a/EgtBEAMWALL.Core/ProjectFile.vb b/EgtBEAMWALL.Core/ProjectFile.vb index 9f239b97..ae1c21be 100644 --- a/EgtBEAMWALL.Core/ProjectFile.vb +++ b/EgtBEAMWALL.Core/ProjectFile.vb @@ -20,7 +20,6 @@ Public Class ProjectFile End Get End Property - Protected m_nProdId As Integer = 0 Public ReadOnly Property nProdId As Integer Get @@ -55,6 +54,7 @@ Public Class ProjectFile End Set End Property + ' temporaneo, per funzionamento vecchio senza db Sub New() End Sub diff --git a/EgtBEAMWALL.DataLayer/App.config b/EgtBEAMWALL.DataLayer/App.config index e780891a..a78af4b3 100644 --- a/EgtBEAMWALL.DataLayer/App.config +++ b/EgtBEAMWALL.DataLayer/App.config @@ -7,14 +7,24 @@ - + - + - + + + + + + + + + + + + - - \ No newline at end of file + \ No newline at end of file diff --git a/EgtBEAMWALL.DataLayer/Controllers/BTLPartController.cs b/EgtBEAMWALL.DataLayer/Controllers/BTLPartController.cs index 7bb3cea9..bf5bce64 100644 --- a/EgtBEAMWALL.DataLayer/Controllers/BTLPartController.cs +++ b/EgtBEAMWALL.DataLayer/Controllers/BTLPartController.cs @@ -186,14 +186,14 @@ namespace EgtBEAMWALL.DataLayer.Controllers public bool Update(BTLPartModel updItem) { bool done = false; - var item2del = dbCtx + var item2update = dbCtx .BTLPartList .Where(x => x.PartDbId == updItem.PartDbId) .SingleOrDefault(); try { // update, vers 1... - dbCtx.Entry(item2del).CurrentValues.SetValues(updItem); + dbCtx.Entry(item2update).CurrentValues.SetValues(updItem); //// update, vers 2 //dbCtx.BTLPartList.Remove(item2del); diff --git a/EgtBEAMWALL.DataLayer/Controllers/RawPartController.cs b/EgtBEAMWALL.DataLayer/Controllers/RawPartController.cs index 8f9e8922..f520785e 100644 --- a/EgtBEAMWALL.DataLayer/Controllers/RawPartController.cs +++ b/EgtBEAMWALL.DataLayer/Controllers/RawPartController.cs @@ -137,6 +137,34 @@ namespace EgtBEAMWALL.DataLayer.Controllers return newRawPart; } + /// + /// Update single RawPart + /// + /// Item to update (with updated values) + /// + public bool Update(RawPartModel updItem) + { + bool done = false; + var item2update = dbCtx + .RawPartList + .Where(x => x.RawPartDbId == updItem.RawPartDbId) + .SingleOrDefault(); + try + { + // update, vers 1... + dbCtx.Entry(item2update).CurrentValues.SetValues(updItem); + //// update, vers 2 + //dbCtx.BTLPartList.Remove(item2del); + //dbCtx.BTLPartList.Add(updItem); + + // Commit changes + dbCtx.SaveChanges(); + done = true; + } + catch + { } + return done; + } } } diff --git a/EgtBEAMWALL.DataLayer/DatabaseContext.cs b/EgtBEAMWALL.DataLayer/DatabaseContext.cs index f01dadcb..0f848d8b 100644 --- a/EgtBEAMWALL.DataLayer/DatabaseContext.cs +++ b/EgtBEAMWALL.DataLayer/DatabaseContext.cs @@ -48,9 +48,9 @@ namespace EgtBEAMWALL.DataLayer //providerName="System.Data.EntityClient" - public static string CONNECTION_STRING = $"server={Constants.DATABASE_SERV};port=3306;database={Constants.DATABASE_NAME};uid={Constants.DATABASE_USER};pwd={Constants.DATABASE_PWD};"; + public static string CONNECTION_STRING = $"server={Constants.DATABASE_SERV};port=3306;database={Constants.DATABASE_NAME};uid={Constants.DATABASE_USER};pwd={Constants.DATABASE_PWD};sslmode=None"; - public DatabaseContext() : base(CONNECTION_STRING) + public DatabaseContext() : base("DefaultConnection") { } diff --git a/EgtBEAMWALL.DataLayer/DatabaseModels/ProdModel.cs b/EgtBEAMWALL.DataLayer/DatabaseModels/ProdModel.cs index 9705aa61..d434cc7e 100644 --- a/EgtBEAMWALL.DataLayer/DatabaseModels/ProdModel.cs +++ b/EgtBEAMWALL.DataLayer/DatabaseModels/ProdModel.cs @@ -22,6 +22,9 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels [Column("Prod_Description")] public string Description { get; set; } = ""; + /// + /// Stato locked (quando aperto da un dispositivo in rete) + /// [Column("Prod_Lock")] public bool Locked { get; set; } = false; diff --git a/EgtBEAMWALL.DataLayer/DatabaseModels/ProjModel.cs b/EgtBEAMWALL.DataLayer/DatabaseModels/ProjModel.cs index 74662789..4f78000d 100644 --- a/EgtBEAMWALL.DataLayer/DatabaseModels/ProjModel.cs +++ b/EgtBEAMWALL.DataLayer/DatabaseModels/ProjModel.cs @@ -22,6 +22,9 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels [Column("Proj_BTLFileName")] public string BTLFileName { get; set; } = ""; + /// + /// Stato locked (quando aperto da un dispositivo in rete) + /// [Column("Proj_Lock")] public bool Locked { get; set; } = false; diff --git a/EgtBEAMWALL.DataLayer/DatabaseModels/RawPartModel.cs b/EgtBEAMWALL.DataLayer/DatabaseModels/RawPartModel.cs index 37349d29..aadad1f9 100644 --- a/EgtBEAMWALL.DataLayer/DatabaseModels/RawPartModel.cs +++ b/EgtBEAMWALL.DataLayer/DatabaseModels/RawPartModel.cs @@ -22,9 +22,18 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels [Column("RawPart_Descript")] public string Description { get; set; } = ""; + /// + /// RawPart state + /// [Column("RawPart_State")] public RawPartState State { get; set; } = RawPartState.ND; + /// + /// Stato locked (quando aperto da un dispositivo in rete) + /// + [Column("RawPart_Lock")] + public bool Locked { get; set; } = false; + [Column("RawPart_Assign")] public string Assign { get; set; } = ""; diff --git a/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj b/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj index aadab368..5773bd65 100644 --- a/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj +++ b/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj @@ -74,6 +74,10 @@ 202103031811160_InitDb.cs + + + 202103051205114_updateProj.cs + @@ -91,6 +95,9 @@ 202103031811160_InitDb.cs + + 202103051205114_updateProj.cs + diff --git a/EgtBEAMWALL.DataLayer/Migrations/202103051205114_updateProj.Designer.cs b/EgtBEAMWALL.DataLayer/Migrations/202103051205114_updateProj.Designer.cs new file mode 100644 index 00000000..d19202c1 --- /dev/null +++ b/EgtBEAMWALL.DataLayer/Migrations/202103051205114_updateProj.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.0.0-20911")] + public sealed partial class updateProj : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(updateProj)); + + string IMigrationMetadata.Id + { + get { return "202103051205114_updateProj"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/EgtBEAMWALL.DataLayer/Migrations/202103051205114_updateProj.cs b/EgtBEAMWALL.DataLayer/Migrations/202103051205114_updateProj.cs new file mode 100644 index 00000000..057642f8 --- /dev/null +++ b/EgtBEAMWALL.DataLayer/Migrations/202103051205114_updateProj.cs @@ -0,0 +1,28 @@ +namespace EgtBEAMWALL.DataLayer.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class updateProj : DbMigration + { + public override void Up() + { + AddColumn("dbo.BTLPartList", "BTLPart_CalcState", c => c.Int(nullable: false)); + AddColumn("dbo.ProjList", "Proj_Lock", c => c.Boolean(nullable: false)); + AddColumn("dbo.PartList", "Part_CalcState", c => c.Int(nullable: false)); + AddColumn("dbo.RawPartList", "RawPart_State", c => c.Int(nullable: false)); + AddColumn("dbo.RawPartList", "RawPart_Assign", c => c.String(unicode: false)); + DropColumn("dbo.BTLPartList", "BTLPart_State"); + } + + public override void Down() + { + AddColumn("dbo.BTLPartList", "BTLPart_State", c => c.Int(nullable: false)); + DropColumn("dbo.RawPartList", "RawPart_Assign"); + DropColumn("dbo.RawPartList", "RawPart_State"); + DropColumn("dbo.PartList", "Part_CalcState"); + DropColumn("dbo.ProjList", "Proj_Lock"); + DropColumn("dbo.BTLPartList", "BTLPart_CalcState"); + } + } +} diff --git a/EgtBEAMWALL.DataLayer/Migrations/202103051205114_updateProj.resx b/EgtBEAMWALL.DataLayer/Migrations/202103051205114_updateProj.resx new file mode 100644 index 00000000..f846cfbe --- /dev/null +++ b/EgtBEAMWALL.DataLayer/Migrations/202103051205114_updateProj.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 diff --git a/EgtBEAMWALL.Supervisor/EgtBEAMWALL.Supervisor.vbproj b/EgtBEAMWALL.Supervisor/EgtBEAMWALL.Supervisor.vbproj index 6e88f917..861b35f6 100644 --- a/EgtBEAMWALL.Supervisor/EgtBEAMWALL.Supervisor.vbproj +++ b/EgtBEAMWALL.Supervisor/EgtBEAMWALL.Supervisor.vbproj @@ -178,6 +178,7 @@ Resources.Designer.vb My.Resources + SettingsSingleFileGenerator Settings.Designer.vb diff --git a/EgtBEAMWALL.Supervisor/app.config b/EgtBEAMWALL.Supervisor/app.config new file mode 100644 index 00000000..f6208b52 --- /dev/null +++ b/EgtBEAMWALL.Supervisor/app.config @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/EgtBEAMWALL.ViewerOptimizer/App.config b/EgtBEAMWALL.ViewerOptimizer/App.config index 22ca5e89..91fc38b1 100644 --- a/EgtBEAMWALL.ViewerOptimizer/App.config +++ b/EgtBEAMWALL.ViewerOptimizer/App.config @@ -5,13 +5,26 @@ + + - - - - - - + - \ No newline at end of file + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/EgtBEAMWALL.ViewerOptimizer/EgtBEAMWALL.ViewerOptimizer.vbproj b/EgtBEAMWALL.ViewerOptimizer/EgtBEAMWALL.ViewerOptimizer.vbproj index fb3ff394..c42a4795 100644 --- a/EgtBEAMWALL.ViewerOptimizer/EgtBEAMWALL.ViewerOptimizer.vbproj +++ b/EgtBEAMWALL.ViewerOptimizer/EgtBEAMWALL.ViewerOptimizer.vbproj @@ -107,6 +107,12 @@ ..\packages\EntityFramework.6.0.0\lib\net40\EntityFramework.SqlServer.dll + + ..\packages\MySql.Data.6.9.12\lib\net40\MySql.Data.dll + + + ..\packages\MySql.Data.Entity.6.9.12\lib\net40\MySql.Data.Entity.EF6.dll + diff --git a/EgtBEAMWALL.ViewerOptimizer/OpenProjectFileDialog/OpenProjectFileDialogVM.vb b/EgtBEAMWALL.ViewerOptimizer/OpenProjectFileDialog/OpenProjectFileDialogVM.vb index 3ffe3d05..1cb649ca 100644 --- a/EgtBEAMWALL.ViewerOptimizer/OpenProjectFileDialog/OpenProjectFileDialogVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/OpenProjectFileDialog/OpenProjectFileDialogVM.vb @@ -99,9 +99,11 @@ Public Class OpenProjectFileDialogVM Public Function Init(ProjectType As ProjectType, Optional ProjectList As List(Of ProjectFile) = Nothing) As Boolean? m_ProjectType = ProjectType If IsNothing(ProjectList) OrElse ProjectList.Count = 0 Then - ' leggo lista proj da DB + ' leggo da db Dim ProjController As New DataLayer.Controllers.ProjController - Dim ProjList As List(Of DataLayer.DatabaseModels.ProjModel) = ProjController.GetLastPaginatedDesc(50) + For Each Project In ProjController.GetLastDesc(50) + m_ProjectList.Add(New ProjectFile(Project.nProjectType, Project.nProjId, Project.nProdId, Project.BTLFileName)) + Next '' cartella da cui leggere i programmi 'Dim sFolderPath As String 'If m_ProjectType = ProjectType.PROJ Then @@ -133,20 +135,6 @@ Public Class OpenProjectFileDialogVM Next End Sub - Private Sub VerifyFiles(FileId As String) - Dim AllFilesInDir As IEnumerable(Of String) = IO.Directory.EnumerateFiles(CurrDirectory) - For Each File In AllFilesInDir - If Path.GetExtension(File).ToLower() = ".nge" Then - Dim nProjId As Integer = 0 - Dim nProdId As Integer = 0 - Dim sBTLFileName As String = "" - If ProjectFile.VerifyProjectFile(m_ProjectType, Path.GetFileNameWithoutExtension(File), nProjId, nProdId, sBTLFileName) Then - m_ProjectList.Add(New ProjectFile(m_ProjectType, nProjId, nProdId, sBTLFileName)) - End If - End If - Next - End Sub - Friend Function VerifySelected() As Boolean Return Not IsNothing(SelProject) End Function diff --git a/EgtBEAMWALL.ViewerOptimizer/ProjectManager/ProjectFile.vb.bak b/EgtBEAMWALL.ViewerOptimizer/ProjectManager/ProjectFile.vb.bak new file mode 100644 index 00000000..215beb59 --- /dev/null +++ b/EgtBEAMWALL.ViewerOptimizer/ProjectManager/ProjectFile.vb.bak @@ -0,0 +1,278 @@ +Imports System.IO +Imports EgtUILib + +Public Class ProjectFile + + Private m_nProjectType As ProjectType + Public ReadOnly Property nProjectType As ProjectType + Get + Return m_nProjectType + End Get + End Property + Friend Sub SetProjectType(nProjectType As ProjectType) + m_nProjectType = nProjectType + End Sub + + Private m_nProjId As Integer = 0 + Public ReadOnly Property nProjId As Integer + Get + Return m_nProjId + End Get + End Property + + Friend ReadOnly Property sProjDirPath As String + Get + If IsNothing(m_nProjId) OrElse m_nProjId = 0 Then Return String.Empty + Return refMainWindowVM.MainWindowM.sProjsDir & "\" & nProjId.ToString("0000") + End Get + End Property + Friend ReadOnly Property sProjPath As String + Get + Dim sPath As String = String.Empty + If IsNothing(m_nProjId) OrElse m_nProjId = 0 Then Return String.Empty + sPath = refMainWindowVM.MainWindowM.sProjsDir & "\" & nProjId.ToString("0000") & "\" & nProjId.ToString("0000") & FILENAMESEPARATOR + If Not IsNothing(m_nProdId) AndAlso m_nProdId > 0 Then + sPath &= nProdId.ToString("0000") + End If + sPath &= FILENAMESEPARATOR & BTLFileName & ".nge" + Return sPath + End Get + End Property + + Private m_nProdId As Integer = 0 + Public ReadOnly Property nProdId As Integer + Get + Return m_nProdId + End Get + End Property + Friend ReadOnly Property sProdDirPath As String + Get + Dim sPath As String = String.Empty + If IsNothing(m_nProdId) OrElse m_nProdId = 0 Then Return String.Empty + Return refMainWindowVM.MainWindowM.sProdsDir & "\" & nProdId.ToString("0000") + End Get + End Property + Friend ReadOnly Property sProdPath As String + Get + Dim sPath As String = String.Empty + If IsNothing(m_nProdId) OrElse m_nProdId = 0 Then Return String.Empty + Return refMainWindowVM.MainWindowM.sProdsDir & "\" & nProdId.ToString("0000") & "\" & nProdId.ToString("0000") & ".nge" + End Get + End Property + + Private m_BTLFileName As String = String.Empty + Public ReadOnly Property BTLFileName As String + Get + Return m_BTLFileName + End Get + End Property + + Private m_NewProj As Boolean + Friend Property NewProj As Boolean + Get + Return m_NewProj + End Get + Set(value As Boolean) + m_NewProj = value + End Set + End Property + + Private m_NewProd As Boolean + Friend Property NewProd As Boolean + Get + Return m_NewProd + End Get + Set(value As Boolean) + m_NewProd = value + End Set + End Property + + ' nome del file mostrato nella finestra OpenProjFileDialog + Public ReadOnly Property OpenFileName As String + Get + If m_nProjectType = ProjectType.PROJ Then + Return m_nProjId.ToString("0000") & " " & BTLFileName + ElseIf m_nProjectType = ProjectType.PROD Then + Return m_nProdId.ToString("0000") + Else + Return "" + End If + End Get + End Property + + Sub New(nProjectType As ProjectType, ProjectFileName As String) + m_nProjectType = nProjectType + If m_nProjectType = ProjectType.PROJ Then + Dim DataFromFileName As String() = ProjectFileName.Split(FILENAMESEPARATOR) + If Not String.IsNullOrEmpty(DataFromFileName(0)) Then + Integer.TryParse(DataFromFileName(0), m_nProjId) + End If + If Not String.IsNullOrEmpty(DataFromFileName(1)) Then + Integer.TryParse(DataFromFileName(1), m_nProdId) + Else + m_nProdId = 0 + End If + If Not String.IsNullOrEmpty(DataFromFileName(2)) Then + m_BTLFileName = DataFromFileName(2) + End If + ElseIf m_nProjectType = ProjectType.PROD Then + Integer.TryParse(ProjectFileName, m_nProdId) + End If + End Sub + + Sub New(nProjectType As ProjectType, nProjId As Integer, nProdId As Integer, sBTLFileName As String) + m_nProjectType = nProjectType + If m_nProjectType = ProjectType.PROJ Then + m_nProjId = nProjId + m_nProdId = nProdId + m_BTLFileName = sBTLFileName + ElseIf m_nProjectType = ProjectType.PROD Then + m_nProdId = nProdId + End If + End Sub + + Friend Sub SetProdId(nProdId As Integer) + ' rinomino proj con riferimento a prod + Dim OldPath As String = sProjPath + m_nProdId = nProdId + Dim NewPath As String = sProjPath + File.Move(OldPath, NewPath) + End Sub + + Friend Sub ResetProdId() + SetProdId(0) + End Sub + + ' funzione che restituisce le parti di nome file + Friend Shared Function VerifyProjectFile(nProjectType As ProjectType, ProjectFileName As String, ByRef nProjId As Integer, ByRef nProdId As Integer, ByRef sBTLFileName As String) As Boolean + If nProjectType = ProjectType.PROJ Then + Dim DataFromFileName As String() = ProjectFileName.Split(FILENAMESEPARATOR) + If DataFromFileName.Count = 3 Then + If Not String.IsNullOrEmpty(DataFromFileName(0)) Then + Integer.TryParse(DataFromFileName(0), nProjId) + Else Return False + End If + If Not String.IsNullOrEmpty(DataFromFileName(1)) Then + Integer.TryParse(DataFromFileName(1), nProdId) + Else + nProdId = 0 + End If + If Not String.IsNullOrEmpty(DataFromFileName(2)) Then + sBTLFileName = DataFromFileName(2) + End If + Return True + Else Return False + End If + ElseIf nProjectType = ProjectType.PROD Then + Return Integer.TryParse(ProjectFileName, nProdId) + Else Return False + End If + End Function + + ' funzione che dato un nome file e il tipo restituisce il corretto numero di progetto + Friend Shared Function GetProjectNumber(nProjectType As ProjectType, ProjectFileName As String, ByRef nProjId As Integer, ByRef nProdId As Integer, ByRef sBTLFileName As String) As Boolean + If String.IsNullOrWhiteSpace(ProjectFileName) Then + nProjId = 0 + nProdId = 0 + sBTLFileName = "" + Return False + ElseIf ProjectFileName.Contains(FILENAMESEPARATOR) Then + Dim DataFromFileName As String() = ProjectFileName.Split(FILENAMESEPARATOR) + If DataFromFileName.Count = 3 Then + If Not String.IsNullOrEmpty(DataFromFileName(0)) Then + Integer.TryParse(DataFromFileName(0), nProjId) + Else Return False + End If + If Not String.IsNullOrEmpty(DataFromFileName(1)) Then + Integer.TryParse(DataFromFileName(1), nProdId) + Else + nProdId = 0 + End If + If Not String.IsNullOrEmpty(DataFromFileName(2)) Then + sBTLFileName = DataFromFileName(2) + End If + Return True + Else Return False + End If + ElseIf nProjectType = ProjectType.PROJ Then + Dim ProjectFileNameProd As String = Integer.TryParse(ProjectFileName, nProdId) + Dim nTempProjId As Integer = 0 + Dim nTempProdId As Integer = 0 + Dim sTempBTLFileName As String = "" + ' ricavo lista cartelle proj + Dim AllDirsInDir As IEnumerable(Of String) = IO.Directory.EnumerateDirectories(Map.refMainWindowVM.MainWindowM.sProjsDir) + For Each Directory In AllDirsInDir + Dim AllFilesInDir As IEnumerable(Of String) = IO.Directory.EnumerateFiles(Directory) + For Each File In AllFilesInDir + If Path.GetExtension(File).ToLower() = ".nge" Then + If File.Contains(FILENAMESEPARATOR) Then + Dim DataFromFileName As String() = ProjectFileName.Split(FILENAMESEPARATOR) + If DataFromFileName.Count = 3 Then + If Not String.IsNullOrEmpty(DataFromFileName(0)) Then + Integer.TryParse(DataFromFileName(0), nTempProjId) + Else Return False + End If + If Not String.IsNullOrEmpty(DataFromFileName(1)) Then + Integer.TryParse(DataFromFileName(1), nTempProdId) + Else + nProdId = 0 + End If + If Not String.IsNullOrEmpty(DataFromFileName(2)) Then + sTempBTLFileName = DataFromFileName(2) + End If + If ProjectFileNameProd = nTempProdId Then + nProjId = nTempProjId + nProdId = nTempProdId + sTempBTLFileName = sBTLFileName + Return True + End If + Else Return False + End If + End If + End If + Next + Next + End If + Return False + End Function + + Friend Shared Function VerifyProjectModification(CurrProject As ProjectFile, Type As ProjectType) As Boolean + If IsNothing(CurrProject) Then Return False + Dim bNewProject As Boolean = False + Dim sProjectDirPath As String = "" + If Type = ProjectType.PROJ Then + bNewProject = CurrProject.NewProj + sProjectDirPath = CurrProject.sProjDirPath + Else + bNewProject = CurrProject.NewProd + sProjectDirPath = CurrProject.sProdDirPath + End If + ' verifico se progetto modificato, e chiedo se salvare + If (EgtGetModified() Or bNewProject) Then + If MessageBox.Show("Salvare le modifiche apportate al progetto?", "", MessageBoxButton.YesNo, MessageBoxImage.Question) = MessageBoxResult.Yes Then + ' salvo proj + If Type = ProjectType.PROJ Then + Map.refProjManagerVM.Save() + Else + Map.refProdManagerVM.Save() + End If + Return True + Else + ' se da non salvare e nuovo proj + If bNewProject Then + ' lo elimino + Directory.Delete(sProjectDirPath, True) + If Type = ProjectType.PROD AndAlso CurrProject.m_nProdId = Map.refProjManagerVM.CurrProj.m_nProdId Then + ' reset prod in path proj + Map.refProjManagerVM.CurrProj.ResetProdId() + End If + CurrProject = Nothing + End If + EgtResetModified() + Return False + End If + End If + Return True + End Function + +End Class \ No newline at end of file diff --git a/EgtBEAMWALL.ViewerOptimizer/packages.config b/EgtBEAMWALL.ViewerOptimizer/packages.config index 90556424..9b33c92a 100644 --- a/EgtBEAMWALL.ViewerOptimizer/packages.config +++ b/EgtBEAMWALL.ViewerOptimizer/packages.config @@ -1,4 +1,6 @@  + + \ No newline at end of file