Imports System.Data Imports System.Data.SqlClient '''Diese klasse beinhaltet die Logik für die Meldungstext Public Class Meldungstext #Region "Members" Private Shared _meldungstexte As New Hashtable() Private _meldungsTextNr As Integer Private _spracheNr As Integer Private _inhalt As String Private _beschreibungs As String Private _isAktiv As Boolean Private _erstelltAm As DateTime Private _mutiertAm As DateTime Private _mutiertMitarbeiterNr As Integer Private _mandantNr As Integer #End Region #Region "Constructor" '''Erstellt eine neue Instanz für einen bestehenen Meldungstext ''' Public Sub New(ByVal meldungsTextNr As Integer) Try Select Case LoadDataFromCache(meldungsTextNr) Case 0 'found in cache Case 1 'caching is disabled LoadData(meldungsTextNr) 'from db Case 2 'not found in cache LoadData(meldungsTextNr) 'from db _meldungstexte.Add(meldungsTextNr, Me) 'hinzufügen da nicht vorhanden End Select Catch ex As Exception Throw ex End Try End Sub #End Region #Region "Private methods" Private Sub LoadData(ByVal meldungsTextNr As Integer) Try Dim ds As New DataSet() DataAccess.Meldungstext.GetById(meldungsTextNr, ds) If Common.Tools.ValidateDS(ds) Then _meldungsTextNr = Convert.ToInt32(ds.Tables(0).Rows(0)("meldungstextnr")) _spracheNr = Convert.ToInt32(ds.Tables(0).Rows(0)("Sprache")) _inhalt = ds.Tables(0).Rows(0)("inhalt") _beschreibungs = ds.Tables(0).Rows(0)("beschreibung") _isAktiv = Convert.ToBoolean(ds.Tables(0).Rows(0)("aktiv")) _erstelltAm = Convert.ToDateTime(ds.Tables(0).Rows(0)("erstellt_am")) _mutiertAm = Convert.ToDateTime(ds.Tables(0).Rows(0)("mutiert_am")) _mutiertMitarbeiterNr = Convert.ToInt32(ds.Tables(0).Rows(0)("mutierer")) _mandantNr = Convert.ToInt32(ds.Tables(0).Rows(0)("mandantnr")) End If If _meldungsTextNr = 0 Then 'meldung nicht gefunden in db TKBLib.Errorhandling.TraceHelper.Msg("EDOKALib.BF.Meldungstext.New", "Achtung Meldungstext wurde nicht gefunden! MeldungstextNr: " & CStr(meldungsTextNr), TraceLevel.Warning) End If Catch ex As Exception TKBLib.Errorhandling.TraceHelper.Msg("EDOKALib.Meldungstext.LoadData", ex.Message + " " + ex.StackTrace, TraceLevel.Error) Throw ex End Try End Sub Private Function LoadDataFromCache(ByVal meldungsTextNr As Integer) As Integer Try Dim source As Meldungstext If Config.GetParameterValue("CacheMeldungstexte") = 1 Then 'cache is enabled source = _meldungstexte.Item(meldungsTextNr) If Not source Is Nothing Then _meldungsTextNr = source.MeldungsTextNr _spracheNr = source.SpracheNr _inhalt = source.Inhalt _beschreibungs = source.Beschreibung _isAktiv = source.IsAktiv _erstelltAm = source.ErstelltAm _mutiertAm = source.MutiertAm _mutiertMitarbeiterNr = source.MutiertMitarbeiterNr _mandantNr = source.MandantNr Return 0 Else Return 2 'not found End If End If Return 1 'caching is disabled Catch ex As Exception TKBLib.Errorhandling.TraceHelper.Msg("EDOKALib.Meldungstext.LoadDataFromCache", ex.Message + " " + ex.StackTrace, TraceLevel.Error) Throw ex End Try End Function #End Region #Region "Public methods" '''Gibt den Inhalt einer Melungs zurück ''' Public Overloads Shared Function GetInhaltById(ByVal meldungsTextNr As Integer) As String Try Dim meldung As New Meldungstext(meldungsTextNr) If meldung.MeldungsTextNr = 0 Then Return "Der MeldungsText mit der Id " + meldungsTextNr.ToString() + " wurde nicht gefunden." Else Return meldung.Inhalt End If Catch ex As Exception Throw ex End Try End Function #End Region #Region "Properties" Public ReadOnly Property MeldungsTextNr() As Integer Get Return _meldungsTextNr End Get End Property Public ReadOnly Property SpracheNr() As String Get Return _spracheNr End Get End Property Public ReadOnly Property Inhalt() As String Get Return _inhalt End Get End Property Public ReadOnly Property Beschreibung() As String Get Return _beschreibungs End Get End Property Public ReadOnly Property IsAktiv() As Boolean Get Return _isAktiv End Get End Property Public ReadOnly Property ErstelltAm() As DateTime Get Return _erstelltAm End Get End Property Public ReadOnly Property MutiertAm() As DateTime Get Return _mutiertAm End Get End Property Public ReadOnly Property MutiertMitarbeiterNr() As Integer Get Return _mutiertMitarbeiterNr End Get End Property Public ReadOnly Property MandantNr() As Integer Get Return _mandantNr End Get End Property #End Region End Class