diff --git a/ChatTest/ChatTest.vbproj b/ChatTest/ChatTest.vbproj
index 0498b6b5..44fd2d82 100644
--- a/ChatTest/ChatTest.vbproj
+++ b/ChatTest/ChatTest.vbproj
@@ -134,6 +134,10 @@
{1f278760-4f6b-42e8-b82d-01d4c8618340}
ChatControl
+
+ {903b2d7d-3b80-4be9-8713-7447b704e1b0}
+ Logging
+
\ No newline at end of file
diff --git a/ChatTest/Form1.vb b/ChatTest/Form1.vb
index 17d65956..75c486cb 100644
--- a/ChatTest/Form1.vb
+++ b/ChatTest/Form1.vb
@@ -1,3 +1,11 @@
-Public Class Form1
+Imports DigitalData.Modules.Logging
+Public Class Form1
+ Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
+ Dim oLogConfig As New LogConfig(LogConfig.PathType.CustomPath, Application.StartupPath)
+ Dim oConnectionString = "Server=sDD-VMP04-SQL17\DD_DEVELOP01;Database=IDB_TEST;User Id=sa;Password=dd;"
+
+ ChatControl1.Init(oLogConfig, oConnectionString, "JenneJ")
+ ChatControl1.LoadConversations(10070)
+ End Sub
End Class
diff --git a/Controls.ChatControl/ChatControl.Designer.vb b/Controls.ChatControl/ChatControl.Designer.vb
index 87731564..f76e724b 100644
--- a/Controls.ChatControl/ChatControl.Designer.vb
+++ b/Controls.ChatControl/ChatControl.Designer.vb
@@ -43,39 +43,50 @@ Partial Class ChatControl
Dim TableColumnDefinition12 As DevExpress.XtraEditors.TableLayout.TableColumnDefinition = New DevExpress.XtraEditors.TableLayout.TableColumnDefinition()
Dim TableRowDefinition11 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition()
Dim TableRowDefinition12 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition()
+ Dim EditorButtonImageOptions2 As DevExpress.XtraEditors.Controls.EditorButtonImageOptions = New DevExpress.XtraEditors.Controls.EditorButtonImageOptions()
+ Dim SerializableAppearanceObject5 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
+ Dim SerializableAppearanceObject6 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
+ Dim SerializableAppearanceObject7 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
+ Dim SerializableAppearanceObject8 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
+ Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(ChatControl))
Me.columnUsername = New DevExpress.XtraGrid.Columns.TileViewColumn()
Me.columnMessage = New DevExpress.XtraGrid.Columns.TileViewColumn()
Me.columnDate = New DevExpress.XtraGrid.Columns.TileViewColumn()
Me.SplitContainerControl1 = New DevExpress.XtraEditors.SplitContainerControl()
Me.GridChat = New DevExpress.XtraGrid.GridControl()
Me.ChatView = New DevExpress.XtraGrid.Views.Tile.TileView()
+ Me.lookupConversations = New DigitalData.Controls.LookupGrid.LookupControl2()
+ Me.LookupControl21View = New DevExpress.XtraGrid.Views.Grid.GridView()
Me.txtMessage = New DevExpress.XtraEditors.MemoEdit()
+ Me.btnSendMessage = New DevExpress.XtraEditors.SimpleButton()
Me.ChatSource = New System.Windows.Forms.BindingSource(Me.components)
CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainerControl1.SuspendLayout()
CType(Me.GridChat, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.ChatView, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.lookupConversations.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.LookupControl21View, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.txtMessage.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.ChatSource, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'columnUsername
'
- Me.columnUsername.FieldName = "USERNAME"
+ Me.columnUsername.FieldName = "USER_FROM"
Me.columnUsername.Name = "columnUsername"
Me.columnUsername.Visible = True
Me.columnUsername.VisibleIndex = 1
'
'columnMessage
'
- Me.columnMessage.FieldName = "MESSAGE"
+ Me.columnMessage.FieldName = "MESSAGE_TEXT"
Me.columnMessage.Name = "columnMessage"
Me.columnMessage.Visible = True
Me.columnMessage.VisibleIndex = 0
'
'columnDate
'
- Me.columnDate.FieldName = "DATE"
+ Me.columnDate.FieldName = "ADDED_WHEN"
Me.columnDate.Name = "columnDate"
Me.columnDate.Visible = True
Me.columnDate.VisibleIndex = 2
@@ -89,8 +100,10 @@ Partial Class ChatControl
Me.SplitContainerControl1.Location = New System.Drawing.Point(0, 0)
Me.SplitContainerControl1.Name = "SplitContainerControl1"
Me.SplitContainerControl1.Panel1.Controls.Add(Me.GridChat)
+ Me.SplitContainerControl1.Panel1.Controls.Add(Me.lookupConversations)
Me.SplitContainerControl1.Panel1.Text = "Panel1"
Me.SplitContainerControl1.Panel2.Controls.Add(Me.txtMessage)
+ Me.SplitContainerControl1.Panel2.Controls.Add(Me.btnSendMessage)
Me.SplitContainerControl1.Panel2.Text = "Panel2"
Me.SplitContainerControl1.Size = New System.Drawing.Size(317, 314)
Me.SplitContainerControl1.SplitterPosition = 50
@@ -100,10 +113,10 @@ Partial Class ChatControl
'
Me.GridChat.Dock = System.Windows.Forms.DockStyle.Fill
Me.GridChat.Font = New System.Drawing.Font("Segoe UI", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
- Me.GridChat.Location = New System.Drawing.Point(0, 0)
+ Me.GridChat.Location = New System.Drawing.Point(0, 20)
Me.GridChat.MainView = Me.ChatView
Me.GridChat.Name = "GridChat"
- Me.GridChat.Size = New System.Drawing.Size(317, 254)
+ Me.GridChat.Size = New System.Drawing.Size(317, 234)
Me.GridChat.TabIndex = 0
Me.GridChat.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.ChatView})
'
@@ -120,7 +133,7 @@ Partial Class ChatControl
Me.ChatView.OptionsTiles.LayoutMode = DevExpress.XtraGrid.Views.Tile.TileViewLayoutMode.List
Me.ChatView.OptionsTiles.Orientation = System.Windows.Forms.Orientation.Vertical
Me.ChatView.OptionsTiles.RowCount = 0
- Me.ChatView.OptionsTiles.ScrollMode = DevExpress.XtraEditors.TileControlScrollMode.ScrollButtons
+ Me.ChatView.OptionsTiles.ScrollMode = DevExpress.XtraEditors.TileControlScrollMode.ScrollBar
TableColumnDefinition7.Length.Value = 250.0R
TableColumnDefinition8.Length.Value = 100.0R
ItemTemplate3.Columns.Add(TableColumnDefinition7)
@@ -193,6 +206,29 @@ Partial Class ChatControl
Me.ChatView.TileRows.Add(TableRowDefinition11)
Me.ChatView.TileRows.Add(TableRowDefinition12)
'
+ 'lookupConversations
+ '
+ Me.lookupConversations.AllowAddNewValues = False
+ Me.lookupConversations.DataSource = Nothing
+ Me.lookupConversations.Dock = System.Windows.Forms.DockStyle.Top
+ Me.lookupConversations.Location = New System.Drawing.Point(0, 0)
+ Me.lookupConversations.MultiSelect = False
+ Me.lookupConversations.Name = "lookupConversations"
+ Me.lookupConversations.PreventDuplicates = False
+ Me.lookupConversations.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Ellipsis, "", -1, True, True, False, EditorButtonImageOptions2, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject5, SerializableAppearanceObject6, SerializableAppearanceObject7, SerializableAppearanceObject8, "", "openLookupForm", Nothing, DevExpress.Utils.ToolTipAnchor.[Default])})
+ Me.lookupConversations.Properties.NullText = ""
+ Me.lookupConversations.Properties.PopupView = Me.LookupControl21View
+ Me.lookupConversations.SelectedValues = CType(resources.GetObject("lookupConversations.SelectedValues"), System.Collections.Generic.List(Of String))
+ Me.lookupConversations.Size = New System.Drawing.Size(317, 20)
+ Me.lookupConversations.TabIndex = 1
+ '
+ 'LookupControl21View
+ '
+ Me.LookupControl21View.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus
+ Me.LookupControl21View.Name = "LookupControl21View"
+ Me.LookupControl21View.OptionsSelection.EnableAppearanceFocusedCell = False
+ Me.LookupControl21View.OptionsView.ShowGroupPanel = False
+ '
'txtMessage
'
Me.txtMessage.Dock = System.Windows.Forms.DockStyle.Fill
@@ -200,9 +236,20 @@ Partial Class ChatControl
Me.txtMessage.Name = "txtMessage"
Me.txtMessage.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.txtMessage.Properties.Appearance.Options.UseFont = True
- Me.txtMessage.Size = New System.Drawing.Size(317, 50)
+ Me.txtMessage.Size = New System.Drawing.Size(275, 50)
Me.txtMessage.TabIndex = 1
'
+ 'btnSendMessage
+ '
+ Me.btnSendMessage.Dock = System.Windows.Forms.DockStyle.Right
+ Me.btnSendMessage.ImageOptions.Location = DevExpress.XtraEditors.ImageLocation.MiddleCenter
+ Me.btnSendMessage.ImageOptions.SvgImage = CType(resources.GetObject("SimpleButton1.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
+ Me.btnSendMessage.Location = New System.Drawing.Point(275, 0)
+ Me.btnSendMessage.Name = "btnSendMessage"
+ Me.btnSendMessage.PaintStyle = DevExpress.XtraEditors.Controls.PaintStyles.Light
+ Me.btnSendMessage.Size = New System.Drawing.Size(42, 50)
+ Me.btnSendMessage.TabIndex = 2
+ '
'ChatControl
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -214,6 +261,8 @@ Partial Class ChatControl
Me.SplitContainerControl1.ResumeLayout(False)
CType(Me.GridChat, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.ChatView, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.lookupConversations.Properties, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.LookupControl21View, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.txtMessage.Properties, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.ChatSource, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
@@ -228,4 +277,7 @@ Partial Class ChatControl
Friend WithEvents columnUsername As DevExpress.XtraGrid.Columns.TileViewColumn
Friend WithEvents columnDate As DevExpress.XtraGrid.Columns.TileViewColumn
Friend WithEvents ChatSource As BindingSource
+ Friend WithEvents lookupConversations As LookupGrid.LookupControl2
+ Friend WithEvents LookupControl21View As DevExpress.XtraGrid.Views.Grid.GridView
+ Friend WithEvents btnSendMessage As DevExpress.XtraEditors.SimpleButton
End Class
diff --git a/Controls.ChatControl/ChatControl.resx b/Controls.ChatControl/ChatControl.resx
index ce02ca62..78a566c9 100644
--- a/Controls.ChatControl/ChatControl.resx
+++ b/Controls.ChatControl/ChatControl.resx
@@ -117,6 +117,31 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u
+ ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u
+ PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB
+ AAAAMFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZwMAAAAGX2l0
+ ZW1zBV9zaXplCF92ZXJzaW9uBgAACAgCAAAACQMAAAAAAAAAAAAAABEDAAAAAAAAAAs=
+
+
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z
+ LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+ dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALcBAAAC77u/
+ PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+ IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+ MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+ Y2U9InByZXNlcnZlIiBpZD0iTmV4dCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzIg
+ MzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KPC9zdHls
+ ZT4NCiAgPHBhdGggZD0iTTguOSw0LjFDOC40LDMuOCw4LDQuMSw4LDQuNnYyMC43YzAsMC42LDAuNCww
+ LjgsMC45LDAuNWwxNi44LTEwLjNjMC41LTAuMywwLjUtMC44LDAtMS4xTDguOSw0LjF6IiBjbGFzcz0i
+ Qmx1ZSIgLz4NCjwvc3ZnPgs=
+
+
17, 17
diff --git a/Controls.ChatControl/ChatControl.vb b/Controls.ChatControl/ChatControl.vb
index c8ab2553..5772cbbb 100644
--- a/Controls.ChatControl/ChatControl.vb
+++ b/Controls.ChatControl/ChatControl.vb
@@ -3,10 +3,10 @@ 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 ReadOnly IdColumn As String = "GUID"
+ Private ReadOnly UsernameColumn As String = "USER_FROM"
+ Private ReadOnly MessageColumn As String = "MESSAGE_TEXT"
+ Private ReadOnly DateColumn As String = "ADDED_WHEN"
Private Db As MSSQLServer
Private LogConfig As LogConfig
@@ -22,50 +22,31 @@ Public Class ChatControl
Public IDBObjectId As Long
Public ConnectionString As String
+ Public CurrentUser As String
+ Public CurrentConversation As Long
Public Sub New()
InitializeComponent()
End Sub
- Public Sub Init(ConnectionString As String, IDBObjectId As Long, CurrentUser As String)
-
+ Public Sub Init(LogConfig As LogConfig, ConnectionString As String, CurrentUser As String)
+ Me.LogConfig = LogConfig
+ Me.Logger = LogConfig.GetLogger()
+ Me.ConnectionString = ConnectionString
+ Me.CurrentUser = CurrentUser
+ Me.Db = New MSSQLServer(LogConfig, ConnectionString)
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)
+ Public Sub LoadConversations(IDBObjectId As Long)
+ Dim oSQL As String = $"SELECT * FROM VWIDB_CONVERSATION WHERE IDB_OBJ_ID = {IDBObjectId}"
+ Dim oDatatable As DataTable = Db.GetDatatable(oSQL)
- Dim oRow1 = oDatatable.NewRow()
- With oRow1
- .Item(IdColumn) = 0
- .Item(UsernameColumn) = "Jonathan"
- .Item(MessageColumn) = "Hi"
- .Item(DateColumn) = Now.AddMinutes(-10).ToShortTimeString
- End With
+ lookupConversations.DataSource = oDatatable
+ End Sub
- 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()
+ Public Sub LoadConversation(ConversationId As Long)
+ Dim oSQL As String = $"SELECT * FROM VWIDB_CONV_MESSAGES WHERE CONV_ID = {ConversationId} ORDER BY GUID"
+ Dim oDatatable As DataTable = Db.GetDatatable(oSQL)
BuildUsernameColorDict(oDatatable)
@@ -73,9 +54,22 @@ Public Class ChatControl
ChatSource.DataSource = oDatatable
End Sub
+ Public Sub SendMessage(MessageText As String)
+ Try
+ Dim oSQL As String = $"EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] {CurrentConversation},'{MessageText}', '{CurrentUser}'"
+ Dim oResult = Db.GetScalarValue(oSQL)
+ LoadConversation(CurrentConversation)
+ txtMessage.Text = String.Empty
+ Catch ex As Exception
+ Logger.Error(ex)
+ End Try
+ End Sub
+
Private Sub BuildUsernameColorDict(Datatable As DataTable)
Dim oIndex = 0
+ UsernameColorsDict.Clear()
+
Datatable.AsEnumerable().
Select(Function(Row) Row.Item(UsernameColumn)).
Distinct().ToList().
@@ -85,11 +79,11 @@ Public Class ChatControl
End Sub)
End Sub
- Private Sub ChatView_CustomItemTemplate(sender As Object, e As DevExpress.XtraGrid.Views.Tile.TileViewCustomItemTemplateEventArgs) Handles ChatView.CustomItemTemplate
+ Private Sub ChatView_CustomItemTemplate(sender As Object, e As TileViewCustomItemTemplateEventArgs) Handles ChatView.CustomItemTemplate
Dim oRow As DataRow = ChatView.GetDataRow(e.RowHandle)
Dim oUsername As String = oRow.Item(UsernameColumn)
- If oUsername = "Jonathan" Then
+ If oUsername = CurrentUser Then
e.Template = e.Templates.Item("ChatRight")
Else
e.Template = e.Templates.Item("ChatLeft")
@@ -101,15 +95,29 @@ Public Class ChatControl
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
+ If oUsername = CurrentUser Then
+ e.Item.AppearanceItem.Normal.BackColor = Color.PaleTurquoise
End If
+ e.Item.AppearanceItem.Focused.BackColor = Color.Turquoise
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
+ If e.Control And e.KeyCode = Keys.Enter And txtMessage.Text.Count > 0 Then
+ SendMessage(txtMessage.Text)
+ End If
+ End Sub
+ Private Sub lookupConversations_SelectedValuesChanged(sender As Object, SelectedValues As List(Of String)) Handles lookupConversations.SelectedValuesChanged
+ If SelectedValues.Count > 0 Then
+ CurrentConversation = SelectedValues.First()
+ LoadConversation(CurrentConversation)
+ End If
+ End Sub
+
+ Private Sub SimpleButton1_Click(sender As Object, e As EventArgs) Handles btnSendMessage.Click
+ If txtMessage.Text.Count > 0 Then
+ SendMessage(txtMessage.Text)
End If
End Sub
End Class
diff --git a/Controls.ChatControl/ChatControl.vbproj b/Controls.ChatControl/ChatControl.vbproj
index ea28a54f..c4399c50 100644
--- a/Controls.ChatControl/ChatControl.vbproj
+++ b/Controls.ChatControl/ChatControl.vbproj
@@ -53,12 +53,24 @@
+
+ ..\Controls.LookupGrid\obj\Debug\DigitalData.Controls.LookupGrid.dll
+
+
+
+ ..\packages\NLog.4.7.2\lib\net45\NLog.dll
+
+
+
+
+
+
@@ -126,6 +138,7 @@
My
Settings.Designer.vb
+
diff --git a/Controls.ChatControl/My Project/licenses.licx b/Controls.ChatControl/My Project/licenses.licx
index a360c698..d2ccec98 100644
--- a/Controls.ChatControl/My Project/licenses.licx
+++ b/Controls.ChatControl/My Project/licenses.licx
@@ -1,2 +1,3 @@
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.LookUpEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
diff --git a/Controls.ChatControl/packages.config b/Controls.ChatControl/packages.config
new file mode 100644
index 00000000..1baeaab3
--- /dev/null
+++ b/Controls.ChatControl/packages.config
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/DDMonorepo.sln b/DDMonorepo.sln
index e13d5409..efc29723 100644
--- a/DDMonorepo.sln
+++ b/DDMonorepo.sln
@@ -312,6 +312,14 @@ Global
{9713484C-6EE3-4D7E-B6E6-F32CF6B6BB6C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9713484C-6EE3-4D7E-B6E6-F32CF6B6BB6C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9713484C-6EE3-4D7E-B6E6-F32CF6B6BB6C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1F278760-4F6B-42E8-B82D-01D4C8618340}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1F278760-4F6B-42E8-B82D-01D4C8618340}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1F278760-4F6B-42E8-B82D-01D4C8618340}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1F278760-4F6B-42E8-B82D-01D4C8618340}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4A726345-FD6B-4E1C-9E5D-18C9043D7714}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4A726345-FD6B-4E1C-9E5D-18C9043D7714}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4A726345-FD6B-4E1C-9E5D-18C9043D7714}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4A726345-FD6B-4E1C-9E5D-18C9043D7714}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -363,6 +371,8 @@ Global
{5FDEC007-7AE0-4829-B1AE-6165E29375DA} = {CC368D6A-6AC4-4EB9-A092-14700FABEF7A}
{C8F9C3DD-9328-49E3-8530-48E6A4C82CAF} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC}
{9713484C-6EE3-4D7E-B6E6-F32CF6B6BB6C} = {CC368D6A-6AC4-4EB9-A092-14700FABEF7A}
+ {1F278760-4F6B-42E8-B82D-01D4C8618340} = {F98C0329-C004-417F-B2AB-7466E88D8220}
+ {4A726345-FD6B-4E1C-9E5D-18C9043D7714} = {CC368D6A-6AC4-4EB9-A092-14700FABEF7A}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C1BE4090-A0FD-48AF-86CB-39099D14B286}