BH, Helferfunktionen, CHAT Refactor!!!!!!
This commit is contained in:
@@ -308,7 +308,7 @@ Public Class cMessenger
|
||||
Next
|
||||
Me.LOAD_MEMBERS()
|
||||
If dateTmp Is Nothing Then
|
||||
Me.LOAD_MESSAGES(topMax)
|
||||
Me.LOAD_MESSAGES_NEW(topMax)
|
||||
Else
|
||||
Me.LOAD_MESSAGES_DATE(dateTmp)
|
||||
End If
|
||||
@@ -346,7 +346,7 @@ Public Class cMessenger
|
||||
|
||||
Me.LOAD_MEMBERS()
|
||||
If dateTmp Is Nothing Then
|
||||
Me.LOAD_MESSAGES()
|
||||
Me.LOAD_MESSAGES_NEW()
|
||||
Else
|
||||
Me.LOAD_MESSAGES_DATE(dateTmp)
|
||||
End If
|
||||
@@ -415,9 +415,9 @@ Public Class cMessenger
|
||||
cmd.Parameters.AddWithValue("@top", top)
|
||||
Dim dr = cmd.ExecuteReader()
|
||||
While dr.Read
|
||||
Dim MSG As New cMessenger_ChatMessages(dr.Item("chatMg_id")) ' ----> 100 messages = 101 SQL calls
|
||||
'Dim MSG As New cMessenger_ChatMessages(dr.Item("chatMg_id")) ' ----> 100 messages = 101 SQL calls
|
||||
'Hier werden die einzelnen MSg-Obj nicht mehr per SQL geladen, sondern direkt als Objekt übergeben -> schneller!
|
||||
'Dim MSG As New cMessenger_ChatMessages(dr.Item("chatMg_id"), dr.Item("chatMg_maId"), dr.Item("chatMg_datetime"), dr.Item("chatMg_maName"), dr.Item("chatMg_maFirma"), dr.Item("chatMg_type"), dr.Item("chatMg_text"), IIf(IsDBNull(dr.Item("chatMg_anhang_docId")), Nothing, dr.Item("chatMg_anhang_docId")), IIf(IsDBNull(dr.Item("chatMg_referenz_AvisoId")), Nothing, dr.Item("chatMg_referenz_AvisoId")), IIf(IsDBNull(dr.Item("chatMg_referenz_SendungsId")), Nothing, dr.Item("chatMg_referenz_SendungsId")), dr.Item("chatMg_referenz_KundenNr")) 'Me.chat_id, dr.Item("chatMb_maId")) 'yxc
|
||||
Dim MSG As New cMessenger_ChatMessages(dr.Item("chatMg_id"), dr.Item("chatMg_chatId"), dr.Item("chatMg_maId"), dr.Item("chatMg_datetime"), dr.Item("chatMg_maName"), dr.Item("chatMg_maFirma"), dr.Item("chatMg_type"), dr.Item("chatMg_text"), IIf(IsDBNull(dr.Item("chatMg_anhang_docId")), Nothing, dr.Item("chatMg_anhang_docId")), IIf(IsDBNull(dr.Item("chatMg_referenz_AvisoId")), Nothing, dr.Item("chatMg_referenz_AvisoId")), IIf(IsDBNull(dr.Item("chatMg_referenz_SendungsId")), Nothing, dr.Item("chatMg_referenz_SendungsId")), dr.Item("chatMg_referenz_KundenNr")) 'Me.chat_id, dr.Item("chatMb_maId")) 'yxc
|
||||
Me.CHAT_MESSAGES.Add(MSG)
|
||||
End While
|
||||
dr.Close()
|
||||
@@ -431,6 +431,64 @@ Public Class cMessenger
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Public Sub LOAD_MESSAGES_NEW(Optional top As Integer = 100)
|
||||
Try
|
||||
Me.CHAT_MESSAGES.Clear()
|
||||
|
||||
Using conn As SqlConnection = SQL.GetNewOpenConnectionADMIN()
|
||||
Using cmd As New SqlCommand(
|
||||
"SELECT TOP (@top) chatMg_id, chatMg_chatId, chatMg_maId, chatMg_maName, chatMg_maFirma, chatMg_datetime, chatMg_type, chatMg_text, chatMg_anhang_docId, chatMg_referenz_AvisoId, chatMg_referenz_SendungsId, chatMg_referenz_KundenNr
|
||||
FROM tblMessenger_ChatMessages
|
||||
WHERE chatMg_chatId = @chat_id
|
||||
ORDER BY chatMg_datetime DESC", conn)
|
||||
|
||||
cmd.Parameters.AddWithValue("@chat_id", chat_id)
|
||||
cmd.Parameters.AddWithValue("@top", top)
|
||||
|
||||
Using dr As SqlDataReader = cmd.ExecuteReader()
|
||||
While dr.Read()
|
||||
Dim chatMg_id As Integer? = SafeInt(dr("chatMg_id"))
|
||||
Dim chatMg_chatId As Integer? = SafeInt(dr("chatMg_chatId"))
|
||||
Dim chatMg_maId As Integer? = SafeInt(dr("chatMg_maId"))
|
||||
Dim chatMg_type As String = If(IsDBNull(dr("chatMg_type")), "", dr("chatMg_type").ToString())
|
||||
Dim chatMg_anhang_docId As Integer? = SafeInt(dr("chatMg_anhang_docId"))
|
||||
Dim chatMg_referenz_AvisoId As Integer? = SafeInt(dr("chatMg_referenz_AvisoId"))
|
||||
Dim chatMg_referenz_SendungsId As Integer? = SafeInt(dr("chatMg_referenz_SendungsId"))
|
||||
Dim chatMg_datetime As DateTime = If(IsDBNull(dr("chatMg_datetime")), DateTime.MinValue, Convert.ToDateTime(dr("chatMg_datetime")))
|
||||
Dim chatMg_maName As String = If(IsDBNull(dr("chatMg_maName")), "", dr("chatMg_maName").ToString())
|
||||
Dim chatMg_maFirma As String = If(IsDBNull(dr("chatMg_maFirma")), "", dr("chatMg_maFirma").ToString())
|
||||
Dim chatMg_text As String = If(IsDBNull(dr("chatMg_text")), "", dr("chatMg_text").ToString())
|
||||
Dim chatMg_referenz_KundenNr As String = If(IsDBNull(dr("chatMg_referenz_KundenNr")), "", dr("chatMg_referenz_KundenNr").ToString())
|
||||
|
||||
' Message-Objekt direkt erstellen
|
||||
Dim MSG As New cMessenger_ChatMessages(dr.Item("chatMg_id"), dr.Item("chatMg_chatId"), dr.Item("chatMg_maId"), dr.Item("chatMg_datetime"), dr.Item("chatMg_maName"), dr.Item("chatMg_maFirma"), dr.Item("chatMg_type"), dr.Item("chatMg_text"), IIf(IsDBNull(dr.Item("chatMg_anhang_docId")), Nothing, dr.Item("chatMg_anhang_docId")), IIf(IsDBNull(dr.Item("chatMg_referenz_AvisoId")), Nothing, dr.Item("chatMg_referenz_AvisoId")), IIf(IsDBNull(dr.Item("chatMg_referenz_SendungsId")), Nothing, dr.Item("chatMg_referenz_SendungsId")), dr.Item("chatMg_referenz_KundenNr"))
|
||||
|
||||
Me.CHAT_MESSAGES.Add(MSG)
|
||||
End While
|
||||
End Using
|
||||
End Using
|
||||
End Using
|
||||
|
||||
' Nachrichten umdrehen, damit älteste zuerst angezeigt werden
|
||||
Me.CHAT_MESSAGES.Reverse()
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox("Fehler in LOAD_MESSAGES: " & vbNewLine & ex.Message & vbNewLine & ex.StackTrace)
|
||||
End Try
|
||||
|
||||
End Sub
|
||||
|
||||
Private Function SafeInt(value As Object) As Integer?
|
||||
If IsDBNull(value) Then Return Nothing
|
||||
Dim s As String = value.ToString().Trim()
|
||||
Dim result As Integer
|
||||
If Integer.TryParse(s, result) Then
|
||||
Return result
|
||||
Else
|
||||
Return Nothing
|
||||
End If
|
||||
End Function
|
||||
|
||||
Public Sub LOAD_MESSAGES_DATE(dateTmp As Date)
|
||||
Try
|
||||
Me.CHAT_MESSAGES.Clear()
|
||||
@@ -442,9 +500,9 @@ Public Class cMessenger
|
||||
|
||||
While dr.Read
|
||||
|
||||
Dim MSG As New cMessenger_ChatMessages(dr.Item("chatMg_id")) '----> 100 messages = 101 SQL calls
|
||||
'Dim MSG As New cMessenger_ChatMessages(dr.Item("chatMg_id")) '----> 100 messages = 101 SQL calls
|
||||
'Hier werden die einzelnen MSg-Obj nicht mehr per SQL geladen, sondern direkt als Objekt übergeben -> schneller!
|
||||
'Dim MSG As New cMessenger_ChatMessages(dr.Item("chatMg_id"), dr.Item("chatMg_maId"), dr.Item("chatMg_datetime"), dr.Item("chatMg_maName"), dr.Item("chatMg_maFirma"), dr.Item("chatMg_type"), dr.Item("chatMg_text"), IIf(IsDBNull(dr.Item("chatMg_anhang_docId")), Nothing, dr.Item("chatMg_anhang_docId")), IIf(IsDBNull(dr.Item("chatMg_referenz_AvisoId")), Nothing, dr.Item("chatMg_referenz_AvisoId")), IIf(IsDBNull(dr.Item("chatMg_referenz_SendungsId")), Nothing, dr.Item("chatMg_referenz_SendungsId")), dr.Item("chatMg_referenz_KundenNr")) 'Me.chat_id, dr.Item("chatMb_maId")) 'yxc
|
||||
Dim MSG As New cMessenger_ChatMessages(dr.Item("chatMg_id"), dr.Item("chatMg_chatId"), dr.Item("chatMg_maId"), dr.Item("chatMg_datetime"), dr.Item("chatMg_maName"), dr.Item("chatMg_maFirma"), dr.Item("chatMg_type"), dr.Item("chatMg_text"), IIf(IsDBNull(dr.Item("chatMg_anhang_docId")), Nothing, dr.Item("chatMg_anhang_docId")), IIf(IsDBNull(dr.Item("chatMg_referenz_AvisoId")), Nothing, dr.Item("chatMg_referenz_AvisoId")), IIf(IsDBNull(dr.Item("chatMg_referenz_SendungsId")), Nothing, dr.Item("chatMg_referenz_SendungsId")), dr.Item("chatMg_referenz_KundenNr")) 'Me.chat_id, dr.Item("chatMb_maId")) 'yxc
|
||||
Me.CHAT_MESSAGES.Add(MSG)
|
||||
|
||||
End While
|
||||
@@ -780,7 +838,8 @@ Public Class cMessenger
|
||||
Me.chatMg_maId = chatMg_maId
|
||||
End Sub
|
||||
|
||||
Sub New(chatMg_chatId, chatMg_maId, chatMg_datetime, chatMg_maName, chatMg_maFirma, chatMg_type, chatMg_text, chatMg_anhang_docId, chatMg_referenz_AvisoId, chatMg_referenz_SendungsId, chatMg_referenz_KundenNr)
|
||||
Sub New(chatMg_id, chatMg_chatId, chatMg_maId, chatMg_datetime, chatMg_maName, chatMg_maFirma, chatMg_type, chatMg_text, chatMg_anhang_docId, chatMg_referenz_AvisoId, chatMg_referenz_SendungsId, chatMg_referenz_KundenNr)
|
||||
Me.chatMg_id = chatMg_id
|
||||
Me.chatMg_chatId = chatMg_chatId
|
||||
Me.chatMg_maId = chatMg_maId
|
||||
Me.chatMg_datetime = chatMg_datetime
|
||||
|
||||
Reference in New Issue
Block a user