Imports System.Data.SqlClient ''' ''' Adapter für Edoka Datenbank auf dem SQL Server ''' Public Class EdokaSqlDb Public Sub New(connectionString As String) Me.ConnectionString = connectionString End Sub Public Function GetDokumentStatusBezeichnungsNr(dokumentId As String) As Integer Dim ret As Integer = 0 Using connection As New SqlConnection(ConnectionString), cmd As SqlCommand = New SqlCommand("select top 1 ds.status_bezeichnungnr from dbo.statushistory sh inner join dbo.dokument_status ds on ds.dokument_statusnr = sh.status where dokumentid = @dokumentid order by sh.erstellt_am desc", connection), DataTable As DataTable = New DataTable(), sqlDataAdapter As SqlDataAdapter = New SqlDataAdapter() cmd.Parameters.AddWithValue("@dokumentid", dokumentId) sqlDataAdapter.SelectCommand = cmd sqlDataAdapter.Fill(DataTable) If DataTable.Rows.Count = 1 Then ret = DataTable.Rows(0)(0) End If End Using Return ret End Function Public Function IsDokumentAbgeschlossen(dokumentId As String) As Boolean Dim ret As Boolean = False Dim dokumentStatusBezeichnungsNr As Integer = GetDokumentStatusBezeichnungsNr(dokumentId) If dokumentStatusBezeichnungsNr = -2 Then ret = True Return ret End Function Public Function IsDokumentAufgehoben(dokumentId As String) As Boolean Dim ret As Boolean = False Dim dokumentStatusBezeichnungsNr As Integer = GetDokumentStatusBezeichnungsNr(dokumentId) If dokumentStatusBezeichnungsNr = -3 Then ret = True Return ret End Function ''' ''' gemäss Stackoverflow https://stackoverflow.com/a/10373384 ''' ''' ''' ''' Public Sub SendMail(ByVal email As String, ByVal betreff As String, ByVal meldung As String) If meldung.Length > 1020 Then meldung = meldung.Substring(0, 1020) Using connection As New SqlConnection(ConnectionString), cmd As SqlCommand = New SqlCommand("dbo.sp_sendmail", connection) connection.Open() cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.AddWithValue("@email", email) cmd.Parameters.AddWithValue("@betreff", betreff) cmd.Parameters.AddWithValue("@meldung", meldung) cmd.ExecuteNonQuery() End Using End Sub Public Sub CancelDocument(ByVal dokumentId As String, ByVal meldung As String) Using connection As New SqlConnection(ConnectionString), cmd As SqlCommand = New SqlCommand("dbo.sp_dokument_aufheben_nach_dokumentid", connection) connection.Open() cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.AddWithValue("@dokumentid", dokumentId) cmd.Parameters.AddWithValue("@Meldung ", meldung) cmd.ExecuteNonQuery() End Using End Sub Property ConnectionString As String End Class