Files
GBM/GBM/Managers/mgrProcess.vb

153 lines
4.6 KiB
VB.net

Public Class mgrProcess
Private Shared Function MapToObject(ByVal dr As DataRow) As clsProcess
Dim oProcess As New clsProcess
oProcess.ID = CStr(dr("ProcessID"))
oProcess.Name = CStr(dr("Name"))
oProcess.Path = CStr(dr("Path"))
If Not IsDBNull(dr("Args")) Then oProcess.Args = CStr(dr("Args"))
oProcess.Kill = CBool(dr("Kill"))
Return oProcess
End Function
Private Shared Function SetCoreParameters(ByVal oProcess As clsProcess) As Hashtable
Dim hshParams As New Hashtable
hshParams.Add("ProcessID", oProcess.ID)
hshParams.Add("Name", oProcess.Name)
hshParams.Add("Path", oProcess.Path)
hshParams.Add("Args", oProcess.Args)
hshParams.Add("Kill", oProcess.Kill)
Return hshParams
End Function
Public Shared Sub DoProcessAdd(ByVal oProcess As clsProcess)
Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local)
Dim sSQL As String
Dim hshParams As Hashtable
sSQL = "INSERT INTO processes VALUES (@ProcessID, @Name, @Path, @Args, @Kill)"
hshParams = SetCoreParameters(oProcess)
oDatabase.RunParamQuery(sSQL, hshParams)
End Sub
Public Shared Sub DoProcessUpdate(ByVal oProcess As clsProcess)
Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local)
Dim sSQL As String
Dim hshParams As Hashtable
sSQL = "UPDATE processes SET Name=@Name, Path=@Path, Args=@Args, Kill=@Kill "
sSQL &= "WHERE ProcessID = @ProcessID"
hshParams = SetCoreParameters(oProcess)
oDatabase.RunParamQuery(sSQL, hshParams)
End Sub
Public Shared Sub DoProcessDelete(ByVal sProcessID As String)
Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local)
Dim sSQL As String
Dim hshParams As New Hashtable
sSQL = "DELETE FROM gameprocesses "
sSQL &= "WHERE ProcessID = @ProcessID;"
sSQL &= "DELETE FROM processes "
sSQL &= "WHERE ProcessID = @ProcessID;"
hshParams.Add("ProcessID", sProcessID)
oDatabase.RunParamQuery(sSQL, hshParams)
End Sub
Public Shared Function DoProcessGetbyID(ByVal sProcessID As String) As clsProcess
Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local)
Dim sSQL As String
Dim oData As DataSet
Dim oProcess As New clsProcess
Dim hshParams As New Hashtable
sSQL = "SELECT * FROM processes "
sSQL &= "WHERE ProcessID = @ProcessID"
hshParams.Add("ProcessID", sProcessID)
oData = oDatabase.ReadParamData(sSQL, hshParams)
For Each dr As DataRow In oData.Tables(0).Rows
oProcess = MapToObject(dr)
Next
Return oProcess
End Function
Public Shared Function DoProcessGetbyName(ByVal sProcessName As String) As clsProcess
Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local)
Dim sSQL As String
Dim oData As DataSet
Dim oProcess As New clsProcess
Dim hshParams As New Hashtable
sSQL = "SELECT * FROM processes "
sSQL &= "WHERE Name = @Name"
hshParams.Add("Name", sProcessName)
oData = oDatabase.ReadParamData(sSQL, hshParams)
For Each dr As DataRow In oData.Tables(0).Rows
oProcess = MapToObject(dr)
Next
Return oProcess
End Function
Public Shared Function DoCheckDuplicate(ByVal sName As String, Optional ByVal sExcludeID As String = "") As Boolean
Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local)
Dim sSQL As String
Dim oData As DataSet
Dim hshParams As New Hashtable
sSQL = "SELECT * FROM processes "
sSQL &= "WHERE Name = @Name"
hshParams.Add("Name", sName)
If sExcludeID <> String.Empty Then
sSQL &= " AND ProcessID <> @ProcessID"
hshParams.Add("ProcessID", sExcludeID)
End If
oData = oDatabase.ReadParamData(sSQL, hshParams)
If oData.Tables(0).Rows.Count > 0 Then
Return True
Else
Return False
End If
End Function
Public Shared Function ReadProcesses() As Hashtable
Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local)
Dim oData As DataSet
Dim sSQL As String
Dim hshList As New Hashtable
Dim oProcess As clsProcess
sSQL = "SELECT * from processes"
oData = oDatabase.ReadParamData(sSQL, New Hashtable)
For Each dr As DataRow In oData.Tables(0).Rows
oProcess = MapToObject(dr)
hshList.Add(oProcess.Name, oProcess)
Next
Return hshList
End Function
End Class