From e1f2aef863e32707f7858edea28d168c9b6570a3 Mon Sep 17 00:00:00 2001 From: "Michael J. Seiferling" Date: Fri, 8 Feb 2019 11:09:33 -0600 Subject: [PATCH] Added wine data table and related functions --- GBM/Classes/clsWineData.vb | 43 ++++++++++++++++++++ GBM/Game Backup Monitor.vbproj | 2 + GBM/Managers/mgrMonitorList.vb | 15 +++++++ GBM/Managers/mgrSQLite.vb | 7 ++++ GBM/Managers/mgrWineData.vb | 73 ++++++++++++++++++++++++++++++++++ 5 files changed, 140 insertions(+) create mode 100644 GBM/Classes/clsWineData.vb create mode 100644 GBM/Managers/mgrWineData.vb diff --git a/GBM/Classes/clsWineData.vb b/GBM/Classes/clsWineData.vb new file mode 100644 index 0000000..94dd53f --- /dev/null +++ b/GBM/Classes/clsWineData.vb @@ -0,0 +1,43 @@ +Public Class clsWineData + Private sMonitorID As String = String.Empty + Private sPrefix As String = String.Empty + Private sSavePath As String = String.Empty + Private sBinaryPath As String = String.Empty + + Property MonitorID As String + Get + Return sMonitorID + End Get + Set(value As String) + sMonitorID = value + End Set + End Property + + Property Prefix As String + Get + Return sPrefix + End Get + Set(value As String) + sPrefix = value + End Set + End Property + + Property SavePath As String + Get + Return sSavePath + End Get + Set(value As String) + sSavePath = value + End Set + End Property + + Property BinaryPath As String + Get + Return sBinaryPath + End Get + Set(value As String) + sBinaryPath = value + End Set + End Property + +End Class diff --git a/GBM/Game Backup Monitor.vbproj b/GBM/Game Backup Monitor.vbproj index 703c302..966b99b 100644 --- a/GBM/Game Backup Monitor.vbproj +++ b/GBM/Game Backup Monitor.vbproj @@ -123,6 +123,7 @@ + @@ -247,6 +248,7 @@ Form + diff --git a/GBM/Managers/mgrMonitorList.vb b/GBM/Managers/mgrMonitorList.vb index 3f8c10c..f8dfaa5 100644 --- a/GBM/Managers/mgrMonitorList.vb +++ b/GBM/Managers/mgrMonitorList.vb @@ -131,6 +131,7 @@ Public Class mgrMonitorList If iSelectDB = mgrSQLite.Database.Local Then sSQL &= "UPDATE gameprocesses SET MonitorID=@ID WHERE MonitorID=@QueryID;" sSQL &= "UPDATE sessions SET MonitorID=@ID WHERE MonitorID=@QueryID;" + sSQL &= "UPDATE winedata SET MonitorID=@ID WHERE MonitorID=@QueryID" End If 'Parameters @@ -197,6 +198,8 @@ Public Class mgrMonitorList sSQL &= "WHERE MonitorID = @MonitorID;" sSQL &= "DELETE FROM sessions " sSQL &= "WHERE MonitorID = @MonitorID;" + sSQL &= "DELETE FROM winedata " + sSQL &= "WHERE MonitorID = @MonitorID;" End If sSQL &= "DELETE FROM monitorlist " sSQL &= "WHERE MonitorID = @MonitorID;" @@ -261,6 +264,18 @@ Public Class mgrMonitorList sSQL = sSQL.TrimEnd(",") sSQL &= ");" + + sSQL &= "DELETE FROM winedata " + sSQL &= "WHERE MonitorID IN (" + + For Each s As String In sMonitorIDs + sSQL &= "@MonitorID" & iCounter & "," + hshParams.Add("MonitorID" & iCounter, s) + iCounter += 1 + Next + + sSQL = sSQL.TrimEnd(",") + sSQL &= ");" End If sSQL &= "DELETE FROM monitorlist " diff --git a/GBM/Managers/mgrSQLite.vb b/GBM/Managers/mgrSQLite.vb index 500c031..4ae6e63 100644 --- a/GBM/Managers/mgrSQLite.vb +++ b/GBM/Managers/mgrSQLite.vb @@ -109,6 +109,9 @@ Public Class mgrSQLite 'Add Tables (Game Processes) sSql &= "CREATE TABLE gameprocesses (ProcessID TEXT NOT NULL, MonitorID TEXT NOT NULL, PRIMARY KEY(ProcessID, MonitorID));" + 'Add Tables (Wine Data) + sSql &= "CREATE TABLE winedata (MonitorID TEXT NOT NULL PRIMARY KEY, Prefix TEXT NOT NULL, SavePath TEXT NOT NULL, BinaryPath TEXT NOT NULL);" + 'Set Version sSql &= "PRAGMA user_version=" & mgrCommon.AppVersion @@ -927,6 +930,10 @@ Public Class mgrSQLite 'Add new field(s) sSQL = "ALTER TABLE monitorlist ADD COLUMN OS INTEGER NOT NULL DEFAULT " & mgrCommon.GetCurrentOS & ";" + + 'Add Tables (Wine Data) + sSQL &= "CREATE TABLE winedata (MonitorID TEXT NOT NULL PRIMARY KEY, Prefix TEXT NOT NULL, SavePath TEXT NOT NULL, BinaryPath TEXT NOT NULL);" + sSQL &= "PRAGMA user_version=118" RunParamQuery(sSQL, New Hashtable) diff --git a/GBM/Managers/mgrWineData.vb b/GBM/Managers/mgrWineData.vb new file mode 100644 index 0000000..151904f --- /dev/null +++ b/GBM/Managers/mgrWineData.vb @@ -0,0 +1,73 @@ +Public Class mgrWineData + + Private Shared Function MapToObject(ByVal dr As DataRow) As clsWineData + Dim oWineGame As New clsWineData + + oWineGame.MonitorID = CStr(dr("MonitorID")) + If Not IsDBNull(dr("Prefix")) Then oWineGame.Prefix = CStr(dr("Prefix")) + If Not IsDBNull(dr("SavePath")) Then oWineGame.Prefix = CStr(dr("SavePath")) + If Not IsDBNull(dr("BinaryPath")) Then oWineGame.Prefix = CStr(dr("BinaryPath")) + + Return oWineGame + End Function + + Private Shared Function SetCoreParameters(ByVal oWineGame As clsWineData) As Hashtable + Dim hshParams As New Hashtable + + hshParams.Add("MonitorID", oWineGame.MonitorID) + hshParams.Add("Prefix", oWineGame.Prefix) + hshParams.Add("SavePath", oWineGame.SavePath) + hshParams.Add("BinaryPath", oWineGame.BinaryPath) + + Return hshParams + End Function + + Public Shared Sub DoWineDataAddUpdate(ByVal oWineGame As clsWineData) + Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local) + Dim sSQL As String + Dim hshParams As Hashtable + + sSQL = "INSERT OR REPLACE INTO winedata VALUES (@MonitorID, @Prefix, @SavePath, @BinaryPath)" + + 'Parameters + hshParams = SetCoreParameters(oWineGame) + + oDatabase.RunParamQuery(sSQL, hshParams) + + End Sub + + Public Shared Sub DoWineDataDelete(ByVal sMonitorID As String) + Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local) + Dim sSQL As String + Dim hshParams As New Hashtable + + sSQL = "DELETE FROM winedata " + sSQL &= "WHERE MonitorID = @MonitorID;" + + hshParams.Add("MonitorID", sMonitorID) + + oDatabase.RunParamQuery(sSQL, hshParams) + + End Sub + + Public Shared Function DoWineDataGetbyID(ByVal sMonitorID As String) As clsWineData + Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local) + Dim sSQL As String + Dim oData As DataSet + Dim oWineData As New clsWineData + Dim hshParams As New Hashtable + + sSQL = "SELECT * FROM winedata " + sSQL &= "WHERE MonitorID = @MonitorID" + + hshParams.Add("MonitorID", sMonitorID) + + oData = oDatabase.ReadParamData(sSQL, hshParams) + + For Each dr As DataRow In oData.Tables(0).Rows + oWineData = MapToObject(dr) + Next + + Return oWineData + End Function +End Class