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