This commit is contained in:
Developer01
2025-11-13 10:27:02 +01:00
parent 5b001aee03
commit 6eafe9d53a
24 changed files with 274 additions and 265 deletions

View File

@@ -366,4 +366,55 @@ Public Class ClassAllgemeineFunktionen
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error saving log file")
End Try
End Sub
Public Shared Function NotNull(Of T)(value As Object, defaultValue As T) As T
If value Is Nothing OrElse Convert.IsDBNull(value) Then
Return defaultValue
End If
' Versuche den Wert in den gewünschten Typ zu konvertieren
Try
Return CType(value, T)
Catch ex As InvalidCastException
' Falls die Konvertierung fehlschlägt, gib den Default zurück
Return defaultValue
End Try
End Function
Public Shared Function NotNullNullable(Of T As Structure)(value As Object, defaultValue As Nullable(Of T)) As Nullable(Of T)
If value Is Nothing OrElse Convert.IsDBNull(value) Then
Return defaultValue
End If
Try
' Direkte Casts sind robust, wandeln aber DBNull nicht das ist bereits oben abgefangen.
Return DirectCast(value, Nullable(Of T))
Catch
Try
' Fallback: in T casten und zu Nullable machen
Return New Nullable(Of T)(DirectCast(value, T))
Catch
Return defaultValue
End Try
End Try
End Function
Public Shared Function NotNullString(value As Object, defaultValue As Object) As String
If value Is Nothing OrElse Convert.IsDBNull(value) Then Return defaultValue
Return CStr(value)
End Function
Public Shared Function NotNullDate(value As Object, defaultValue As DateTime) As DateTime?
If value Is Nothing OrElse Convert.IsDBNull(value) Then Return defaultValue
Return DirectCast(value, DateTime)
End Function
Public Shared Function NewShortGuid() As String
' Neue GUID erzeugen
Dim g As Guid = Guid.NewGuid()
' In Base64 umwandeln
Dim b64 As String = Convert.ToBase64String(g.ToByteArray())
' Unerwünschte Zeichen ersetzen/entfernen
b64 = b64.Replace("=", "").Replace("+", "-").Replace("/", "_")
' Ergebnis zurückgeben
Return b64
End Function
End Class