/// <summary> /// Updates the ThreadList /// </summary> private void LoadThreads() { ThreadsPanel.Children.Clear(); try { var threadListQuery = SQLServer.MSSelectDataDictionary("SELECT a.*,b.messagecontent as Message,b.Timestamp as SendTime,b.participantid as sender FROM whldata.messenger_threads a Left Join (SELECT m1.* FROM whldata.messenger_messages m1 LEFT JOIN whldata.messenger_messages m2 ON (m1.threadid = m2.threadid AND m1.messageid < m2.messageid) WHERE m2.messageid IS NULL) b on b.threadid=a.threadId WHERE (a.participantid='"+ AuthdEmployee.PayrollId.ToString() + "') ORDER BY b.timestamp DESC;"); if (threadListQuery == null) { throw new Exception("SQL Query Failed"); } foreach (var result in threadListQuery) { var checkList = CheckThreadUsers(int.Parse(result["threadid"].ToString())); if (checkList.Count > 0) { var refcontrol = new ThreadControl { ThreadId = int.Parse(result["threadid"].ToString()), ThreadUsers = { Text = "" } }; foreach (var user in checkList) { refcontrol.ThreadUsers.Text += user.FullName + ","; } refcontrol.ThreadUsers.Text = refcontrol.ThreadUsers.Text.Trim().TrimEnd(','); refcontrol.LastMessage.Text = result["message"].ToString(); refcontrol.MouseUp += HandleThreadClick; refcontrol.InitializeComponent(); ThreadsPanel.Children.Add(refcontrol); } } } catch (Exception exception) { Console.WriteLine(exception); } }