update NLog to 4.7.2
This commit is contained in:
115
Controls.ChatControl/ChatControl.vb
Normal file
115
Controls.ChatControl/ChatControl.vb
Normal file
@@ -0,0 +1,115 @@
|
||||
Imports DevExpress.XtraGrid.Views.Tile
|
||||
Imports DigitalData.Modules.Database
|
||||
Imports DigitalData.Modules.Logging
|
||||
|
||||
Public Class ChatControl
|
||||
Private ReadOnly IdColumn As String = "ID"
|
||||
Private ReadOnly UsernameColumn As String = "USERNAME"
|
||||
Private ReadOnly MessageColumn As String = "MESSAGE"
|
||||
Private ReadOnly DateColumn As String = "DATE"
|
||||
|
||||
Private Db As MSSQLServer
|
||||
Private LogConfig As LogConfig
|
||||
Private Logger As Logger
|
||||
|
||||
Private ReadOnly UsernameColorsDict As New Dictionary(Of String, Color)
|
||||
Private ReadOnly UsernameColors As New List(Of Color) From {
|
||||
Color.Purple,
|
||||
Color.Red,
|
||||
Color.LightBlue,
|
||||
Color.DarkSeaGreen
|
||||
}
|
||||
|
||||
Public IDBObjectId As Long
|
||||
Public ConnectionString As String
|
||||
|
||||
Public Sub New()
|
||||
InitializeComponent()
|
||||
End Sub
|
||||
|
||||
Public Sub Init(ConnectionString As String, IDBObjectId As Long, CurrentUser As String)
|
||||
|
||||
End Sub
|
||||
|
||||
Public Function InitData() As DataTable
|
||||
Dim oDatatable As New DataTable()
|
||||
Dim oColumns As New List(Of DataColumn) From {
|
||||
New DataColumn(IdColumn, New Integer.GetType),
|
||||
New DataColumn(UsernameColumn),
|
||||
New DataColumn(MessageColumn),
|
||||
New DataColumn(DateColumn, New Date.GetType)
|
||||
}
|
||||
oDatatable.Columns.AddRange(oColumns.ToArray)
|
||||
|
||||
Dim oRow1 = oDatatable.NewRow()
|
||||
With oRow1
|
||||
.Item(IdColumn) = 0
|
||||
.Item(UsernameColumn) = "Jonathan"
|
||||
.Item(MessageColumn) = "Hi"
|
||||
.Item(DateColumn) = Now.AddMinutes(-10).ToShortTimeString
|
||||
End With
|
||||
|
||||
Dim oRow2 = oDatatable.NewRow()
|
||||
With oRow2
|
||||
.Item(IdColumn) = 0
|
||||
.Item(UsernameColumn) = "Marlon"
|
||||
.Item(MessageColumn) = "Was geht?"
|
||||
.Item(DateColumn) = Now.ToShortTimeString
|
||||
End With
|
||||
|
||||
oDatatable.Rows.Add(oRow1)
|
||||
oDatatable.Rows.Add(oRow2)
|
||||
oDatatable.AcceptChanges()
|
||||
|
||||
Return oDatatable
|
||||
End Function
|
||||
|
||||
Private Sub ChatControl_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
Dim oDatatable = InitData()
|
||||
|
||||
BuildUsernameColorDict(oDatatable)
|
||||
|
||||
GridChat.DataSource = ChatSource
|
||||
ChatSource.DataSource = oDatatable
|
||||
End Sub
|
||||
|
||||
Private Sub BuildUsernameColorDict(Datatable As DataTable)
|
||||
Dim oIndex = 0
|
||||
|
||||
Datatable.AsEnumerable().
|
||||
Select(Function(Row) Row.Item(UsernameColumn)).
|
||||
Distinct().ToList().
|
||||
ForEach(Sub(Name)
|
||||
UsernameColorsDict.Add(Name, UsernameColors.Item(oIndex))
|
||||
oIndex += 1
|
||||
End Sub)
|
||||
End Sub
|
||||
|
||||
Private Sub ChatView_CustomItemTemplate(sender As Object, e As DevExpress.XtraGrid.Views.Tile.TileViewCustomItemTemplateEventArgs) Handles ChatView.CustomItemTemplate
|
||||
Dim oRow As DataRow = ChatView.GetDataRow(e.RowHandle)
|
||||
Dim oUsername As String = oRow.Item(UsernameColumn)
|
||||
|
||||
If oUsername = "Jonathan" Then
|
||||
e.Template = e.Templates.Item("ChatRight")
|
||||
Else
|
||||
e.Template = e.Templates.Item("ChatLeft")
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub ChatView_ItemCustomize(sender As Object, e As TileViewItemCustomizeEventArgs) Handles ChatView.ItemCustomize
|
||||
Dim oRow As DataRow = ChatView.GetDataRow(e.RowHandle)
|
||||
Dim oUsername As String = oRow.Item(UsernameColumn)
|
||||
Dim oColor As Color = UsernameColorsDict.Item(oUsername)
|
||||
|
||||
If oUsername = "Jonathan" Then
|
||||
e.Item.AppearanceItem.Normal.BackColor = Color.LightGray
|
||||
End If
|
||||
e.Item.Item(UsernameColumn).Appearance.Normal.ForeColor = oColor
|
||||
End Sub
|
||||
|
||||
Private Sub txtMessage_KeyUp(sender As Object, e As KeyEventArgs) Handles txtMessage.KeyUp
|
||||
If e.Control And e.KeyCode = Keys.Enter Then
|
||||
|
||||
End If
|
||||
End Sub
|
||||
End Class
|
||||
Reference in New Issue
Block a user