Modules/GUIs.Common/FormHelper.vb

65 lines
2.4 KiB
VB.net

Imports DigitalData.Modules.Logging
Imports System.Windows.Forms
Public Class FormHelper
Private ReadOnly LogConfig As LogConfig
Private ReadOnly Logger As Logger
Private ReadOnly Form As Form
Public Sub New(pLogConfig As LogConfig, pForm As Form)
LogConfig = pLogConfig
Logger = pLogConfig.GetLogger()
Form = pForm
End Sub
Public Function ShowInfoMessage(pMessage As String, pTitle As String) As DialogResult
Logger.Info(pMessage)
Return ShowMessage(pMessage, pTitle, frmDialog.DialogType.Info)
End Function
Public Function ShowErrorMessage(pException As Exception, pTitle As String) As DialogResult
Logger.Error(pException)
Dim oMethodName = GetMethodName()
Dim oBaseMessage = "In der Funktion '{0}' ist folgender Fehler aufgetreten: {1}"
Dim oMessage = String.Format(oBaseMessage, oMethodName, vbNewLine & vbNewLine & pException.Message)
If LogConfig.Debug Then
oMessage &= vbNewLine & vbNewLine & "=== Debug Information ==="
oMessage &= vbNewLine & vbNewLine & "Stacktrace:"
oMessage &= vbNewLine & pException.StackTrace
End If
Return ShowMessage(oMessage, pTitle, frmDialog.DialogType.Error)
End Function
Public Function ShowWarningMessage(pMessage As String, pTitle As String) As DialogResult
Logger.Info(pTitle & " - " & pMessage)
Return ShowMessage(pMessage, pTitle, frmDialog.DialogType.Warning)
End Function
Public Function ShowQuestionMessage(pMessage As String, pTitle As String) As DialogResult
Logger.Info(pTitle & " - " & pMessage)
Return ShowMessage(pMessage, pTitle, frmDialog.DialogType.Question)
End Function
Public Function ShowSuccessMessage(pMessage As String, pTitle As String) As DialogResult
Logger.Info(pTitle & " - " & pMessage)
Return ShowMessage(pMessage, pTitle, frmDialog.DialogType.Success)
End Function
Private Function ShowMessage(pMessage As String, pTitle As String, pType As frmDialog.DialogType) As DialogResult
Dim oForm As New frmDialog(pMessage, pTitle, pType)
oForm.BringToFront()
oForm.TopMost = True
Return oForm.ShowDialog()
End Function
Private Function GetMethodName() As String
Dim oStackTrace As New StackTrace()
Dim oMethodName As String = oStackTrace.GetFrame(2).GetMethod.Name
Return oMethodName
End Function
End Class