예제 #1
0
        public void loadMessages()
        {
            System.Data.SqlClient.SqlDataReader dataR = Connection.getReader("SELECT SenderID, Message, DateS, MessageID, State, DateR FROM Msgs WHERE SenderID IN (" + Account.Accid + ", " + this.ContactID + ") AND RecieverID IN (" + Account.Accid + ", " + this.ContactID + ");");
            while (dataR.Read())
            {
                ucMessage ucM = new ucMessage();
                ucM.MessageID         = int.Parse(dataR.GetValue(3).ToString());
                ucM.Info.Text         = (int.Parse(dataR.GetValue(0).ToString()) == Account.Accid) ? Account.Username : label_username.Text;
                ucM.Info.Text        += " • " + ((DateTime.Now - DateTime.Parse(dataR.GetValue(2).ToString())).TotalHours > 24 ? ((DateTime.Now - DateTime.Parse(dataR.GetValue(2).ToString())).TotalHours < 48 ? "Hier" : DateTime.Parse(dataR.GetValue(2).ToString()).ToShortDateString()) : DateTime.Parse(dataR.GetValue(2).ToString()).ToShortTimeString());
                ucM.Message.Text      = dataR.GetString(1);
                ucM.Message.Height    = getMessageHeigh(ucM.Message) * 15;
                ucM.Height           += (getMessageHeigh(ucM.Message) * 15) - 10;
                ucM.Top               = (5 + getPreviousHeights()) + panel_main.Controls.OfType <ucMessage>().Count <ucMessage>() * 5;
                ucM.Left              = 20;
                ucM.BackColor         = AppSettings.ContactBackgroundColor;
                ucM.Message.BackColor = AppSettings.ContactBackgroundColor;
                ucM.Message.ForeColor = AppSettings.ContactTextColor;
                ucM.Info.ForeColor    = AppSettings.ContactTextColor;
                ucM.MsgState.Top      = ucM.Message.Bottom - 10;
                ToolTip ttInfo = new ToolTip();
                ttInfo.ToolTipIcon  = ToolTipIcon.Info;
                ttInfo.ToolTipTitle = "Message pas lu";
                ttInfo.SetToolTip(ucM.MsgState, "L'utilisateur n'a pas encore vu le message");

                if (int.Parse(dataR.GetValue(0).ToString()) == Account.Accid)
                {
                    ucM.Left              = (panel_main.Width - ucM.Width) - 20;
                    ucM.BackColor         = AppSettings.AccountBackgroundColor;
                    ucM.Message.BackColor = AppSettings.AccountBackgroundColor;
                    ucM.Message.ForeColor = AppSettings.AccountTextColor;
                    ucM.Info.ForeColor    = AppSettings.AccountTextColor;
                    ucM.MsgState.Visible  = true;
                    if (bool.Parse(dataR.GetValue(4).ToString()) == true)
                    {
                        ucM.MsgState.Image  = Properties.Resources.icon_messageRead;
                        ttInfo.ToolTipTitle = "Message lu";
                        ttInfo.SetToolTip(ucM.MsgState, DateTime.Parse(dataR.GetValue(5).ToString()).ToShortTimeString());
                    }
                }

                panel_main.Controls.Add(ucM);
                ucM.Scroll += new ScrollEventHandler(panel_main_Scroll);
            }
            dataR.Close();
            Connection.closeCon();

            if (panel_main.Controls.OfType <ucMessage>().Count <ucMessage>() == 0)
            {
                label_noMessages.Visible = true;
            }
        }
예제 #2
0
        private void button_send_Click(object sender, EventArgs e)
        {
            ucMessage ucM = new ucMessage();

            ucM.Info.Text         = Account.Username + " • " + DateTime.Now.ToShortTimeString();
            ucM.Message.Text      = textBox_chatBox.Text;
            ucM.Message.Height    = getMessageHeigh(ucM.Message) * 15;
            ucM.Height           += (getMessageHeigh(ucM.Message) * 15) - 15;
            ucM.Top               = (panel_main.Controls.OfType <ucMessage>().Count <ucMessage>() == 0) ? 5 : panel_main.Controls.OfType <ucMessage>().Last <ucMessage>().Bottom + 5;
            ucM.Left              = (panel_main.Width - ucM.Width) - 20;
            ucM.BackColor         = AppSettings.AccountBackgroundColor;
            ucM.Message.BackColor = AppSettings.AccountBackgroundColor;
            ucM.Message.ForeColor = AppSettings.AccountTextColor;
            ucM.Info.ForeColor    = AppSettings.AccountTextColor;
            ucM.MsgState.Top      = ucM.Message.Bottom - 15;
            ucM.MsgState.Visible  = true;
            ToolTip ttInfo = new ToolTip();

            ttInfo.ToolTipIcon  = ToolTipIcon.Info;
            ttInfo.ToolTipTitle = "Message pas lu";
            ttInfo.SetToolTip(ucM.MsgState, "L'utilisateur n'a pas encore vu le message");

            panel_main.Controls.Add(ucM);
            ucM.Scroll += new ScrollEventHandler(panel_main_Scroll);

            if (panel_main.Controls.OfType <ucMessage>().Count <ucMessage>() == 0)
            {
                label_noMessages.Visible = true;
            }
            else
            {
                label_noMessages.Visible = false;
            }

            Connection.cmd.Parameters.Clear();
            Connection.cmd.Parameters.AddWithValue("@message", textBox_chatBox.Text);
            Connection.sendQuery("INSERT INTO Msgs VALUES(" + Account.Accid + ", " + this.ContactID + ", @message, '" + DateTime.Now + "', 0, '" + DateTime.Now + "');");
            Connection.closeCon();

            ucEmoji_.Visible = false;
            panel_main.ScrollControlIntoView(ucM);
            textBox_chatBox.Clear();
        }