public List<Message> CheckMessages(string userID)
        {
            string ID = string.Empty;
            string personID = string.Empty;
            string pkid = string.Empty;
            string location = string.Empty;

            List<Message> messages = new List<Message>();

            int count = 1;

            try
            {
                using (SqlConnection cn = new SqlConnection(ConfigurationValues.DeskTopConnection))
                {
                    cn.Open();
                    using (SqlCommand cm = cn.CreateCommand())
                    {

                        cm.CommandText = "SELECT [ID],[FromID],[FromName],[ToID],[ToName],[Message],[Thread],[ShowMessage],[DateCreated]"
                            + " FROM [Messages]"
                            + " where ((ToID = @ToID) or (FromID = @ToID))"
                            + " and ShowMessage = 'T'"
                            + " order by ID";

                        cm.CommandType = System.Data.CommandType.Text;
                        cm.Parameters.AddWithValue("@ToID", userID);
                        using (SqlDataReader dr = cm.ExecuteReader())
                        {
                            while (dr.Read())
                            {
                                Message message = new Message();

                                try
                                {
                                    message.ID = int.Parse(dr["ID"].ToString());
                                }
                                catch { }
                                try
                                {
                                    message.FromID = dr["FromID"].ToString();
                                }
                                catch { }

                                try
                                {
                                    message.FromName = dr["FromName"].ToString();
                                }
                                catch { }

                                try
                                {
                                    message.ToID = dr["ToID"].ToString();
                                }
                                catch { }

                                try
                                {
                                    message.ToName = dr["ToName"].ToString();
                                }
                                catch { }

                                try
                                {
                                    message.Note = dr["Message"].ToString();
                                }
                                catch { }

                                message.MessageType = string.Empty;
                                count++;
                                messages.Add(message);
                            }
                        }
                    }
                    return messages;
                }
            }
            catch (Exception er)
            {
               EmployeeDesktop.API.Exceptions.ExceptionHandling.InsertErrorMessage(er.ToString());
               EmployeeDesktop.API.Exceptions.ExceptionHandling.SendErrorEmail(er.ToString(), ConfigurationValues.EmailFromFriendly, ConfigurationValues.EmailSendToFriendly, ConfigurationValues.EmailSubject);
                return messages;
            }
        }
        public List<Message> GetPatientMessages(string uniqueID)
        {
            string ID = string.Empty;
            string personID = string.Empty;
            string pkid = string.Empty;
            string location = string.Empty;
            string userList = string.Empty;

            List<Message> messages = new List<Message>();

            try
            {
                using (MySqlConnection cn = new MySqlConnection(ConfigurationValues.GroveHillConnection))
                {
                    cn.Open();
                    using (MySqlCommand cm = cn.CreateCommand())
                    {

                        cm.CommandText = "SELECT ID,FromID,FromName,ToID,ToName,Message,Thread,ShowMessage,DateCreated"
                            + " FROM Messages"
                            + " where ShowMessage = 'T'"
                            + " and (fromid = @fromId or toid = @toid)";

                        cm.CommandType = System.Data.CommandType.Text;
                        cm.Parameters.AddWithValue("@fromId", uniqueID);
                        cm.Parameters.AddWithValue("@toid", uniqueID);
                        using (MySqlDataReader dr = cm.ExecuteReader())
                        {
                            while (dr.Read())
                            {
                                Message message = new Message();

                                try
                                {
                                    message.ID = int.Parse(dr["ID"].ToString());
                                }
                                catch { }
                                try
                                {
                                    message.FromID = dr["FromID"].ToString();
                                }
                                catch { }

                                try
                                {
                                    message.FromName = dr["FromName"].ToString();
                                }
                                catch { }

                                try
                                {
                                    message.ToID = dr["ToID"].ToString();
                                }
                                catch { }

                                try
                                {
                                    message.ToName = dr["ToName"].ToString();
                                }
                                catch { }

                                try
                                {
                                    message.Note = dr["Message"].ToString();
                                }
                                catch { }

                                try
                                {
                                    message.DateCreated = dr.GetDateTime(8);
                                }
                                catch { }

                                messages.Add(message);
                            }
                        }
                    }
                    return messages;
                }
            }
            catch (Exception er)
            {
               EmployeeDesktop.API.Exceptions.ExceptionHandling.InsertErrorMessage(er.ToString());
               EmployeeDesktop.API.Exceptions.ExceptionHandling.SendErrorEmail(er.ToString(), ConfigurationValues.EmailFromFriendly, ConfigurationValues.EmailSendToFriendly, ConfigurationValues.EmailSubject);
                return messages;
            }
        }
        public bool AddMessage(Message message)
        {
            if (message.ToName.Length < 1)
            {
                message.ToName = GetMessageToName(message.ToID);
            }

            string fullMessage = "Time :" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() + "<br />"
                + " From: " + message.FromName + "<br />"
                + " To: " + message.ToName + "<br />"
                + " Message: " + message.Note;

            try
            {
                using (IDbConnection db = new SqlConnection(ConfigurationValues.DeskTopConnection))
                {
                    const string query = "insert into Messages("
                        + " FromID,FromName,ToID,ToName,Message,Thread,ShowMessage,MessageType,DateCreated)"
                        + " values(@FromID,@FromName,@ToID,@ToName,@Message,@Thread,@ShowMessage,@MessageType,@DateCreated)";

                    int rowsAffectd = db.Execute(query, new
                    {
                        @FromID = message.FromID,
                        @FromName = message.FromName,
                        @ToID = message.ToID,
                        @ToName = message.ToName,
                        @Message = fullMessage,
                        @Thread = message.Thread,
                        @ShowMessage = "T",
                        @MessageType = message.MessageType,
                        @DateCreated = DateTime.Now
                    });
                    return true;
                }
            }
            catch (Exception er)
            {
               EmployeeDesktop.API.Exceptions.ExceptionHandling.InsertErrorMessage(er.ToString());
               EmployeeDesktop.API.Exceptions.ExceptionHandling.SendErrorEmail(er.ToString(), ConfigurationValues.EmailFromFriendly, ConfigurationValues.EmailSendToFriendly, ConfigurationValues.EmailSubject);
                return false;
            }
        }
        public List<Message> GetMessagesSentToOffice(string userID)
        {
            string ID = string.Empty;
            string personID = string.Empty;
            string pkid = string.Empty;
            string location = string.Empty;
            string userList = string.Empty;

            List<Message> messages = new List<Message>();

            if (userID == "0")
            {
                userList = GetWorkerListIDs();
            }
            else
            {
                userList = "('" + userID + "')";
            }

            try
            {
                using (SqlConnection cn = new SqlConnection(ConfigurationValues.GroveHillConnection))
                {
                    cn.Open();
                    using (SqlCommand cm = cn.CreateCommand())
                    {

                        cm.CommandText = "SELECT [ID],[FromID],[FromName],[ToID],[ToName],[Message],[Thread],[Show],[DateCreated]"
                            + " FROM [Messages]"
                            + " where ToID in " + userList
                            + " and show = 'T'";

                        cm.CommandType = System.Data.CommandType.Text;
                        using (SqlDataReader dr = cm.ExecuteReader())
                        {
                            while (dr.Read())
                            {
                                Message message = new Message();

                                try
                                {
                                    message.ID = int.Parse(dr["ID"].ToString());
                                }
                                catch { }
                                try
                                {
                                    message.FromID = dr["FromID"].ToString();
                                }
                                catch { }

                                try
                                {
                                    message.FromName = dr["FromName"].ToString();
                                }
                                catch { }

                                try
                                {
                                    message.ToID = dr["ToID"].ToString();
                                }
                                catch { }

                                try
                                {
                                    message.ToName = dr["ToName"].ToString();
                                }
                                catch { }

                                try
                                {
                                    message.Note = dr["Message"].ToString();
                                }
                                catch { }

                                messages.Add(message);
                            }
                        }
                    }
                    return messages;
                }
            }
            catch (Exception er)
            {
              EmployeeDesktop.API.Exceptions.ExceptionHandling.InsertErrorMessage(er.ToString());
              EmployeeDesktop.API.Exceptions.ExceptionHandling.SendErrorEmail(er.ToString(), ConfigurationValues.EmailFromFriendly, ConfigurationValues.EmailSendToFriendly, ConfigurationValues.EmailSubject);
                return messages;
            }
        }