Changes for issue #147

This commit is contained in:
Michael J. Seiferling
2018-08-25 19:40:17 -06:00
parent 0ed067e36f
commit ccd6d1fd39
4 changed files with 84 additions and 33 deletions
+54 -27
View File
@@ -175,7 +175,7 @@ Public Class frmGameManager
Return sPath Return sPath
End Function End Function
Private Sub CheckManifestandUpdate(ByVal oOriginalApp As clsGame, ByVal oNewApp As clsGame, ByVal bUseGameID As Boolean) Private Function CheckManifestandUpdate(ByVal oOriginalApp As clsGame, ByVal oNewApp As clsGame, ByVal bUseGameID As Boolean) As Boolean
Dim oBackupItems As List(Of clsBackup) Dim oBackupItems As List(Of clsBackup)
Dim sDirectory As String Dim sDirectory As String
Dim sNewDirectory As String Dim sNewDirectory As String
@@ -195,6 +195,55 @@ Public Class frmGameManager
sOriginalAppItem = oOriginalApp.FileSafeName sOriginalAppItem = oOriginalApp.FileSafeName
End If End If
'Remote
If mgrManifest.DoManifestCheck(oOriginalApp.ID, mgrSQLite.Database.Remote) Then
'Check for existing folder
sDirectory = BackupFolder & sOriginalAppItem
sNewDirectory = sDirectory.Replace(sOriginalAppItem, sNewAppItem)
If Directory.Exists(sNewDirectory) Then
If mgrCommon.ShowMessage(frmGameManager_ErrorRenameFolderExists, New String() {sDirectory, sNewDirectory}, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
mgrCommon.DeleteDirectory(sNewDirectory, True)
Else
Return False
End If
End If
oBackupItems = mgrManifest.DoManifestGetByMonitorID(oOriginalApp.ID, mgrSQLite.Database.Remote)
'Check for existing files
For Each oBackupItem As clsBackup In oBackupItems
'Rename Current Backup File
sFileName = BackupFolder & oBackupItem.FileName
sNewFileName = Path.GetDirectoryName(sFileName) & Path.DirectorySeparatorChar & Path.GetFileName(sFileName).Replace(sOriginalAppItem, sNewAppItem)
If File.Exists(sNewFileName) Then
If mgrCommon.ShowMessage(frmGameManager_ErrorRenameFilesExist, New String() {sOriginalAppItem, sNewAppItem}, MsgBoxStyle.YesNo) = MsgBoxResult.No Then
Return False
End If
Exit For
End If
Next
'Rename files
For Each oBackupItem As clsBackup In oBackupItems
'Rename Current Backup File
sFileName = BackupFolder & oBackupItem.FileName
sNewFileName = Path.GetDirectoryName(sFileName) & Path.DirectorySeparatorChar & Path.GetFileName(sFileName).Replace(sOriginalAppItem, sNewAppItem)
If File.Exists(sFileName) And Not sFileName = sNewFileName Then
If File.Exists(sNewFileName) Then mgrCommon.DeleteFile(sNewFileName)
FileSystem.Rename(sFileName, sNewFileName)
End If
oBackupItem.MonitorID = oNewApp.ID
oBackupItem.FileName = oBackupItem.FileName.Replace(sOriginalAppItem, sNewAppItem)
mgrManifest.DoManifestUpdateByManifestID(oBackupItem, mgrSQLite.Database.Remote)
Next
'Rename folder
If Directory.Exists(sDirectory) And Not sDirectory = sNewDirectory Then
FileSystem.Rename(sDirectory, sNewDirectory)
End If
End If
'Local 'Local
If mgrManifest.DoManifestCheck(oOriginalApp.ID, mgrSQLite.Database.Local) Then If mgrManifest.DoManifestCheck(oOriginalApp.ID, mgrSQLite.Database.Local) Then
oBackupItems = mgrManifest.DoManifestGetByMonitorID(oOriginalApp.ID, mgrSQLite.Database.Local) oBackupItems = mgrManifest.DoManifestGetByMonitorID(oOriginalApp.ID, mgrSQLite.Database.Local)
@@ -205,33 +254,10 @@ Public Class frmGameManager
mgrManifest.DoManifestUpdateByManifestID(oBackupItem, mgrSQLite.Database.Local) mgrManifest.DoManifestUpdateByManifestID(oBackupItem, mgrSQLite.Database.Local)
Next Next
End If End If
'Remote
If mgrManifest.DoManifestCheck(oOriginalApp.ID, mgrSQLite.Database.Remote) Then
oBackupItems = mgrManifest.DoManifestGetByMonitorID(oOriginalApp.ID, mgrSQLite.Database.Remote)
For Each oBackupItem As clsBackup In oBackupItems
'Rename Current Backup File
sFileName = BackupFolder & oBackupItem.FileName
sNewFileName = Path.GetDirectoryName(sFileName) & Path.DirectorySeparatorChar & Path.GetFileName(sFileName).Replace(sOriginalAppItem, sNewAppItem)
If File.Exists(sFileName) And Not sFileName = sNewFileName Then
FileSystem.Rename(sFileName, sNewFileName)
End If End If
oBackupItem.MonitorID = oNewApp.ID Return True
oBackupItem.FileName = oBackupItem.FileName.Replace(sOriginalAppItem, sNewAppItem) End Function
mgrManifest.DoManifestUpdateByManifestID(oBackupItem, mgrSQLite.Database.Remote)
Next
'Rename folder if there is one
sDirectory = BackupFolder & sOriginalAppItem
sNewDirectory = sDirectory.Replace(sOriginalAppItem, sNewAppItem)
If Directory.Exists(sDirectory) And Not sDirectory = sNewDirectory Then
FileSystem.Rename(sDirectory, sNewDirectory)
End If
End If
End If
End Sub
Private Sub LoadData(Optional ByVal bRetainFilter As Boolean = True) Private Sub LoadData(Optional ByVal bRetainFilter As Boolean = True)
Dim oRestoreData As New SortedList Dim oRestoreData As New SortedList
@@ -1291,11 +1317,12 @@ Public Class frmGameManager
End If End If
Case eModes.Edit Case eModes.Edit
If CoreValidatation(oApp, False) Then If CoreValidatation(oApp, False) Then
If CheckManifestandUpdate(oCurrentGame, oApp, oSettings.UseGameID) Then
bSuccess = True bSuccess = True
CheckManifestandUpdate(oCurrentGame, oApp, oSettings.UseGameID)
mgrMonitorList.DoListUpdate(oApp, CurrentGame.ID) mgrMonitorList.DoListUpdate(oApp, CurrentGame.ID)
eCurrentMode = eModes.View eCurrentMode = eModes.View
End If End If
End If
Case eModes.MultiSelect Case eModes.MultiSelect
Dim sMonitorIDs As New List(Of String) Dim sMonitorIDs As New List(Of String)
For Each oData In lstGames.SelectedItems For Each oData In lstGames.SelectedItems
+2 -2
View File
@@ -33,7 +33,7 @@ Imports System.Runtime.InteropServices
' by using the '*' as shown below: ' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")> ' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.1.4.*")> <Assembly: AssemblyVersion("1.1.5.*")>
<Assembly: AssemblyFileVersion("1.1.4.0")> <Assembly: AssemblyFileVersion("1.1.5.0")>
<Assembly: NeutralResourcesLanguageAttribute("en")> <Assembly: NeutralResourcesLanguageAttribute("en")>
+18
View File
@@ -2013,6 +2013,24 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to The backup folder contains one or more backup files that cannot be renamed to [PARAM] because a file using that name already exist.[BR][BR]Do you want to continue and remove the existing files?.
'''</summary>
Friend ReadOnly Property frmGameManager_ErrorRenameFilesExist() As String
Get
Return ResourceManager.GetString("frmGameManager_ErrorRenameFilesExist", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to The backup folder [PARAM] cannot be renamed to [PARAM] because a folder with that name already exists.[BR][BR]Do you want to continue and remove the existing folder?.
'''</summary>
Friend ReadOnly Property frmGameManager_ErrorRenameFolderExists() As String
Get
Return ResourceManager.GetString("frmGameManager_ErrorRenameFolderExists", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to You must enter a valid game name.. ''' Looks up a localized string similar to You must enter a valid game name..
'''</summary> '''</summary>
+6
View File
@@ -2197,4 +2197,10 @@
<data name="frmMain_ErrorGameIcon" xml:space="preserve"> <data name="frmMain_ErrorGameIcon" xml:space="preserve">
<value>An error occured while extracting the executable icon.</value> <value>An error occured while extracting the executable icon.</value>
</data> </data>
<data name="frmGameManager_ErrorRenameFilesExist" xml:space="preserve">
<value>The backup folder contains one or more backup files that cannot be renamed to [PARAM] because a file using that name already exist.[BR][BR]Do you want to continue and remove the existing files?</value>
</data>
<data name="frmGameManager_ErrorRenameFolderExists" xml:space="preserve">
<value>The backup folder [PARAM] cannot be renamed to [PARAM] because a folder with that name already exists.[BR][BR]Do you want to continue and remove the existing folder?</value>
</data>
</root> </root>