227 lines
8.7 KiB
VB.net
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
|