184 lines
5.6 KiB
VB.net
184 lines
5.6 KiB
VB.net
Public Class mgrVariables
|
|
|
|
Private Shared Function MapToObject(ByVal dr As DataRow) As clsPathVariable
|
|
Dim oCustomVariable As New clsPathVariable
|
|
|
|
oCustomVariable.ID = CStr(dr("VariableID"))
|
|
oCustomVariable.Name = CStr(dr("Name"))
|
|
oCustomVariable.Path = CStr(dr("Path"))
|
|
|
|
Return oCustomVariable
|
|
End Function
|
|
|
|
Private Shared Function SetCoreParameters(ByVal oCustomVariable As clsPathVariable) As Hashtable
|
|
Dim hshParams As New Hashtable
|
|
|
|
hshParams.Add("ID", oCustomVariable.ID)
|
|
hshParams.Add("Name", oCustomVariable.Name)
|
|
hshParams.Add("Path", oCustomVariable.Path)
|
|
|
|
Return hshParams
|
|
End Function
|
|
|
|
Public Shared Sub DoPathUpdate(ByVal sOld As String, ByVal sNew As String)
|
|
Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local)
|
|
Dim sSQL As String
|
|
Dim hshParams As New Hashtable
|
|
|
|
sSQL = "UPDATE monitorlist SET Path = replace(Path, @Old, @New) WHERE Path LIKE @Match"
|
|
hshParams.Add("Old", sOld)
|
|
hshParams.Add("New", sNew)
|
|
hshParams.Add("Match", sOld & "%")
|
|
oDatabase.RunParamQuery(sSQL, hshParams)
|
|
End Sub
|
|
|
|
Public Shared Sub DoVariableAdd(ByVal oCustomVariable As clsPathVariable)
|
|
Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local)
|
|
Dim sSQL As String
|
|
Dim hshParams As Hashtable
|
|
|
|
sSQL = "INSERT INTO variables VALUES (@ID, @Name, @Path)"
|
|
hshParams = SetCoreParameters(oCustomVariable)
|
|
oDatabase.RunParamQuery(sSQL, hshParams)
|
|
End Sub
|
|
|
|
Public Shared Sub DoVariableUpdate(ByVal oCustomVariable As clsPathVariable)
|
|
Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local)
|
|
Dim sSQL As String
|
|
Dim hshParams As Hashtable
|
|
|
|
sSQL = "UPDATE variables SET Name=@Name, Path = @Path "
|
|
sSQL &= "WHERE VariableID = @ID"
|
|
|
|
hshParams = SetCoreParameters(oCustomVariable)
|
|
|
|
oDatabase.RunParamQuery(sSQL, hshParams)
|
|
|
|
End Sub
|
|
|
|
Public Shared Sub DoVariableDelete(ByVal sVariableID As String)
|
|
Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local)
|
|
Dim sSQL As String
|
|
Dim hshParams As New Hashtable
|
|
|
|
sSQL = "DELETE FROM variables "
|
|
sSQL &= "WHERE VariableID = @ID"
|
|
|
|
hshParams.Add("ID", sVariableID)
|
|
|
|
oDatabase.RunParamQuery(sSQL, hshParams)
|
|
|
|
End Sub
|
|
|
|
Public Shared Function DoVariableGetbyID(ByVal sVariableID As String) As clsPathVariable
|
|
Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local)
|
|
Dim sSQL As String
|
|
Dim oData As DataSet
|
|
Dim oCustomVariable As New clsPathVariable
|
|
Dim hshParams As New Hashtable
|
|
|
|
sSQL = "SELECT * FROM variables "
|
|
sSQL &= "WHERE VariableID = @ID"
|
|
|
|
hshParams.Add("ID", sVariableID)
|
|
|
|
oData = oDatabase.ReadParamData(sSQL, hshParams)
|
|
|
|
For Each dr As DataRow In oData.Tables(0).Rows
|
|
oCustomVariable = MapToObject(dr)
|
|
Next
|
|
|
|
Return oCustomVariable
|
|
End Function
|
|
|
|
Public Shared Function DoVariableGetbyName(ByVal sVariableName As String) As clsPathVariable
|
|
Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local)
|
|
Dim sSQL As String
|
|
Dim oData As DataSet
|
|
Dim oCustomVariable As New clsPathVariable
|
|
Dim hshParams As New Hashtable
|
|
|
|
sSQL = "SELECT * FROM variables "
|
|
sSQL &= "WHERE Name = @Name"
|
|
|
|
hshParams.Add("Name", sVariableName)
|
|
|
|
oData = oDatabase.ReadParamData(sSQL, hshParams)
|
|
|
|
For Each dr As DataRow In oData.Tables(0).Rows
|
|
oCustomVariable = MapToObject(dr)
|
|
Next
|
|
|
|
Return oCustomVariable
|
|
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 variables "
|
|
sSQL &= "WHERE Name = @Name"
|
|
|
|
hshParams.Add("Name", sName)
|
|
|
|
If sExcludeID <> String.Empty Then
|
|
sSQL &= " AND VariableID <> @VariableID"
|
|
hshParams.Add("VariableID", 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 ReadVariables() As Hashtable
|
|
Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local)
|
|
Dim oData As DataSet
|
|
Dim sSQL As String
|
|
Dim hshList As New Hashtable
|
|
Dim oCustomVariable As clsPathVariable
|
|
|
|
sSQL = "SELECT * from variables"
|
|
oData = oDatabase.ReadParamData(sSQL, New Hashtable)
|
|
|
|
For Each dr As DataRow In oData.Tables(0).Rows
|
|
oCustomVariable = MapToObject(dr)
|
|
hshList.Add(oCustomVariable.Name, oCustomVariable)
|
|
Next
|
|
|
|
Return hshList
|
|
End Function
|
|
|
|
Public Shared Function GetReservedVariables() As List(Of String)
|
|
Dim oList As New List(Of String)
|
|
|
|
oList.Add("APPDATA")
|
|
oList.Add("LOCALAPPDATA")
|
|
oList.Add("USERDOCUMENTS")
|
|
oList.Add("COMMONDOCUMENTS")
|
|
oList.Add("USERPROFILE")
|
|
oList.Add("PROGRAMDATA")
|
|
|
|
Return oList
|
|
End Function
|
|
|
|
Public Shared Function CheckForReservedVariables(ByVal sPath As String) As Boolean
|
|
Dim s As String
|
|
|
|
For Each s In GetReservedVariables()
|
|
s = "%" & s & "%"
|
|
If sPath.Contains(s) Then
|
|
Return True
|
|
End If
|
|
Next
|
|
|
|
Return False
|
|
End Function
|
|
End Class
|