Fixed possible database state problem after issue #123

This commit is contained in:
MikeMaximus
2018-02-24 15:40:26 -06:00
parent b54f98d82b
commit dff3432c27
6 changed files with 21 additions and 15 deletions
+8 -2
View File
@@ -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
+1 -1
View File
@@ -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)
+4 -4
View File
@@ -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)
+5 -5
View File
@@ -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
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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