116 lines
4.8 KiB
VB.net
116 lines
4.8 KiB
VB.net
Imports DevExpress.XtraGrid.Views.Tile
|
|
Imports DigitalData.Modules.Database
|
|
Imports DigitalData.Modules.Logging
|
|
|
|
Public Class ChatNewConv
|
|
Public Delegate Sub ConversationCreated()
|
|
Public Event Conversation_Created As ConversationCreated
|
|
Private _Database As MSSQLServer
|
|
Private LogConfig As LogConfig
|
|
Private Logger As Logger
|
|
|
|
Public IDBObjectId As Long
|
|
Public ConnStringIDB As String
|
|
Public Username As String
|
|
Public UserID As Long
|
|
Public User_Language As String
|
|
Public NewConversation As Long
|
|
|
|
Public Sub New()
|
|
InitializeComponent()
|
|
End Sub
|
|
|
|
Public Sub Init(LogConfig As LogConfig, ConnectionStringIDB As String, IDB_OBJ_ID As Long, UserID As Long, Username As String, UserLanguage As String, DTUsers As DataTable, DTGroups As DataTable)
|
|
Me.LogConfig = LogConfig
|
|
Me.Logger = LogConfig.GetLogger()
|
|
Me.ConnStringIDB = ConnectionStringIDB
|
|
IDBObjectId = IDB_OBJ_ID
|
|
Me.Username = Username
|
|
Me.UserID = UserID
|
|
Me.User_Language = UserLanguage
|
|
Me._Database = New MSSQLServer(LogConfig, ConnectionStringIDB)
|
|
If Not IsNothing(DTUsers) Then
|
|
If DTUsers.Rows.Count > 1 Then
|
|
AccordionControlElementUser.Visible = True
|
|
GridControlUsers.DataSource = DTUsers
|
|
Else
|
|
AccordionControlElementUser.Visible = False
|
|
End If
|
|
Else
|
|
AccordionControlElementUser.Visible = False
|
|
End If
|
|
If Not IsNothing(DTGroups) Then
|
|
If DTGroups.Rows.Count > 1 Then
|
|
AccordionControlElementGroups.Visible = True
|
|
GridControlGroups.DataSource = DTUsers
|
|
Try
|
|
GridViewUsers.Columns("UserID").Visible = False
|
|
Catch ex As Exception
|
|
GridViewUsers.Columns("USER_ID").Visible = False
|
|
End Try
|
|
|
|
Else
|
|
AccordionControlElementGroups.Visible = False
|
|
End If
|
|
Else
|
|
AccordionControlElementGroups.Visible = False
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub SimpleButton1_Click(sender As Object, e As EventArgs) Handles SimpleButton1.Click
|
|
Try
|
|
If txtConv_Title.Text = String.Empty Then
|
|
MsgBox("Please add a conversation-title!", MsgBoxStyle.Information)
|
|
Exit Sub
|
|
End If
|
|
Dim oSQL = $"EXEC PRIDB_NEW_CONVERSATION {IDBObjectId},'{txtConv_Title.Text}','{Username}','{User_Language}'"
|
|
If _Database.ExecuteNonQuery(oSQL) = True Then
|
|
Dim oError As Boolean = False
|
|
oSQL = $"SELECT MAX(CONVERSATION_ID) FROM VWIDB_CONVERSATION WHERE IDB_OBJ_ID = {IDBObjectId}"
|
|
Dim oCONV_ID = _Database.GetScalarValue(oSQL)
|
|
If Not IsNothing(oCONV_ID) Then
|
|
NewConversation = oCONV_ID
|
|
oSQL = $"EXEC PRIDB_ADD_USER_2_CONVERSATION {NewConversation},{UserID},'{Username}'"
|
|
If _Database.ExecuteNonQuery(oSQL) = True Then
|
|
Dim oSelectedUsers As Integer() = GridViewUsers.GetSelectedRows()
|
|
If oSelectedUsers.Count > 0 Then
|
|
For Each oRowHandle As Integer In oSelectedUsers
|
|
Dim oUserID
|
|
Try
|
|
oUserID = GridViewUsers.GetRowCellValue(oRowHandle, "UserID")
|
|
Catch ex As Exception
|
|
Try
|
|
oUserID = GridViewUsers.GetRowCellValue(oRowHandle, "USER_ID")
|
|
Catch ex1 As Exception
|
|
Logger.Warn("Error Selecting UserID/USER_ID: " & ex.Message)
|
|
oError = True
|
|
Exit Sub
|
|
End Try
|
|
|
|
|
|
End Try
|
|
|
|
oSQL = $"EXEC PRIDB_ADD_USER_2_CONVERSATION {NewConversation},{oUserID},'{Username}'"
|
|
If _Database.ExecuteNonQuery(oSQL) = False Then
|
|
oError = True
|
|
Exit For
|
|
End If
|
|
Next
|
|
End If
|
|
If oError = False Then
|
|
RaiseEvent Conversation_Created()
|
|
End If
|
|
End If
|
|
|
|
End If
|
|
Else
|
|
MsgBox("Error running create procedure. Check Your log!", MsgBoxStyle.Information)
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
MsgBox($"Unexpected error in Add Conversation: {ex.Message}")
|
|
End Try
|
|
End Sub
|
|
End Class
|