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