Monorepo/EDMDesigner/FrmMain.vb
Digital Data - Marlon Schreiber 379a36fba2 MS Loggername changed
2018-08-17 12:00:50 +02:00

149 lines
5.0 KiB
VB.net

Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Logging
Public Class FrmMain
Private SelectedTable As Integer
Private Logger As NLog.Logger
Private LogWrapper As LogConfig
Private DBFirebird As Firebird
Private Sub CreateTableNodesFromDatatable(dt As DataTable)
' Node der Datenbank erstellen
Dim dbNode As New TreeNode With {
.Text = My.Settings.fbDatabaseLocation
}
' Übernode für Tabellen erstellen
Dim tablesNode As New TreeNode With {
.Text = "Tabellen",
.Name = "TABLES"
}
' Nodes für Tabellen erstellen
Dim tableNodeList As New List(Of TreeNode)
For Each row As DataRow In dt.Rows
Dim node As New TreeNode With {
.Text = row.Item("TABLE"),
.Tag = row.Item("TABLE_ID")
}
tableNodeList.Add(node)
Next
' Nodes zusammenfügen
tablesNode.Nodes.AddRange(tableNodeList.ToArray)
dbNode.Nodes.Add(tablesNode)
' Nodes einhängen
treeViewMain.Nodes.Add(dbNode)
End Sub
Private Function LoadTables()
Return DBFirebird.GetDatatable("SELECT DISTINCT T.TABLE_ID,T.""TABLE"" from VWEDM_TABLE_COLUMN T")
End Function
Private Function DatabaseSettingsExist()
Return My.Settings.fbDatabaseLocation <> String.Empty And My.Settings.fbDatasource <> String.Empty And My.Settings.fbUser <> String.Empty And My.Settings.fbPassword <> String.Empty
End Function
Private Sub Init()
DBFirebird = New Firebird(My.Settings.fbDatasource, My.Settings.fbDatabaseLocation, My.Settings.fbUser, My.Settings.fbPassword)
If DBFirebird.ConnectionFailed Then
MsgBox("Database connection failed. Please check the log.", vbCritical)
Exit Sub
End If
' Get info about the logged in user
CurrentUser = New ClassCurrentUser(DBFirebird)
Dim dt As DataTable = LoadTables()
CreateTableNodesFromDatatable(dt)
End Sub
Private Sub FrmMain_Load(sender As Object, e As EventArgs) Handles Me.Load
LogWrapper = New LogConfig(ClassLogger.PathType.CurrentDirectory)
Logger = NLog.LogManager.GetCurrentClassLogger()
Logger.Debug("DEBUG1")
Logger.Debug("DEBUG2")
Logger.Debug("DEBUG3")
LogWrapper.Debug = False
Logger.Debug("DEBUG4")
Logger.Debug("DEBUG5")
Logger.Debug("DEBUG6")
LogWrapper.Debug = True
Logger.Debug("DEBUG7")
Logger.Debug("DEBUG8")
Logger.Debug("DEBUG9")
Logger.Info("Starting EDMDesigner..")
Logger.Error(New IO.FileNotFoundException("Central 66"), "This is Error!")
' Check for existing database credentials
While Not DatabaseSettingsExist()
Dim result As DialogResult = FrmConnection.ShowDialog()
If result = DialogResult.OK Then
Exit While
End If
End While
Init()
End Sub
Private Sub TreeViewMain_NodeMouseClick(sender As Object, e As TreeNodeMouseClickEventArgs) Handles treeViewMain.NodeMouseClick
If e.Button = MouseButtons.Right Then
SelectedTable = -1
' Wenn kein Node geklickt wurde, aussteigen
If e.Node Is Nothing OrElse e.Node.Parent Is Nothing Then
Exit Sub
End If
Dim parentName As String = e.Node.Parent.Name
' Das Kontextmenü für den angeklickten Node öffnen
Select Case parentName
Case "TABLES"
SelectedTable = e.Node.Tag
contextMenuTable.Show(MousePosition)
End Select
treeViewMain.SelectedNode = e.Node
End If
End Sub
Private Sub SpaltenBearbeitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SpaltenBearbeitenToolStripMenuItem.Click
Dim dt As DataTable = DBFirebird.GetDatatable($"SELECT * FROM VWEDM_TABLE_COLUMN WHERE TABLE_ID = {SelectedTable}")
gridControlTableProperties.DataSource = dt
End Sub
Private Sub TabelleBearbeitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles TabelleBearbeitenToolStripMenuItem.Click
End Sub
Private Sub DebugAnToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DebugAnToolStripMenuItem.Click
LogWrapper.Debug = True
End Sub
Private Sub DebugAusToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DebugAusToolStripMenuItem.Click
LogWrapper.Debug = False
End Sub
Private Sub WriteDebugLogToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles WriteDebugLogToolStripMenuItem.Click
Logger.Debug("Welcome to monkey island!")
End Sub
Private Sub SpamTheLogToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SpamTheLogToolStripMenuItem.Click
For index = 1 To 100000
Logger.Debug("Spam No. {0}", index)
Next
End Sub
End Class