WIP: cleanup, work on doc result form
This commit is contained in:
67
GUIs.Common/Base/ClassMessageBox.vb
Normal file
67
GUIs.Common/Base/ClassMessageBox.vb
Normal file
@@ -0,0 +1,67 @@
|
||||
Imports System.Reflection
|
||||
Imports System.Windows.Forms
|
||||
Imports DigitalData.Modules.Logging
|
||||
|
||||
Namespace Base
|
||||
Public Class ClassMessageBox
|
||||
Private _Logger As Logger
|
||||
Private _Form As Form
|
||||
|
||||
Private Const UNKNOWN_METHOD = "Unknown Method"
|
||||
Private Const UNKNOWN_FORM = "Unknown Form"
|
||||
|
||||
Public Sub New(Logger As Logger, Form As Form)
|
||||
_Logger = Logger
|
||||
_Form = Form
|
||||
End Sub
|
||||
|
||||
Public Sub ShowErrorMessage(Exception As Exception)
|
||||
_Logger.Error(Exception)
|
||||
MsgBox(GetMessage(Exception), MsgBoxStyle.Critical, _Form.Text)
|
||||
End Sub
|
||||
|
||||
Private Function GetMessage(Exception As Exception) As String
|
||||
Dim oTargetSite = Exception.TargetSite
|
||||
Dim oMethodName = GetMethodName(Exception)
|
||||
Dim oFormName = GetFormName(Exception)
|
||||
Dim oMessage As String = String.Empty
|
||||
|
||||
oMessage &= $"Form: {oFormName}{vbNewLine}"
|
||||
oMessage &= $"Method: {oMethodName}{vbNewLine}"
|
||||
|
||||
If Not String.IsNullOrEmpty(Exception.StackTrace) Then
|
||||
oMessage &= $"Message: {Exception.Message}{vbNewLine}{vbNewLine}"
|
||||
End If
|
||||
|
||||
If Not String.IsNullOrEmpty(Exception.StackTrace) Then
|
||||
oMessage &= $"Stacktrace: {Exception.StackTrace}{vbNewLine}"
|
||||
End If
|
||||
|
||||
oMessage &= $"{vbNewLine}"
|
||||
oMessage &= $"Please report this error to error@digitaldata.works"
|
||||
|
||||
Return oMessage
|
||||
End Function
|
||||
|
||||
Private Function GetMethodName(Exception As Exception) As String
|
||||
Dim oMethodName = Exception.TargetSite?.ReflectedType?.Name
|
||||
|
||||
If oMethodName Is Nothing Then
|
||||
Return UNKNOWN_METHOD
|
||||
Else
|
||||
Return oMethodName
|
||||
End If
|
||||
End Function
|
||||
|
||||
Private Function GetFormName(Exception As Exception) As String
|
||||
Dim oFormName = Exception.TargetSite?.ReflectedType?.ReflectedType?.Name
|
||||
|
||||
If oFormName Is Nothing Then
|
||||
Return UNKNOWN_FORM
|
||||
Else
|
||||
Return oFormName
|
||||
End If
|
||||
End Function
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
Reference in New Issue
Block a user