Common: Improve BaseForms and ErrorHandler
This commit is contained in:
parent
72e639dc0c
commit
18786bee33
@ -14,9 +14,14 @@ Namespace Base
|
|||||||
_Form = Form
|
_Form = Form
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Sub ShowErrorMessage(Exception As Exception)
|
Public Sub ShowErrorMessage(Exception As Exception, Origin As String)
|
||||||
|
Dim oMessage = GetMessage(Exception, Origin)
|
||||||
|
ShowErrorMessage(Exception, Origin, oMessage)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub ShowErrorMessage(Exception As Exception, Origin As String, Message As String)
|
||||||
_Logger.Error(Exception)
|
_Logger.Error(Exception)
|
||||||
MessageBox.Show(GetMessage(Exception), _Form.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
|
MessageBox.Show(Message, _Form.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Sub ShowInfoMessage(Text As String)
|
Public Sub ShowInfoMessage(Text As String)
|
||||||
@ -24,8 +29,7 @@ Namespace Base
|
|||||||
MessageBox.Show(Text, _Form.Text, MessageBoxButtons.OK, MessageBoxIcon.Information)
|
MessageBox.Show(Text, _Form.Text, MessageBoxButtons.OK, MessageBoxIcon.Information)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Function GetMessage(Exception As Exception) As String
|
Private Function GetMessage(Exception As Exception, Origin As String) As String
|
||||||
Dim oCallingClass = LogConfig.GetClassFullName(IncludeMethodNames:=True, Parts:=2)
|
|
||||||
Dim oMessage As String = String.Empty
|
Dim oMessage As String = String.Empty
|
||||||
|
|
||||||
If TypeOf Exception Is SqlClient.SqlException Then
|
If TypeOf Exception Is SqlClient.SqlException Then
|
||||||
@ -37,13 +41,13 @@ Namespace Base
|
|||||||
ElseIf TypeOf Exception Is NoNullAllowedException Then
|
ElseIf TypeOf Exception Is NoNullAllowedException Then
|
||||||
oMessage = "Einige benötigte Felder wurde nicht ausgefüllt."
|
oMessage = "Einige benötigte Felder wurde nicht ausgefüllt."
|
||||||
Else
|
Else
|
||||||
oMessage = $"Es ist ein unerwarteter Fehler in {oCallingClass} aufgetreten. Mehr Informationen finden Sie im Log."
|
oMessage = $"An unhandled exception occurred in {Origin}: " & vbNewLine &
|
||||||
|
Exception.Message & vbNewLine & vbNewLine &
|
||||||
|
"More information can be found in the Application Log."
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If _LogConfig.Debug Then
|
If _LogConfig.Debug Then
|
||||||
oMessage &= vbNewLine & vbNewLine & "== Debug Informationen =="
|
oMessage &= vbNewLine & vbNewLine & "=== Debug Information ==="
|
||||||
oMessage &= vbNewLine & vbNewLine & "Die ursprüngliche Fehlermeldung lautet:"
|
|
||||||
oMessage &= vbNewLine & Exception.Message
|
|
||||||
oMessage &= vbNewLine & vbNewLine & "Stacktrace:"
|
oMessage &= vbNewLine & vbNewLine & "Stacktrace:"
|
||||||
oMessage &= vbNewLine & Exception.StackTrace
|
oMessage &= vbNewLine & Exception.StackTrace
|
||||||
End If
|
End If
|
||||||
|
|||||||
51
GUIs.Common/Base/BaseForm.vb
Normal file
51
GUIs.Common/Base/BaseForm.vb
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
|
||||||
|
Imports DevExpress.XtraEditors
|
||||||
|
Imports DigitalData.Modules.Logging
|
||||||
|
|
||||||
|
Namespace Base
|
||||||
|
Public Class BaseForm
|
||||||
|
Inherits XtraForm
|
||||||
|
|
||||||
|
Private ReadOnly _Logger As Logger
|
||||||
|
Private ReadOnly _ErrorHandler As BaseErrorHandler
|
||||||
|
|
||||||
|
Protected ReadOnly Property Logger As Logger
|
||||||
|
Get
|
||||||
|
Return _Logger
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public Sub New()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub New(LogConfig As LogConfig)
|
||||||
|
' Get the full name of the inheriting form
|
||||||
|
' so the log messages have the right classname
|
||||||
|
Dim oClassName = [GetType]().FullName
|
||||||
|
|
||||||
|
' My.LogConfig is undefined in the designer
|
||||||
|
_Logger = LogConfig.GetLogger(oClassName)
|
||||||
|
_ErrorHandler = New BaseErrorHandler(LogConfig, _Logger, Me)
|
||||||
|
|
||||||
|
' When you add something, be careful if it
|
||||||
|
' depends on a global var like My.LogConfig
|
||||||
|
' you might need to check for its existence with ?
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
''' ============== PUBLIC METHODS ==============
|
||||||
|
Public Sub ShowInfoMessage(Message As String)
|
||||||
|
_ErrorHandler.ShowInfoMessage(Message)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub ShowErrorMessage(Exception As Exception)
|
||||||
|
Dim oCallingClass = LogConfig.GetClassFullName(IncludeMethodNames:=True, Parts:=2)
|
||||||
|
_ErrorHandler.ShowErrorMessage(Exception, oCallingClass)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub ShowErrorMessage(ErrorMessage As String)
|
||||||
|
Dim oCallingClass = LogConfig.GetClassFullName(IncludeMethodNames:=True, Parts:=2)
|
||||||
|
_ErrorHandler.ShowErrorMessage(New ApplicationException(ErrorMessage), oCallingClass)
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
|
End Namespace
|
||||||
|
|
||||||
@ -5,14 +5,16 @@ Imports DigitalData.Modules.Logging
|
|||||||
Namespace Base
|
Namespace Base
|
||||||
''' <summary>
|
''' <summary>
|
||||||
''' This BaseClass is used to provide common functionality like the Logger or ErrorHandler to all Forms
|
''' This BaseClass is used to provide common functionality like the Logger or ErrorHandler to all Forms
|
||||||
''' To use it, create a form and change the `Inherits` statement in FormName.Designer.vb to this form, eg.:
|
''' </summary>
|
||||||
|
''' <example>
|
||||||
|
''' To use it, create a form and change the `Inherits` statement in FormName.Designer.vb to this form.
|
||||||
'''
|
'''
|
||||||
''' Partial Class frmExample
|
''' Partial Class frmExample
|
||||||
''' Inherits BaseRibbonForm
|
''' Inherits BaseRibbonForm
|
||||||
'''
|
'''
|
||||||
''' ...
|
''' ...
|
||||||
''' End Class
|
''' End Class
|
||||||
''' </summary>
|
''' </example>
|
||||||
Public Class BaseRibbonForm
|
Public Class BaseRibbonForm
|
||||||
Inherits RibbonForm
|
Inherits RibbonForm
|
||||||
|
|
||||||
@ -43,13 +45,18 @@ Namespace Base
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
''' ============== PUBLIC METHODS ==============
|
''' ============== PUBLIC METHODS ==============
|
||||||
|
Public Sub ShowInfoMessage(Message As String)
|
||||||
|
_ErrorHandler.ShowInfoMessage(Message)
|
||||||
|
End Sub
|
||||||
|
|
||||||
Public Sub ShowErrorMessage(Exception As Exception)
|
Public Sub ShowErrorMessage(Exception As Exception)
|
||||||
_ErrorHandler.ShowErrorMessage(Exception)
|
Dim oCallingClass = LogConfig.GetClassFullName(IncludeMethodNames:=True, Parts:=2)
|
||||||
|
_ErrorHandler.ShowErrorMessage(Exception, oCallingClass)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Sub ShowErrorMessage(ErrorMessage As String)
|
Public Sub ShowErrorMessage(ErrorMessage As String)
|
||||||
_ErrorHandler.ShowErrorMessage(New ApplicationException(ErrorMessage))
|
Dim oCallingClass = LogConfig.GetClassFullName(IncludeMethodNames:=True, Parts:=2)
|
||||||
|
_ErrorHandler.ShowErrorMessage(New ApplicationException(ErrorMessage), oCallingClass)
|
||||||
End Sub
|
End Sub
|
||||||
End Class
|
End Class
|
||||||
End Namespace
|
End Namespace
|
||||||
|
|||||||
@ -89,6 +89,9 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Base\BaseErrorHandler.vb" />
|
<Compile Include="Base\BaseErrorHandler.vb" />
|
||||||
|
<Compile Include="Base\BaseForm.vb">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Base\BaseResult.vb" />
|
<Compile Include="Base\BaseResult.vb" />
|
||||||
<Compile Include="Base\BaseRibbonForm.vb">
|
<Compile Include="Base\BaseRibbonForm.vb">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user