You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

185 lines
5.0 KiB

Imports System.Data
Imports System.Data.SqlClient
'''<summary>Diese klasse beinhaltet die Logik für die Meldungstext</summary>
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"
'''<summary>Erstellt eine neue Instanz für einen bestehenen Meldungstext</summary>
'''<param name="meldungsTextNr"></param>
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"
'''<summary>Gibt den Inhalt einer Melungs zurück</summary>
'''<param name="meldungsTextNr"></param>
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