Imports System.Drawing Imports System.Threading Imports DigitalData.Controls.DocumentViewer Imports DigitalData.Modules.EDMI.API Imports DigitalData.Modules.Logging Imports DigitalData.Modules.ZooFlow.Constants Public Class frmNotification_Startup Private ReadOnly Property LogConfig As LogConfig Private ReadOnly Property Logger As Logger Private ReadOnly _NotificationsTable As DataTable Private ReadOnly _Environment As DigitalData.Modules.ZooFlow.Environment Private ReadOnly _GDPictureKey As String Private ReadOnly _FormCaption As String Private NOTIFY_ID As Integer Private Property OperationMode As OperationMode Private Client As Client Friend Class NotificationItem Public Id As Integer Public Title As String Public MSGSTRING As String Public Overrides Function ToString() As String Return Title End Function End Class Public Sub New(DTNotifications As DataTable, pLogConfig As LogConfig, pGDPictureKey As String, pCaption As String, pEnvironment As DigitalData.Modules.ZooFlow.Environment) _NotificationsTable = DTNotifications LogConfig = pLogConfig Logger = pLogConfig.GetLogger() _GDPictureKey = pGDPictureKey _FormCaption = pCaption _Environment = pEnvironment ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() Try ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. Dim cultureInfo As System.Globalization.CultureInfo cultureInfo = New System.Globalization.CultureInfo(_Environment.User.Language) cultureInfo.DateTimeFormat.ShortDatePattern = _Environment.User.DateFormat Thread.CurrentThread.CurrentCulture = cultureInfo Thread.CurrentThread.CurrentUICulture = cultureInfo Catch ex As Exception End Try End Sub Private Sub frmNotification_Startup_Load(sender As Object, e As EventArgs) Handles Me.Load Try DocumentViewer1.Init(LogConfig, _GDPictureKey, New DigitalData.Controls.DocumentViewer.DocumentViewer.ToolbarSettings() With { .ShowPrintButton = True, .ShowRotateButton = True, .ShowFlipButton = True, .ShowSettingButton = True }) OperationMode = GetOperationMode() Client = _Environment.Service.Client Me.Text = _FormCaption If _NotificationsTable.Rows.Count = 1 Then Me.ListBoxControl1.Visible = False Load_Profile(_NotificationsTable.Rows(0).Item("GUID")) Else ListBoxControl1.DataSource = _NotificationsTable ListBoxControl1.ValueMember = "GUID" ListBoxControl1.DisplayMember = "TITLE" End If Catch ex As Exception Dim oMsgBox As New frmDialog(ex.Message, "Unexpected Error loading form:", frmDialog.DialogType.Error) oMsgBox.ShowDialog() End Try End Sub Sub Load_Profile(oIndex As Integer) Try DocumentViewer1.Visible = False RichEditControl1.Visible = False Dim oType As String, oMSG_STRING As String, oMarkasRead As Boolean If _NotificationsTable.Rows.Count = 1 Then Dim oRow As DataRow = _NotificationsTable.Rows(0) oType = oRow.Item("DISPLAY_TYPE") oMSG_STRING = oRow.Item("MSG_STRING") oMarkasRead = oRow.Item("VALIDATE_READ") NOTIFY_ID = oRow.Item("GUID") Else Dim oCount As Integer = 0 For Each oRow As DataRow In _NotificationsTable.Rows If oIndex = oCount Then oType = oRow.Item("DISPLAY_TYPE") oMSG_STRING = oRow.Item("MSG_STRING") oMarkasRead = oRow.Item("VALIDATE_READ") NOTIFY_ID = oRow.Item("GUID") Exit For Else oCount += 1 End If Next End If If oType.ToUpper = "MESSAGE" Then RichEditControl1.Text = oMSG_STRING RichEditControl1.Visible = True RichEditControl1.Dock = Windows.Forms.DockStyle.Fill Else If IO.File.Exists(oMSG_STRING) Then DocumentViewer1.LoadFile(oMSG_STRING) DocumentViewer1.Visible = True DocumentViewer1.Dock = Windows.Forms.DockStyle.Fill Else Dim oMsgBox As New frmDialog($"File [{oMSG_STRING}] not existing!", "Load Notification File", frmDialog.DialogType.Warning) oMsgBox.ShowDialog() End If End If If oMarkasRead = True Then btnMarkAsRead.Visibility = DevExpress.XtraBars.BarItemVisibility.Always Else btnMarkAsRead.Visibility = DevExpress.XtraBars.BarItemVisibility.Never End If Catch ex As Exception Dim oMsgBox As New frmDialog(ex.Message, "Unexpected Error loading Message:", frmDialog.DialogType.Error) oMsgBox.ShowDialog() End Try End Sub Private Sub ListBoxControl1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBoxControl1.SelectedValueChanged If ListBoxControl1.SelectedIndex <> -1 Then Try Load_Profile(ListBoxControl1.SelectedIndex) Catch ex As Exception Dim oMsgBox As New frmDialog(ex.Message, "Unexpected Error switching Notifications:", frmDialog.DialogType.Error) oMsgBox.ShowDialog() End Try End If End Sub Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnCloseForm.ItemClick Me.Close() End Sub Private Sub btnMarkAsRead_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnMarkAsRead.ItemClick Dim oSuccess As Boolean = True Try Dim oSQL = $"INSERT INTO [dbo].[TBDD_NOTIFICATIONS_USER_HISTORY] ([NOTIFY_ID], [USR_ID]) VALUES ({NOTIFY_ID} ,{_Environment.User.UserId})" If OperationMode = OperationMode.ZooFlow Or OperationMode = OperationMode.WithAppServer Then Dim oResponse = Client.ExecuteNonQueryFromECM(oSQL) If Not oResponse.OK Then oSuccess = False End If Else oSuccess = _Environment.Database.ExecuteNonQuery(oSQL) End If If oSuccess = False Then lbStatus.Caption = "Error while setting History!" lbStatus.ItemAppearance.Normal.BackColor = Color.Red lbStatus.Visibility = DevExpress.XtraBars.BarItemVisibility.Always Else lbStatus.Caption = "History successfully saved!" lbStatus.ItemAppearance.Normal.BackColor = Color.Green lbStatus.Visibility = DevExpress.XtraBars.BarItemVisibility.Always If _NotificationsTable.Rows.Count = 1 Then Me.Close() End If End If Catch ex As Exception Dim oMsgBox As New frmDialog(ex.Message, "Unexpected Error HistoryInsert:", frmDialog.DialogType.Error) oMsgBox.ShowDialog() oSuccess = False End Try End Sub Private Function GetOperationMode() As OperationMode Dim oOperationMode As OperationMode If _Environment.Service.Client?.IsOnline AndAlso _Environment.Service.Address <> String.Empty Then oOperationMode = OperationMode.WithAppServer Else oOperationMode = OperationMode.NoAppServer End If Return oOperationMode End Function End Class