Module ModuleHelperMethods
    ''' <summary>
    ''' Überprüft einen Wert auf verschiedene Arten von "Null" und gibt einen Standard-Wert zurück, wenn der Wert "Null" ist.
    ''' </summary>
    ''' <param name="value">Der zu überprüfende Wert</param>
    ''' <param name="defaultValue">Der Standard Wert</param>
    ''' <returns>value oder wenn dieser "Null" ist, defaultValue</returns>
    Public Function NotNull(Of T)(ByVal value As T, ByVal defaultValue As T) As T
        If IsNothing(value) OrElse String.IsNullOrEmpty(value.ToString) OrElse IsDBNull(value) Then
            Return defaultValue
        Else
            Return value
        End If
    End Function

    ''' <summary>
    ''' Versucht einen String in einen Boolean zu konvertieren
    ''' </summary>
    ''' <param name="str">Der zu konvertierende String</param>
    ''' <returns>Den umgewandelten Wert oder False</returns>
    Public Function StrToBool(str As String) As Boolean
        Dim result As Boolean = False

        Try
            result = Convert.ToBoolean(str)
        Catch ex As Exception
            LOGGER.Error(ex)
            result = False
        End Try

        Return result
    End Function

    ''' <summary>
    ''' Konvertiert eine Farbe in den entsprechenden Integer Wert
    ''' </summary>
    Public Function ColorToInt(color As Color) As Integer
        Return ColorTranslator.ToWin32(color)
    End Function

    ''' <summary>
    ''' Konvertiert eine Zahl in die entsprechende Farbe
    ''' </summary>
    Public Function IntToColor(int As Integer) As Color
        Return ColorTranslator.FromWin32(int)
    End Function

    Public Function PrepareLogMessage(LogMessage As String) As String
        Dim oLogSplit As String()
        oLogSplit = LogMessage.Split("|")

        If oLogSplit.Count < 3 Then
            Return LogMessage
        Else
            Dim omsg = oLogSplit(2).
                Replace("'", "''").
                Replace("\\n", "").
                Replace(Chr(13), "").
                Replace(Chr(10), "")
            Return omsg
        End If
    End Function
End Module


