Bugfixes, "Verbesserungen"
This commit is contained in:
310
Dokumentation/Classes/cHost.vb
Normal file
310
Dokumentation/Classes/cHost.vb
Normal file
@@ -0,0 +1,310 @@
|
||||
Imports System.Reflection
|
||||
|
||||
Public Class cHost
|
||||
Property FQDN As String = ""
|
||||
Property QINFO As String = ""
|
||||
Property IPAdresse As String = ""
|
||||
Property NETNAME As String = ""
|
||||
Property Seriennummer As String = ""
|
||||
Property MAC As String = ""
|
||||
Property Benutzer As String = ""
|
||||
Property Passwort As String = ""
|
||||
Property LINK As String = ""
|
||||
Property INFO As String = ""
|
||||
Property TYPE As String = ""
|
||||
Property HOST As Object = Nothing
|
||||
Property NWSTANDORT As String = ""
|
||||
Property Modell As String = ""
|
||||
Property Linked As Object = Nothing
|
||||
Property LinkedWith As String = ""
|
||||
Property AddIP As String = ""
|
||||
Property Standort As String = ""
|
||||
Property DHCP As String = ""
|
||||
Property Netzwerk As String = ""
|
||||
Property Firewall As Boolean = False
|
||||
|
||||
|
||||
|
||||
|
||||
Function getparameterlistMaster() As List(Of SQLVariable)
|
||||
Dim list As New List(Of SQLVariable)
|
||||
list.Add(New SQLVariable("FQDN", FQDN))
|
||||
list.Add(New SQLVariable("QINFO", QINFO))
|
||||
list.Add(New SQLVariable("IPAdresse", IPAdresse))
|
||||
list.Add(New SQLVariable("NETNAME", NETNAME))
|
||||
list.Add(New SQLVariable("Seriennummer", Seriennummer))
|
||||
list.Add(New SQLVariable("MAC", MAC))
|
||||
list.Add(New SQLVariable("Benutzer", Benutzer))
|
||||
list.Add(New SQLVariable("Passwort", Passwort))
|
||||
list.Add(New SQLVariable("Link", LINK))
|
||||
list.Add(New SQLVariable("INFO", INFO))
|
||||
list.Add(New SQLVariable("TYPE", TYPE))
|
||||
list.Add(New SQLVariable("HOST", HOST))
|
||||
list.Add(New SQLVariable("NWSTANDORT", NWSTANDORT))
|
||||
list.Add(New SQLVariable("Modell", Modell))
|
||||
list.Add(New SQLVariable("Linked", Linked))
|
||||
list.Add(New SQLVariable("LinkedWith", LinkedWith))
|
||||
list.Add(New SQLVariable("AddIP", AddIP))
|
||||
list.Add(New SQLVariable("Standort", Standort))
|
||||
list.Add(New SQLVariable("DHCP", DHCP))
|
||||
list.Add(New SQLVariable("Netzwerk", Netzwerk))
|
||||
list.Add(New SQLVariable("Firewall", Firewall))
|
||||
Return list
|
||||
|
||||
End Function
|
||||
|
||||
Function getparameterlistSlave() As List(Of SQLVariable)
|
||||
Dim list As New List(Of SQLVariable)
|
||||
list.Add(New SQLVariable("FQDN", FQDN))
|
||||
list.Add(New SQLVariable("QINFO", QINFO))
|
||||
list.Add(New SQLVariable("IPAdresse", IPAdresse))
|
||||
'list.Add(New SQLVariable("NETNAME", NETNAME))
|
||||
list.Add(New SQLVariable("Seriennummer", Seriennummer))
|
||||
list.Add(New SQLVariable("MAC", MAC))
|
||||
list.Add(New SQLVariable("Benutzer", Benutzer))
|
||||
list.Add(New SQLVariable("Passwort", Passwort))
|
||||
list.Add(New SQLVariable("Link", LINK))
|
||||
list.Add(New SQLVariable("INFO", INFO))
|
||||
list.Add(New SQLVariable("TYPE", TYPE))
|
||||
'list.Add(New SQLVariable("HOST", HOST))
|
||||
'list.Add(New SQLVariable("NWSTANDORT", NWSTANDORT))
|
||||
list.Add(New SQLVariable("Modell", Modell))
|
||||
'list.Add(New SQLVariable("Linked", Linked))
|
||||
list.Add(New SQLVariable("LinkedWith", LinkedWith))
|
||||
list.Add(New SQLVariable("AddIP", AddIP))
|
||||
list.Add(New SQLVariable("Standort", Standort))
|
||||
list.Add(New SQLVariable("DHCP", DHCP))
|
||||
'list.Add(New SQLVariable("Netzwerk", Netzwerk))
|
||||
list.Add(New SQLVariable("Firewall", Firewall))
|
||||
Return list
|
||||
|
||||
End Function
|
||||
|
||||
Function clear()
|
||||
Me.FQDN = ""
|
||||
Me.QINFO = ""
|
||||
Me.IPAdresse = ""
|
||||
Me.NETNAME = ""
|
||||
Me.Seriennummer = ""
|
||||
Me.MAC = ""
|
||||
Me.Benutzer = ""
|
||||
Me.Passwort = ""
|
||||
Me.LINK = ""
|
||||
Me.INFO = ""
|
||||
Me.TYPE = ""
|
||||
Me.HOST = Nothing
|
||||
Me.NWSTANDORT = ""
|
||||
Me.Modell = ""
|
||||
Me.Linked = Nothing
|
||||
Me.LinkedWith = ""
|
||||
Me.AddIP = ""
|
||||
Me.Standort = ""
|
||||
Me.DHCP = ""
|
||||
Me.Netzwerk = ""
|
||||
Me.Firewall = False
|
||||
End Function
|
||||
|
||||
Public Shared Function getHostsEntrys(ByRef ds As DataSet, ByVal HostIP As String)
|
||||
Dim selector As String = "Select
|
||||
[fwr_ID]
|
||||
,[fwr_in]
|
||||
,[fwr_out]
|
||||
,[fwr_portsin]
|
||||
,[fwr_portsout]
|
||||
,[fwr_dienste]
|
||||
,[fwr_FQDN]
|
||||
,[fwr_info]
|
||||
, case when [fwr_direct] is null then '0'
|
||||
else [fwr_direct] end as [fwr_direct]
|
||||
From [Doku].[dbo].[TbL_FirewallRules] where [fwr_hostip] = '" & HostIP & "'
|
||||
ORDER BY [fwr_in]"
|
||||
|
||||
SQL.SQL2DS(selector, ds)
|
||||
|
||||
End Function
|
||||
|
||||
Public Function gethost(ip As String)
|
||||
Dim ds As New DataSet
|
||||
Dim test As String = ""
|
||||
SQL.SQL2DS("select * from TbL_Netzwerkclients where IPAdresse = '" & ip & "'", ds)
|
||||
For Each c As DataColumn In ds.Tables(0).Columns
|
||||
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(c.ColumnName)
|
||||
If propInfo IsNot Nothing Then
|
||||
If Not IsDBNull(c.Table.Rows(0).Item(c)) Then
|
||||
propInfo.SetValue(Me, c.Table.Rows(0).Item(c))
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
' MsgBox("hier")
|
||||
End Function
|
||||
|
||||
Public Function getUpdateCmd(ByRef update As String, ByRef where As String, Optional ByRef slaveupdate As String = "", Optional ByRef slavewhere As String = "", Optional ByVal Linked As Boolean = False, Optional ByVal newhost As cHost = Nothing)
|
||||
If newhost Is Nothing Then
|
||||
slavewhere = ""
|
||||
Dim list As List(Of SQLVariable) = getparameterlistMaster()
|
||||
Dim slavelist As List(Of SQLVariable) = getparameterlistSlave()
|
||||
|
||||
For Each i In list ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''dieser Host
|
||||
If Not i.SQLText = "IPAdresse" Then
|
||||
update &= "[" & i.SQLText & "]='" & i.SQLValue & "',"
|
||||
Else
|
||||
where &= "IPAdresse = '" & i.SQLValue & "'"
|
||||
End If
|
||||
Next
|
||||
update = update.Substring(0, update.Length - 1) 'wg. ','
|
||||
|
||||
For Each i In slavelist ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''alle Hosts, bei denen dieser Host als LinkedWith eingetragen ist
|
||||
If Not i.SQLText = "IPAdresse" And Not i.SQLText = "LinkedWith" And Not i.SQLText = "NETNAME" And Not i.SQLText = "NWSTANDORT" And Not i.SQLText = "Netzwerk" Then
|
||||
slaveupdate &= "[" & i.SQLText & "]='" & i.SQLValue & "',"
|
||||
ElseIf i.SQLText = "IPAdresse" Then
|
||||
slavewhere &= "(Linked = 'True' AND (LinkedWith = '" & i.SQLValue & "'"
|
||||
End If
|
||||
Next
|
||||
slaveupdate = slaveupdate.Substring(0, slaveupdate.Length - 1)
|
||||
|
||||
If Linked = True Then '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||||
|
||||
For Each i In slavelist '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Masterhost
|
||||
If i.SQLText = "LinkedWith" Then
|
||||
slavewhere &= "OR LinkedWith = '" & i.SQLValue & "') OR IPAdresse = '" & i.SQLValue & "')"
|
||||
End If
|
||||
Next
|
||||
ElseIf Linked = False Then
|
||||
slavewhere &= "))"
|
||||
End If
|
||||
|
||||
Else
|
||||
|
||||
Dim list As List(Of SQLVariable) = newhost.getparameterlistMaster()
|
||||
|
||||
For Each i In list ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''dieser Host
|
||||
If Not i.SQLText = "IPAdresse" Then
|
||||
update &= "[" & i.SQLText & "]='" & i.SQLValue & "',"
|
||||
Else
|
||||
where &= "IPAdresse = '" & i.SQLValue & "'"
|
||||
End If
|
||||
Next
|
||||
update = update.Substring(0, update.Length - 1) 'wg. ','
|
||||
|
||||
End If
|
||||
|
||||
|
||||
End Function
|
||||
|
||||
Public Function updateHostEntry(ByRef entry As cHost)
|
||||
Dim update, where, slaveupdate, slavewhere As String
|
||||
getUpdateCmd(update, where, slaveupdate, slavewhere, Me.Linked)
|
||||
SQL.UpdateSQL("TbL_Netzwerkclients", update, where)
|
||||
SQL.UpdateSQL("TbL_Netzwerkclients", slaveupdate, slavewhere)
|
||||
'MsgBox(update & where)
|
||||
|
||||
End Function
|
||||
|
||||
Function checkIfIPExist(ByVal ip As String)
|
||||
Dim ds As New DataSet
|
||||
SQL.SQL2DS("SELECT * FROM TbL_Netzwerkclients WHERE IPADRESSE = '" & ip & "'", ds)
|
||||
If ds.Tables(0).Rows.Count > 0 Then
|
||||
Return True
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
End Function
|
||||
|
||||
Public Function DeleteHost(Optional ByVal supress As Boolean = False)
|
||||
If supress = False Then
|
||||
If MessageBox.Show("Eintrag " & Me.FQDN & " wirklich löschen?", "Hosteintrag löschen", MessageBoxButtons.OKCancel) = DialogResult.OK Then
|
||||
Dim ds As New DataSet
|
||||
Dim Slaves As String = ""
|
||||
SQL.SQL2DS("SELECT * FROM TbL_Netzwerkclients WHERE LinkedWith ='" & Me.IPAdresse & "'", ds)
|
||||
|
||||
If ds.Tables(0).Rows.Count > 0 Then
|
||||
For Each r As DataRow In ds.Tables(0).Rows
|
||||
Slaves &= r.Item("IPAdresse").ToString & vbCrLf
|
||||
Next
|
||||
|
||||
If MessageBox.Show("
|
||||
Achtung! " & vbCrLf & "Der Eintrag " & Me.FQDN & " ist ein MasterEintrag für die IP Adressen " & vbCrLf & Slaves & "
|
||||
Diese Einträge werden ebenfalls gelöscht. Fortfahren?", "Hosteintrag löschen", MessageBoxButtons.OKCancel) = DialogResult.OK Then
|
||||
SQL.DeleteSQL("TbL_Netzwerkclients", "LinkedWith = '" & Me.IPAdresse & "'")
|
||||
ElseIf DialogResult.Cancel Then
|
||||
Exit Function
|
||||
End If
|
||||
End If
|
||||
SQL.DeleteSQL("TbL_Netzwerkclients", "IPAdresse = '" & Me.IPAdresse & "'")
|
||||
Class1.RefillNW(Me.Netzwerk)
|
||||
ElseIf DialogResult.Cancel Then
|
||||
Exit Function
|
||||
End If
|
||||
Else
|
||||
SQL.DeleteSQL("TbL_Netzwerkclients", "IPAdresse = '" & Me.IPAdresse & "'")
|
||||
Class1.RefillNW(Me.Netzwerk)
|
||||
End If
|
||||
|
||||
End Function
|
||||
|
||||
Public Function MoveHost(newip As String)
|
||||
If checkIfIPExist(newip) = False Then MsgBox("Die Adresse kann nicht verwendet werden. Bitte überprüfen.") : Return Me : Exit Function
|
||||
|
||||
Dim oldip As String = Me.IPAdresse
|
||||
Dim newhost As New cHost
|
||||
newhost.gethost(newip)
|
||||
|
||||
'Get Slaves of LinkedMaster
|
||||
Dim ds As New DataSet
|
||||
SQL.SQL2DS("SELECT * FROM TbL_Netzwerkclients WHERE LinkedWith = '" & Me.IPAdresse & "'", ds)
|
||||
|
||||
'Ziel prüfen und gegebenenfalls anzeigen
|
||||
If (
|
||||
newhost.FQDN = "" And
|
||||
newhost.Modell = "" And
|
||||
newhost.TYPE = "") Then
|
||||
Else
|
||||
If MsgBox("Ziel ist bereits belegt. Anzeigen?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||
Me.gethost(newip)
|
||||
Else
|
||||
Me.gethost(oldip)
|
||||
End If
|
||||
Exit Function
|
||||
End If
|
||||
|
||||
'If Host = LinkedMaster then Update Slaves
|
||||
If ds.Tables(0).Rows.Count > 0 Then
|
||||
SQL.UpdateSQL("TbL_Netzwerkclients", "LinkedWith = '" & newip & "'", "LinkedWith = '" & oldip & "'")
|
||||
End If
|
||||
|
||||
newhost.FQDN = Me.FQDN
|
||||
newhost.QINFO = Me.QINFO
|
||||
newhost.Seriennummer = Me.Seriennummer
|
||||
newhost.MAC = Me.MAC
|
||||
newhost.Benutzer = Me.Benutzer
|
||||
newhost.Passwort = Me.Passwort
|
||||
newhost.LINK = Me.LINK
|
||||
newhost.INFO = Me.INFO
|
||||
newhost.TYPE = Me.TYPE
|
||||
newhost.Modell = Me.Modell
|
||||
newhost.Linked = Me.Linked
|
||||
newhost.LinkedWith = Me.LinkedWith
|
||||
newhost.AddIP = Me.AddIP
|
||||
newhost.Standort = Me.Standort
|
||||
newhost.DHCP = Me.DHCP
|
||||
newhost.Firewall = Me.Firewall
|
||||
|
||||
Dim update, where As String
|
||||
getUpdateCmd(update, where, "", "", newhost.Linked, newhost)
|
||||
SQL.UpdateSQL("TbL_Netzwerkclients", update, where)
|
||||
|
||||
cFolder.FolderMove(Me.NWSTANDORT & "_" & Me.NETNAME, Me.HOST, newhost.NWSTANDORT & "_" & newhost.NETNAME, newhost.HOST)
|
||||
|
||||
Me.DeleteHost(True)
|
||||
Return newhost
|
||||
|
||||
End Function
|
||||
|
||||
Public Shared Function getSlaves(ByVal ip As String, ByRef ds As DataSet)
|
||||
|
||||
SQL.SQL2DS("SELECT IPAdresse , (NWSTANDORT + ' ' + NETNAME) as Netzwerk FROM TbL_Netzwerkclients WHERE LinkedWith = '" & ip & "'", ds)
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
End Class
|
||||
Reference in New Issue
Block a user