diff --git a/EgtBEAMWALL.Core/Constants/ConstGen.vb b/EgtBEAMWALL.Core/Constants/ConstGen.vb
index b0a6b75b..dd80f86e 100644
--- a/EgtBEAMWALL.Core/Constants/ConstGen.vb
+++ b/EgtBEAMWALL.Core/Constants/ConstGen.vb
@@ -41,6 +41,7 @@ Public Module ConstGen
NESTING_AUTO = 4
SUPERVISOR = 8
NETWORK = 16
+ ANY_DB = 32
End Enum
' File di log generale
diff --git a/EgtBEAMWALL.Core/OpenProjectFileDialog/OpenProjectFileDialogV.xaml b/EgtBEAMWALL.Core/OpenProjectFileDialog/OpenProjectFileDialogV.xaml
index 29904ebe..1ea88efc 100644
--- a/EgtBEAMWALL.Core/OpenProjectFileDialog/OpenProjectFileDialogV.xaml
+++ b/EgtBEAMWALL.Core/OpenProjectFileDialog/OpenProjectFileDialogV.xaml
@@ -154,6 +154,7 @@
-->
diff --git a/EgtBEAMWALL.Core/ProjectFileVM/ProdFileM.vb b/EgtBEAMWALL.Core/ProjectFileVM/ProdFileM.vb
index f5079e60..c11a78ab 100644
--- a/EgtBEAMWALL.Core/ProjectFileVM/ProdFileM.vb
+++ b/EgtBEAMWALL.Core/ProjectFileVM/ProdFileM.vb
@@ -27,7 +27,8 @@ Public Class ProdFileM
Return New ProdFileM
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) As ProdFileM
+ 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) As ProdFileM
Dim NewProjectFileM As New ProdFileM
NewProjectFileM.m_nProdId = nProdId
NewProjectFileM.m_nProjIdList = nProjIdList
@@ -35,6 +36,8 @@ Public Class ProdFileM
NewProjectFileM.m_sName = sName
NewProjectFileM.m_nType = nType
NewProjectFileM.m_sMachine = sMachine
+ NewProjectFileM.m_sLockedBy = sLockedBy
+ NewProjectFileM.m_dtLock = dtLock
Return NewProjectFileM
End Function
diff --git a/EgtBEAMWALL.Core/ProjectFileVM/ProjectFileM.vb b/EgtBEAMWALL.Core/ProjectFileVM/ProjectFileM.vb
index 53acaa6d..12786f45 100644
--- a/EgtBEAMWALL.Core/ProjectFileVM/ProjectFileM.vb
+++ b/EgtBEAMWALL.Core/ProjectFileVM/ProjectFileM.vb
@@ -74,6 +74,26 @@ Public Class ProjectFileM
End Set
End Property
+ Protected m_sLockedBy As String
+ Public Property sLockedBy As String
+ Get
+ Return m_sLockedBy
+ End Get
+ Set(value As String)
+ m_sLockedBy = value
+ End Set
+ End Property
+
+ Protected m_dtLock As DateTime
+ Public Property dtLock As DateTime
+ Get
+ Return m_dtLock
+ End Get
+ Set(value As DateTime)
+ m_dtLock = value
+ End Set
+ End Property
+
#Region "CONSTRUCTORS"
#End Region ' CONSTRUCTORS
diff --git a/EgtBEAMWALL.DataLayer/Controllers/ProdController.cs b/EgtBEAMWALL.DataLayer/Controllers/ProdController.cs
index af40a826..05f9e323 100644
--- a/EgtBEAMWALL.DataLayer/Controllers/ProdController.cs
+++ b/EgtBEAMWALL.DataLayer/Controllers/ProdController.cs
@@ -175,7 +175,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
{
return null;
}
- return Core.ProdFileM.CreateProdFileM(currProd.ProdId, ProjIdByProd(ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine);
+ return Core.ProdFileM.CreateProdFileM(currProd.ProdId, ProjIdByProd(ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine, currProd.LockedBy, currProd.LockDate);
}
///
@@ -188,7 +188,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
List result = new List();
var dbResult = GetLastDbModelDesc(numRecord);
// conversione
- result = dbResult.Select(x => Core.ProdFileM.CreateProdFileM(x.ProdId, ProjIdByProd(x.ProdId), x.DtCreated, x.Description, x.PType, x.Machine)).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)).ToList();
return result;
}
@@ -607,7 +607,7 @@ 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);
+ Core.ProdFileM answ = Core.ProdFileM.CreateProdFileM(currProd.ProdId, ProjIdByProd(currProd.ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine, currProd.LockedBy, currProd.LockDate);
return answ;
}
diff --git a/EgtBEAMWALL.ViewerOptimizer/MainMenu/MainMenuVM.vb b/EgtBEAMWALL.ViewerOptimizer/MainMenu/MainMenuVM.vb
index c00b0a63..fb82eda1 100644
--- a/EgtBEAMWALL.ViewerOptimizer/MainMenu/MainMenuVM.vb
+++ b/EgtBEAMWALL.ViewerOptimizer/MainMenu/MainMenuVM.vb
@@ -257,7 +257,7 @@ Public Class MainMenuVM
Map.refTopPanelVM.ManageQParamsRowVisibility(BWType.BEAM)
Map.refPartInRawPartListVM.UpdateColumns(BWType.BEAM)
End If
- DbControllers.m_ProjController.LockByProjId(Map.refProjManagerVM.CurrProj.nProjId, True)
+ DbControllers.m_ProjController.LockByProjId(Map.refProjManagerVM.CurrProj.nProjId, True, Map.refMainWindowVM.MainWindowM.GetKeyNumber())
Map.refProjManagerVM.NotifyPropertyChanged(NameOf(Map.refProjManagerVM.MruFileNames))
Else
LoadingWndHelper.UpdateLoadingWnd(ActiveIds.GOTOPROJ, 2, EgtMsg(63005), 10, 100) ' Loading parts
@@ -287,7 +287,7 @@ Public Class MainMenuVM
End If
' aggiorno titolo
Map.refMainWindowVM.UpdateTitle()
- DbControllers.m_ProjController.LockByProjId(Map.refProjManagerVM.CurrProj.nProjId, True)
+ DbControllers.m_ProjController.LockByProjId(Map.refProjManagerVM.CurrProj.nProjId, True, Map.refMainWindowVM.MainWindowM.GetKeyNumber())
Else
Map.refSceneHostVM.MainController.NewProject()
Map.refProjectVM.BTLStructureVM = Nothing
@@ -337,7 +337,7 @@ Public Class MainMenuVM
Map.refRawPartListVM.UpdateColumns(Map.refProjectVM.BTLStructureVM.nPROJTYPE)
Map.refTopPanelVM.ManageQParamsRowVisibility(Map.refProjectVM.BTLStructureVM.nPROJTYPE <> BWType.BEAM)
Map.refPartInRawPartListVM.UpdateColumns(Map.refProjectVM.BTLStructureVM.nPROJTYPE)
- DbControllers.m_ProdController.LockByProdId(Map.refProdManagerVM.CurrProd.nProdId, True)
+ DbControllers.m_ProdController.LockByProdId(Map.refProdManagerVM.CurrProd.nProdId, True, Map.refMainWindowVM.MainWindowM.GetKeyNumber())
Map.refProdManagerVM.NotifyPropertyChanged(NameOf(Map.refProdManagerVM.MruFileNames))
End If
Else
@@ -371,7 +371,7 @@ Public Class MainMenuVM
'DbControllers.m_ProdController.ResetController()
' aggiorno titolo
Map.refMainWindowVM.UpdateTitle()
- DbControllers.m_ProdController.LockByProdId(Map.refProdManagerVM.CurrProd.nProdId, True)
+ DbControllers.m_ProdController.LockByProdId(Map.refProdManagerVM.CurrProd.nProdId, True, Map.refMainWindowVM.MainWindowM.GetKeyNumber())
' seleziono prima barra
Map.refProjectVM.MachGroupPanelVM.SelFirstMachGroup()
Else
diff --git a/EgtBEAMWALL.ViewerOptimizer/MainWindow/MainWindowM.vb b/EgtBEAMWALL.ViewerOptimizer/MainWindow/MainWindowM.vb
index c7bc1996..b9efe14a 100644
--- a/EgtBEAMWALL.ViewerOptimizer/MainWindow/MainWindowM.vb
+++ b/EgtBEAMWALL.ViewerOptimizer/MainWindow/MainWindowM.vb
@@ -3,6 +3,7 @@ Imports System.Math
Imports EgtUILib
Imports EgtWPFLib5
Imports EgtBEAMWALL.Core
+Imports System.IO
Public Class MainWindowM
@@ -209,11 +210,6 @@ Public Class MainWindowM
If GetMainPrivateProfileString(S_GENERAL, K_DATADIR, "", m_sDataDir) = 0 Then
m_sDataDir = m_sDataRoot
End If
- m_sProjsDir = m_sDataDir & "\" & PROJS_DIR
- m_sProdsDir = m_sDataDir & "\" & PRODS_DIR
- m_sWarehouseDir = m_sDataDir & "\" & WAREHOUSE_DIR
- ' imposto cartelle dei progetti
- Core.ProjectFileVM.Init(sProjsDir, sProdsDir)
' Verifico indice di istanza
ManageInstance()
' Imposto tipo di chiave
@@ -372,6 +368,31 @@ Public Class MainWindowM
Core.ProjectFileVM.Init(sProjsDir, sProdsDir)
End Sub
+ Friend Sub UpdatePathForKey(sKey As String)
+ m_sProjsDir = m_sDataDir & "\" & sKey & "\" & PROJS_DIR
+ m_sProdsDir = m_sDataDir & "\" & sKey & "\" & PRODS_DIR
+ If Not Directory.Exists(m_sDataDir & "\" & sKey) Then
+ Directory.CreateDirectory(m_sDataDir & "\" & sKey & "\" & PROJS_DIR)
+ Directory.CreateDirectory(m_sDataDir & "\" & sKey & "\" & PRODS_DIR)
+ End If
+ m_sWarehouseDir = m_sDataDir & "\" & WAREHOUSE_DIR
+ ' imposto cartelle dei progetti
+ Core.ProjectFileVM.Init(sProjsDir, sProdsDir)
+ End Sub
+
+ Friend Function GetKeyNumber() As Integer
+ Dim sKey As String = ""
+ Dim nKey As Integer = 0
+ EgtGetKeyInfo(sKey)
+ sKey = sKey.Replace(" ", "")
+ If Not IsNothing(sKey) AndAlso sKey.Length > 11 Then
+ If Integer.TryParse(sKey.Substring(3, 6), nKey) AndAlso nKey > 0 Then
+ Return nKey
+ End If
+ End If
+ Return -1
+ End Function
+
Friend Sub Close()
' Terminazione generale di EgtInterface
EgtExit()
diff --git a/EgtBEAMWALL.ViewerOptimizer/MainWindow/MainWindowVM.vb b/EgtBEAMWALL.ViewerOptimizer/MainWindow/MainWindowVM.vb
index 1ed2b1c8..d5bccc62 100644
--- a/EgtBEAMWALL.ViewerOptimizer/MainWindow/MainWindowVM.vb
+++ b/EgtBEAMWALL.ViewerOptimizer/MainWindow/MainWindowVM.vb
@@ -303,9 +303,9 @@ Public Class MainWindowVM
If EgtGetCurrFilePath(sFilePath) Then WriteMainPrivateProfileString(S_GENERAL, K_LASTPROJ, sFilePath)
' tolgo lock da file aperto
If Map.refMainMenuVM.SelPage = Pages.VIEW And Not IsNothing(Map.refProjManagerVM.CurrProj) Then
- DbControllers.m_ProjController.LockByProjId(Map.refProjManagerVM.CurrProj.nProjId, False)
+ DbControllers.m_ProjController.LockByProjId(Map.refProjManagerVM.CurrProj.nProjId, False, Map.refMainWindowVM.MainWindowM.GetKeyNumber())
ElseIf Map.refMainMenuVM.SelPage = Pages.MACHINING And Not IsNothing(Map.refProdManagerVM.CurrProd) Then
- DbControllers.m_ProdController.LockByProdId(Map.refProdManagerVM.CurrProd.nProdId, False)
+ DbControllers.m_ProdController.LockByProdId(Map.refProdManagerVM.CurrProd.nProdId, False, Map.refMainWindowVM.MainWindowM.GetKeyNumber())
End If
' Termino il Model
m_MainWindowM.Close()
diff --git a/EgtBEAMWALL.ViewerOptimizer/ProdManager/ProdManagerVM.vb b/EgtBEAMWALL.ViewerOptimizer/ProdManager/ProdManagerVM.vb
index 1c11ec8d..ecb93f84 100644
--- a/EgtBEAMWALL.ViewerOptimizer/ProdManager/ProdManagerVM.vb
+++ b/EgtBEAMWALL.ViewerOptimizer/ProdManager/ProdManagerVM.vb
@@ -146,7 +146,7 @@ Public Class ProdManagerVM
Friend Function InitNewProject(ByRef nProjId As Integer, ByRef nProdId As Integer, ByRef sProjectDir As String) As Boolean
' richiedo indice nuovo progetto
- nProdId = DbControllers.m_ProdController.GetNextIndex(nProjId)
+ nProdId = DbControllers.m_ProdController.GetNextIndex(nProjId, Map.refMainWindowVM.MainWindowM.GetKeyNumber())
If nProdId <= 0 Then Return False
sProjectDir = refMainWindowVM.MainWindowM.sProdsDir & "\" & nProdId.ToString("0000")
' creo cartella nuovo progetto
diff --git a/EgtBEAMWALL.ViewerOptimizer/ProjManager/ProjManagerVM.vb b/EgtBEAMWALL.ViewerOptimizer/ProjManager/ProjManagerVM.vb
index 54e7e2f0..e45cd8a6 100644
--- a/EgtBEAMWALL.ViewerOptimizer/ProjManager/ProjManagerVM.vb
+++ b/EgtBEAMWALL.ViewerOptimizer/ProjManager/ProjManagerVM.vb
@@ -238,7 +238,7 @@ Public Class ProjManagerVM
' se non ho ricevuto numero progetto da sovrascrivere
If nProjId = 0 Then
' richiedo indice nuovo progetto
- nProjId = DbControllers.m_ProjController.GetNextIndex()
+ nProjId = DbControllers.m_ProjController.GetNextIndex(Map.refMainWindowVM.MainWindowM.GetKeyNumber())
End If
' salvo data creazione progetto
DbControllers.m_ProjController.Update(New ProjModel() With {.ProjId = nProjId,
@@ -1587,7 +1587,7 @@ Public Class ProjManagerVM
' resetto stato new
DbControllers.m_ProjController.ResetNew(nNewProjId)
' resetto lock
- DbControllers.m_ProjController.LockByProjId(nNewProjId, False)
+ DbControllers.m_ProjController.LockByProjId(nNewProjId, False, Map.refMainWindowVM.MainWindowM.GetKeyNumber())
DbControllers.m_ProjController.ResetController()
Next
' se tutte le operazioni precedenti sono andate a buon fine
@@ -1642,7 +1642,7 @@ Public Class ProjManagerVM
If bOk Then
' aggiungo altri proj a prod
For Each nProjId In NewProjIdList
- DbControllers.m_ProdController.AddProj(nProdId, nProjId)
+ DbControllers.m_ProdController.AddProj(nProdId, nProjId, Map.refMainWindowVM.MainWindowM.GetKeyNumber())
Next
Else
' elimino da DB
@@ -1657,7 +1657,7 @@ Public Class ProjManagerVM
' aggiorno pezzi su Db
DbControllers.m_ProdController.UpdateMachGroup(nProdId, MyMachGroupList)
' resetto lock
- DbControllers.m_ProdController.LockByProdId(nProdId, False)
+ DbControllers.m_ProdController.LockByProdId(nProdId, False, Map.refMainWindowVM.MainWindowM.GetKeyNumber())
End If
DbControllers.m_ProdController.ResetController()
End If
diff --git a/EgtBEAMWALL.ViewerOptimizer/ProjectFileVM/ProdFileVM.vb b/EgtBEAMWALL.ViewerOptimizer/ProjectFileVM/ProdFileVM.vb
index 2efa0aef..377d057e 100644
--- a/EgtBEAMWALL.ViewerOptimizer/ProjectFileVM/ProdFileVM.vb
+++ b/EgtBEAMWALL.ViewerOptimizer/ProjectFileVM/ProdFileVM.vb
@@ -156,7 +156,7 @@ Public Class ProdFileVM
EgtResetModified()
End If
DbControllers.m_ProdController.ResetController()
- DbControllers.m_ProdController.LockByProdId(CurrProject.nProdId, False)
+ DbControllers.m_ProdController.LockByProdId(CurrProject.nProdId, False, Map.refMainWindowVM.MainWindowM.GetKeyNumber())
Return VerifyResult
End Function
diff --git a/EgtBEAMWALL.ViewerOptimizer/ProjectFileVM/ProjFileVM.vb b/EgtBEAMWALL.ViewerOptimizer/ProjectFileVM/ProjFileVM.vb
index 9a5aed24..742f5a88 100644
--- a/EgtBEAMWALL.ViewerOptimizer/ProjectFileVM/ProjFileVM.vb
+++ b/EgtBEAMWALL.ViewerOptimizer/ProjectFileVM/ProjFileVM.vb
@@ -5,6 +5,12 @@ Imports EgtUILib
Public Class ProjFileVM
Inherits Core.ProjFileVM
+ Public ReadOnly Property bIsEnabled As Boolean
+ Get
+ Return Not DbControllers.bNetwork OrElse Not bIsLocked
+ End Get
+ End Property
+
#Region "CONSTRUCTORS"
Sub New(ProjectFileM As ProjFileM)
@@ -141,7 +147,7 @@ Public Class ProjFileVM
Else
EgtResetModified()
End If
- DbControllers.m_ProjController.LockByProjId(CurrProject.nProjId, False)
+ DbControllers.m_ProjController.LockByProjId(CurrProject.nProjId, False, Map.refMainWindowVM.MainWindowM.GetKeyNumber())
Return True
End Function
diff --git a/EgtBEAMWALL.ViewerOptimizer/SceneHost/MySceneHostVM.vb b/EgtBEAMWALL.ViewerOptimizer/SceneHost/MySceneHostVM.vb
index 5b73bbc6..9b2948c5 100644
--- a/EgtBEAMWALL.ViewerOptimizer/SceneHost/MySceneHostVM.vb
+++ b/EgtBEAMWALL.ViewerOptimizer/SceneHost/MySceneHostVM.vb
@@ -544,7 +544,7 @@ Public Class MySceneHostVM
Map.refTopPanelVM.ManageQParamsRowVisibility(Map.refProjectVM.BTLStructureVM.BTLStructureM.nPROJTYPE <> BWType.BEAM)
Map.refPartInRawPartListVM.UpdateColumns(Map.refProjectVM.BTLStructureVM.BTLStructureM.nPROJTYPE)
Map.refProjManagerVM.CurrProj = Map.refProjManagerVM.TempCurrProj
- DbControllers.m_ProjController.LockByProjId(Map.refProjManagerVM.CurrProj.nProjId, True)
+ DbControllers.m_ProjController.LockByProjId(Map.refProjManagerVM.CurrProj.nProjId, True, Map.refMainWindowVM.MainWindowM.GetKeyNumber())
' carico lista macchine e macchina del progetto per il pulsante Reset Macchina del CALCPanel
Map.refCALCPanelVM.LoadMachineList()
ElseIf ProjectType = ProjectType.PROD Then
@@ -563,7 +563,7 @@ Public Class MySceneHostVM
Map.refTopPanelVM.ManageQParamsRowVisibility(Map.refProjectVM.BTLStructureVM.BTLStructureM.nPROJTYPE <> BWType.BEAM)
Map.refPartInRawPartListVM.UpdateColumns(Map.refProjectVM.BTLStructureVM.BTLStructureM.nPROJTYPE)
If Not IsNothing(Map.refProdManagerVM.TempCurrProd) Then Map.refProdManagerVM.CurrProd = Map.refProdManagerVM.TempCurrProd
- DbControllers.m_ProdController.LockByProdId(Map.refProdManagerVM.CurrProd.nProdId, True)
+ DbControllers.m_ProdController.LockByProdId(Map.refProdManagerVM.CurrProd.nProdId, True, Map.refMainWindowVM.MainWindowM.GetKeyNumber())
' carico lista macchine e macchina del progetto per il pulsante Reset Macchina del CALCPanel
Map.refCALCPanelVM.LoadMachineList()
End If
diff --git a/EgtBEAMWALL.ViewerOptimizer/Utility/DbControllers.vb b/EgtBEAMWALL.ViewerOptimizer/Utility/DbControllers.vb
index bd7c9c7c..f4dc864d 100644
--- a/EgtBEAMWALL.ViewerOptimizer/Utility/DbControllers.vb
+++ b/EgtBEAMWALL.ViewerOptimizer/Utility/DbControllers.vb
@@ -5,76 +5,93 @@ Imports EgtBEAMWALL.ViewerOptimizer
Public Module DbControllers
- Friend m_SupervisorId As String = "1"
- Private m_bNetwork As Boolean = False
- Friend ReadOnly Property bNetwork As Boolean
- Get
- Return m_bNetwork
- End Get
- End Property
+ Friend m_SupervisorId As String = "1"
+ Private m_bNetwork As Boolean = False
+ Friend ReadOnly Property bNetwork As Boolean
+ Get
+ Return m_bNetwork
+ End Get
+ End Property
- Public m_ProjController As DataLayer.Controllers.ProjController
- Public m_ProdController As DataLayer.Controllers.ProdController
- Public m_MachGroupController As DataLayer.Controllers.MachGroupController
- Public m_StatusMapController As DataLayer.Controllers.StatusMapController
- Public m_PartController As DataLayer.Controllers.PartController
+ Public m_ProjController As DataLayer.Controllers.ProjController
+ Public m_ProdController As DataLayer.Controllers.ProdController
+ Public m_MachGroupController As DataLayer.Controllers.MachGroupController
+ Public m_StatusMapController As DataLayer.Controllers.StatusMapController
+ Public m_PartController As DataLayer.Controllers.PartController
- Sub Init()
- End Sub
+ Sub Init()
+ End Sub
- Sub New()
+ Sub New()
- ' se demo--> server = db.steamware.net, nKey e sKey come le hai...
+ ' se demo--> server = db.steamware.net, nKey e sKey come le hai...
- Dim sKey = "", sUser = "", sPwd = ""
+ Dim sKey = "", sUser = "", sPwd = ""
- EgtGetKeyInfo(sKey)
- sKey = sKey.Replace(" ", "")
- If Not IsNothing(sKey) AndAlso sKey.Length > 11 Then
- sUser = sKey.Substring(3, 6)
- sPwd = sKey.Substring(10, sKey.Length - 10).Replace("(", "").Replace(")", "")
- End If
- Try
- Dim DbAddress As String = "127.0.0.1"
- Dim DbMasterKey As Integer = 0
- Dim sDbMasterKey As String = ""
- Dim sSharedFolder As String = ""
- If Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NETWORK) Then
- GetMainPrivateProfileString(S_GENERAL, K_DBADDRESS, "", DbAddress)
- DbMasterKey = GetMainPrivateProfileInt(S_GENERAL, K_DBMASTERKEY, 0)
- If DbMasterKey > 0 Then
- sDbMasterKey = DbMasterKey.ToString("000000")
- End If
- If String.IsNullOrWhiteSpace(DbAddress) OrElse DbMasterKey <= 0 Then
- DbAddress = "127.0.0.1"
- DbMasterKey = 0
- Else
- m_bNetwork = True
- End If
+ EgtGetKeyInfo(sKey)
+ sKey = sKey.Replace(" ", "")
+ If Not IsNothing(sKey) AndAlso sKey.Length > 11 Then
+ sUser = sKey.Substring(3, 6)
+ sPwd = sKey.Substring(10, sKey.Length - 10).Replace("(", "").Replace(")", "")
+ End If
+ Try
+ Dim DbAddress As String = "127.0.0.1"
+ Dim DbMasterKey As Integer = 0
+ Dim sDbMasterKey As String = ""
+ Dim sSharedFolder As String = ""
+ If Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NETWORK) Then
+ GetMainPrivateProfileString(S_GENERAL, K_DBADDRESS, "", DbAddress)
+ DbMasterKey = GetMainPrivateProfileInt(S_GENERAL, K_DBMASTERKEY, 0)
+ If DbMasterKey > 0 Then
+ sDbMasterKey = DbMasterKey.ToString("000000")
End If
+ If String.IsNullOrWhiteSpace(DbAddress) OrElse DbMasterKey <= 0 Then
+ DbAddress = "127.0.0.1"
+ DbMasterKey = 0
+ Else
+ m_bNetwork = True
+ End If
+ End If
+ If Not m_bNetwork AndAlso Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.ANY_DB) Then
+ DbMasterKey = GetMainPrivateProfileInt(S_GENERAL, K_DBMASTERKEY, 0)
+ If DbMasterKey > 0 Then
+ sDbMasterKey = DbMasterKey.ToString("000000")
+ End If
+ ElseIf GetMainPrivateProfileInt(S_GENERAL, K_DBMASTERKEY, 0) = 0 Then
+ Dim nKey As Integer = 0
+ If Integer.TryParse(sKey.Substring(3, 6), nKey) AndAlso nKey > 0 Then
+ WriteMainPrivateProfileString(S_GENERAL, K_DBMASTERKEY, nKey)
+ End If
+ End If
DataLayer.DbConfig.InitDb(DbAddress, sUser, sPwd, sDbMasterKey)
- DataLayer.DbConfig.SetupLogDir(Map.refMainWindowVM.MainWindowM.sTempDir)
- DataLayer.DbConfig.CheckMigrateDb()
- DataLayer.DbConfig.CheckUser(sUser, sPwd, Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NETWORK))
- If Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NETWORK) And bNetwork Then
- ' imposto cartella condivisa
- GetMainPrivateProfileString(S_GENERAL, K_SHAREDFOLDER, Map.refMainWindowVM.MainWindowM.sDataDir, sSharedFolder)
- Map.refMainWindowVM.MainWindowM.UpdatePathForNetwork(sSharedFolder)
- Dim sSupervisorMachName As String = ""
- GetMainPrivateProfileString(S_MACH, K_SUPERVISORMACH, "", sSupervisorMachName)
- If Not String.IsNullOrWhiteSpace(sSupervisorMachName) Then m_SupervisorId = sSupervisorMachName
- End If
- Catch ex As Exception
- EgtOutLog("InitDb error: " & ex.ToString())
- MessageBox.Show(Application.Current.MainWindow, "Db connection error!!", "Error")
- End
- End Try
+ DataLayer.DbConfig.SetupLogDir(Map.refMainWindowVM.MainWindowM.sTempDir)
+ DataLayer.DbConfig.CheckMigrateDb()
+ DataLayer.DbConfig.CheckUser(sUser, sPwd, Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NETWORK))
+ If Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NETWORK) And bNetwork Then
+ ' imposto cartella condivisa
+ GetMainPrivateProfileString(S_GENERAL, K_SHAREDFOLDER, Map.refMainWindowVM.MainWindowM.sDataDir, sSharedFolder)
+ Map.refMainWindowVM.MainWindowM.UpdatePathForNetwork(sSharedFolder)
+ Dim sSupervisorMachName As String = ""
+ GetMainPrivateProfileString(S_MACH, K_SUPERVISORMACH, "", sSupervisorMachName)
+ If Not String.IsNullOrWhiteSpace(sSupervisorMachName) Then m_SupervisorId = sSupervisorMachName
+ ElseIf Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.ANY_DB) Then
+ ' imposto cartella chiave master
+ Map.refMainWindowVM.MainWindowM.UpdatePathForKey(sDbMasterKey)
+ Else
+ ' imposto cartella chiave locale
+ Map.refMainWindowVM.MainWindowM.UpdatePathForKey(sKey.Substring(3, 6))
+ End If
+ Catch ex As Exception
+ EgtOutLog("InitDb error: " & ex.ToString())
+ MessageBox.Show(Application.Current.MainWindow, "Db connection error!!", "Error")
+ End
+ End Try
- m_ProjController = New DataLayer.Controllers.ProjController
- m_ProdController = New DataLayer.Controllers.ProdController
- m_MachGroupController = New DataLayer.Controllers.MachGroupController
- m_StatusMapController = New DataLayer.Controllers.StatusMapController
- m_PartController = New DataLayer.Controllers.PartController
- End Sub
+ m_ProjController = New DataLayer.Controllers.ProjController
+ m_ProdController = New DataLayer.Controllers.ProdController
+ m_MachGroupController = New DataLayer.Controllers.MachGroupController
+ m_StatusMapController = New DataLayer.Controllers.StatusMapController
+ m_PartController = New DataLayer.Controllers.PartController
+ End Sub
End Module