Monorepo/GUIs.Common/frmNotification_Startup.vb
Jonathan Jenne 4b0ffcc98c Revert "Common frmNotification class names"
This reverts commit f24354addfd569235d1b7307881c0006b7b78dea.
2022-11-08 08:29:06 +01:00

227 lines
8.7 KiB
VB.net

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 ReadOnly FormHelper As FormHelper
Private CurrentNotificationId As Integer
Private Property OperationMode As OperationMode
Private Client As Client
Private Const COL_GUID As String = "GUID"
Private Const COL_TITLE As String = "TITLE"
Private Const TYPE_MESSAGE = "MESSAGE"
Private Const TYPE_FILE = "FILE"
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(pNotificationsTable As DataTable, pLogConfig As LogConfig, pGDPictureKey As String, pCaption As String, pEnvironment As DigitalData.Modules.ZooFlow.Environment)
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
_NotificationsTable = pNotificationsTable
_GDPictureKey = pGDPictureKey
_FormCaption = pCaption
_Environment = pEnvironment
LogConfig = pLogConfig
Logger = pLogConfig.GetLogger()
FormHelper = New FormHelper(pLogConfig, Me)
Try
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
Dim cultureInfo As System.Globalization.CultureInfo
cultureInfo = New System.Globalization.CultureInfo(_Environment.User.Language)
If Not IsNothing(_Environment.User.DateFormat) Then
cultureInfo.DateTimeFormat.ShortDatePattern = _Environment.User.DateFormat
End If
Thread.CurrentThread.CurrentCulture = cultureInfo
Thread.CurrentThread.CurrentUICulture = cultureInfo
Catch ex As Exception
End Try
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
Private Sub frmNotification_Startup_Load(sender As Object, e As EventArgs) Handles Me.Load
Try
DocumentViewer1.Init(LogConfig, _GDPictureKey)
OperationMode = GetOperationMode()
Client = _Environment.Service.Client
Text = _FormCaption
lbStatus.Caption = ""
If _NotificationsTable.Rows.Count = 1 Then
Me.ListBoxControl1.Visible = False
Load_Profile(_NotificationsTable.Rows(0).Item(COL_GUID))
Else
ListBoxControl1.DataSource = _NotificationsTable
ListBoxControl1.ValueMember = COL_GUID
ListBoxControl1.DisplayMember = COL_TITLE
End If
Catch ex As Exception
FormHelper.ShowErrorMessage(ex.Message, "Unexpected error loading form")
End Try
End Sub
Sub Load_Profile(oIndex As Integer)
Try
DocumentViewer1.Visible = False
RichEditControl1.Visible = False
Dim oType As String, oMessage As String, oMarkasRead As Boolean
Dim oRow = _NotificationsTable.AsEnumerable.
Where(Function(row) row.Item(COL_GUID) = oIndex).
FirstOrDefault()
If oRow Is Nothing Then
FormHelper.ShowWarningMessage("Notification with Guid [{0}] could not be loaded!", "Unexpected error loading message")
Exit Sub
End If
oType = oRow.Item("DISPLAY_TYPE")
oMessage = oRow.Item("MSG_STRING")
oMarkasRead = oRow.Item("VALIDATE_READ")
CurrentNotificationId = oRow.Item(COL_GUID)
'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")
' CurrentNotificationId = oRow.Item(COL_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")
' CurrentNotificationId = oRow.Item(COL_GUID)
' Exit For
' Else
' oCount += 1
' End If
' Next
'End If
If oType = TYPE_MESSAGE Then
RichEditControl1.Text = oMessage
RichEditControl1.Visible = True
RichEditControl1.Dock = Windows.Forms.DockStyle.Fill
BarStaticItemFileInfo.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
ElseIf oType = TYPE_FILE Then
If IO.File.Exists(oMessage) Then
DocumentViewer1.LoadFile(oMessage)
DocumentViewer1.Visible = True
DocumentViewer1.Dock = Windows.Forms.DockStyle.Fill
BarStaticItemFileInfo.Caption = oMessage
Else
Dim oMsgBox As New frmDialog("File not existing!", "Load Notification File", frmDialog.DialogType.Warning)
oMsgBox.ShowDialog()
BarStaticItemFileInfo.Caption += " - NOT EXISTING"
End If
BarStaticItemFileInfo.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
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
FormHelper.ShowErrorMessage(ex.Message, "Unexpected error loading message")
End Try
End Sub
Private Sub ListBoxControl1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBoxControl1.SelectedValueChanged
If ListBoxControl1.SelectedItem Is Nothing Then
Exit Sub
End If
Try
Dim oRowView As DataRowView = ListBoxControl1.SelectedItem
Dim oGuid = oRowView.Row.Item(COL_GUID)
Load_Profile(oGuid)
Catch ex As Exception
FormHelper.ShowErrorMessage(ex.Message, "Unexpected error switching notifications")
End Try
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
Try
Dim oSuccess As Boolean = True
Dim oSQL = $"INSERT INTO [dbo].[TBDD_NOTIFICATIONS_USER_HISTORY] ([NOTIFY_ID], [USR_ID]) VALUES ({CurrentNotificationId} ,{_Environment.User.UserId})"
If OperationMode = OperationMode.ZooFlow Or OperationMode = OperationMode.WithAppServer Then
Dim oResponse = Client.ExecuteNonQueryFromECM(oSQL)
oSuccess = oResponse.OK
Else
oSuccess = _Environment.Database.ExecuteNonQuery(oSQL)
End If
If oSuccess = False Then
lbStatus.Caption = "Error while setting History!"
lbStatus.ItemAppearance.Normal.BackColor = Color.Red
Else
lbStatus.Caption = "History successfully saved!"
lbStatus.ItemAppearance.Normal.BackColor = Color.Green
If _NotificationsTable.Rows.Count = 1 Then
Me.Close()
End If
End If
Catch ex As Exception
FormHelper.ShowErrorMessage(ex.Message, "Unexpected error writing history")
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