/// <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);
     }
 }