Fixed possible database state problem after issue #123
This commit is contained in:
@@ -46,7 +46,7 @@ Public Class clsGame
|
|||||||
|
|
||||||
ReadOnly Property CompoundKey As String
|
ReadOnly Property CompoundKey As String
|
||||||
Get
|
Get
|
||||||
Return ProcessName & ":" & SafeName
|
Return ProcessName & ":" & KeySafeName
|
||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
@@ -69,12 +69,18 @@ Public Class clsGame
|
|||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
ReadOnly Property SafeName As String
|
ReadOnly Property FileSafeName As String
|
||||||
Get
|
Get
|
||||||
Return mgrPath.ValidateForFileSystem(sGameName)
|
Return mgrPath.ValidateForFileSystem(sGameName)
|
||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
ReadOnly Property KeySafeName As String
|
||||||
|
Get
|
||||||
|
Return sGameName.Replace(":", "_")
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
Property ProcessName As String
|
Property ProcessName As String
|
||||||
Set(value As String)
|
Set(value As String)
|
||||||
sProcessName = value
|
sProcessName = value
|
||||||
|
|||||||
@@ -265,7 +265,7 @@ Public Class frmAddWizard
|
|||||||
|
|
||||||
Private Sub DoSave()
|
Private Sub DoSave()
|
||||||
Dim hshDupeCheck As New Hashtable
|
Dim hshDupeCheck As New Hashtable
|
||||||
Dim sNewGame As String = oGameToSave.ProcessName & ":" & oGameToSave.SafeName
|
Dim sNewGame As String = oGameToSave.ProcessName & ":" & oGameToSave.KeySafeName
|
||||||
|
|
||||||
For Each o As clsGame In GameData.Values
|
For Each o As clsGame In GameData.Values
|
||||||
hshDupeCheck.Add(o.CompoundKey, String.Empty)
|
hshDupeCheck.Add(o.CompoundKey, String.Empty)
|
||||||
|
|||||||
@@ -183,14 +183,14 @@ Public Class frmGameManager
|
|||||||
sFileName = BackupFolder & oBackupItem.FileName
|
sFileName = BackupFolder & oBackupItem.FileName
|
||||||
|
|
||||||
'Rename Backup File
|
'Rename Backup File
|
||||||
sNewFileName = Path.GetDirectoryName(sFileName) & Path.DirectorySeparatorChar & Path.GetFileName(sFileName).Replace(oOriginalApp.SafeName, oNewApp.SafeName)
|
sNewFileName = Path.GetDirectoryName(sFileName) & Path.DirectorySeparatorChar & Path.GetFileName(sFileName).Replace(oOriginalApp.FileSafeName, oNewApp.FileSafeName)
|
||||||
If File.Exists(sFileName) And Not sFileName = sNewFileName Then
|
If File.Exists(sFileName) And Not sFileName = sNewFileName Then
|
||||||
FileSystem.Rename(sFileName, sNewFileName)
|
FileSystem.Rename(sFileName, sNewFileName)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
'Rename Directory
|
'Rename Directory
|
||||||
sDirectory = Path.GetDirectoryName(sFileName)
|
sDirectory = Path.GetDirectoryName(sFileName)
|
||||||
sNewDirectory = sDirectory.Replace(oOriginalApp.SafeName, oNewApp.SafeName)
|
sNewDirectory = sDirectory.Replace(oOriginalApp.FileSafeName, oNewApp.FileSafeName)
|
||||||
If sDirectory <> sNewDirectory Then
|
If sDirectory <> sNewDirectory Then
|
||||||
If Directory.Exists(sDirectory) And Not sDirectory = sNewDirectory Then
|
If Directory.Exists(sDirectory) And Not sDirectory = sNewDirectory Then
|
||||||
FileSystem.Rename(sDirectory, sNewDirectory)
|
FileSystem.Rename(sDirectory, sNewDirectory)
|
||||||
@@ -198,7 +198,7 @@ Public Class frmGameManager
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
oBackupItem.Name = oNewApp.Name
|
oBackupItem.Name = oNewApp.Name
|
||||||
oBackupItem.FileName = oBackupItem.FileName.Replace(oOriginalApp.SafeName, oNewApp.SafeName)
|
oBackupItem.FileName = oBackupItem.FileName.Replace(oOriginalApp.FileSafeName, oNewApp.FileSafeName)
|
||||||
mgrManifest.DoManifestUpdateByID(oBackupItem, mgrSQLite.Database.Local)
|
mgrManifest.DoManifestUpdateByID(oBackupItem, mgrSQLite.Database.Local)
|
||||||
Next
|
Next
|
||||||
oLocalBackupData = mgrManifest.ReadLatestManifest(mgrSQLite.Database.Local)
|
oLocalBackupData = mgrManifest.ReadLatestManifest(mgrSQLite.Database.Local)
|
||||||
@@ -210,7 +210,7 @@ Public Class frmGameManager
|
|||||||
|
|
||||||
For Each oBackupItem As clsBackup In oBackupItems
|
For Each oBackupItem As clsBackup In oBackupItems
|
||||||
oBackupItem.Name = oNewApp.Name
|
oBackupItem.Name = oNewApp.Name
|
||||||
oBackupItem.FileName = oBackupItem.FileName.Replace(oOriginalApp.SafeName, oNewApp.SafeName)
|
oBackupItem.FileName = oBackupItem.FileName.Replace(oOriginalApp.FileSafeName, oNewApp.FileSafeName)
|
||||||
mgrManifest.DoManifestUpdateByID(oBackupItem, mgrSQLite.Database.Remote)
|
mgrManifest.DoManifestUpdateByID(oBackupItem, mgrSQLite.Database.Remote)
|
||||||
Next
|
Next
|
||||||
oRemoteBackupData = mgrManifest.ReadLatestManifest(mgrSQLite.Database.Remote)
|
oRemoteBackupData = mgrManifest.ReadLatestManifest(mgrSQLite.Database.Remote)
|
||||||
|
|||||||
@@ -107,8 +107,8 @@ Public Class mgrBackup
|
|||||||
Dim lAvailableSpace As Long
|
Dim lAvailableSpace As Long
|
||||||
Dim lFolderSize As Long
|
Dim lFolderSize As Long
|
||||||
|
|
||||||
If oSettings.CreateSubFolder Then sBackupFile = sBackupFile & Path.DirectorySeparatorChar & oGame.SafeName
|
If oSettings.CreateSubFolder Then sBackupFile = sBackupFile & Path.DirectorySeparatorChar & oGame.FileSafeName
|
||||||
sBackupFile = sBackupFile & Path.DirectorySeparatorChar & oGame.SafeName & ".7z"
|
sBackupFile = sBackupFile & Path.DirectorySeparatorChar & oGame.FileSafeName & ".7z"
|
||||||
|
|
||||||
'Verify saved game path
|
'Verify saved game path
|
||||||
sSavePath = VerifySavePath(oGame)
|
sSavePath = VerifySavePath(oGame)
|
||||||
@@ -199,7 +199,7 @@ Public Class mgrBackup
|
|||||||
RaiseEvent UpdateBackupInfo(oGame)
|
RaiseEvent UpdateBackupInfo(oGame)
|
||||||
|
|
||||||
If oSettings.CreateSubFolder Then
|
If oSettings.CreateSubFolder Then
|
||||||
sBackupFile = sBackupFile & Path.DirectorySeparatorChar & oGame.SafeName
|
sBackupFile = sBackupFile & Path.DirectorySeparatorChar & oGame.FileSafeName
|
||||||
Try
|
Try
|
||||||
If Not Directory.Exists(sBackupFile) Then
|
If Not Directory.Exists(sBackupFile) Then
|
||||||
Directory.CreateDirectory(sBackupFile)
|
Directory.CreateDirectory(sBackupFile)
|
||||||
@@ -212,9 +212,9 @@ Public Class mgrBackup
|
|||||||
|
|
||||||
If oGame.AppendTimeStamp Then
|
If oGame.AppendTimeStamp Then
|
||||||
CheckOldBackups(oGame)
|
CheckOldBackups(oGame)
|
||||||
sBackupFile = sBackupFile & Path.DirectorySeparatorChar & oGame.SafeName & sTimeStamp & ".7z"
|
sBackupFile = sBackupFile & Path.DirectorySeparatorChar & oGame.FileSafeName & sTimeStamp & ".7z"
|
||||||
Else
|
Else
|
||||||
sBackupFile = sBackupFile & Path.DirectorySeparatorChar & oGame.SafeName & ".7z"
|
sBackupFile = sBackupFile & Path.DirectorySeparatorChar & oGame.FileSafeName & ".7z"
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If bDoBackup Then
|
If bDoBackup Then
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ Public Class mgrMonitorList
|
|||||||
Select Case eListType
|
Select Case eListType
|
||||||
Case eListTypes.FullList
|
Case eListTypes.FullList
|
||||||
'Don't wrap this, if it fails there's a problem with the database
|
'Don't wrap this, if it fails there's a problem with the database
|
||||||
hshList.Add(oGame.ProcessName & ":" & oGame.SafeName, oGame)
|
hshList.Add(oGame.ProcessName & ":" & oGame.KeySafeName, oGame)
|
||||||
Case eListTypes.ScanList
|
Case eListTypes.ScanList
|
||||||
For Each de As DictionaryEntry In hshList
|
For Each de As DictionaryEntry In hshList
|
||||||
bIsDupe = False
|
bIsDupe = False
|
||||||
@@ -116,7 +116,7 @@ Public Class mgrMonitorList
|
|||||||
|
|
||||||
If bIsDupe Then
|
If bIsDupe Then
|
||||||
DirectCast(hshList.Item(oCompareGame.ProcessName), clsGame).Duplicate = True
|
DirectCast(hshList.Item(oCompareGame.ProcessName), clsGame).Duplicate = True
|
||||||
oGame.ProcessName = oGame.ProcessName & ":" & oGame.SafeName
|
oGame.ProcessName = oGame.ProcessName & ":" & oGame.KeySafeName
|
||||||
oGame.Duplicate = True
|
oGame.Duplicate = True
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ Public Class mgrXML
|
|||||||
|
|
||||||
'This should be wrapped just in case we get some bad data
|
'This should be wrapped just in case we get some bad data
|
||||||
Try
|
Try
|
||||||
hshList.Add(oGame.ProcessName & ":" & oGame.SafeName, oGame)
|
hshList.Add(oGame.ProcessName & ":" & oGame.KeySafeName, oGame)
|
||||||
Catch e As Exception
|
Catch e As Exception
|
||||||
'Do Nothing
|
'Do Nothing
|
||||||
End Try
|
End Try
|
||||||
|
|||||||
Reference in New Issue
Block a user