public IEnumerable <MessageUC> GetMessages(ChatModel chatModel) { List <MessageUC> messageUCs = new List <MessageUC>(); IService service = new WCFService(); IChatMap chatMap = new Map(); IEnumerable <MessageDTO> messageDTOs = service.GetMessages(chatMap.ChatModelToChatDTO(chatModel)); if (messageDTOs != null) { foreach (MessageDTO mess in messageDTOs) { MessageUC messageUC = new MessageUC(); MessageVM messageVM = new MessageVM(); messageVM.Message.Id = mess.Id; messageVM.Message.Text = mess.Text; messageVM.Message.Time = mess.Time; messageVM.Message.Author = mess.Author; messageVM.Message.Img = mess.Img; messageUC.DataContext = messageVM; messageUCs.Add(messageUC); } } return(messageUCs); }
private void Manager_MessageArrivedEvent(object sender, MessageDictionary e) { Application.Current.Dispatcher.Invoke(() => { if (messageListSP.Children.Count >= maxMesListLen) { messageListSP.Children.RemoveAt(0); } if ((CommandType)Enum.Parse(typeof(CommandType), e[MesKeyStr.CommandType]) == CommandType.GroupMessage) { e.Add(MesKeyStr.Remark, "群聊消息"); } else { e.Add(MesKeyStr.Remark, "私聊消息,目标:" + e[MesKeyStr.UserID]); } DisplayMethod displayMethod = DisplayMethod.OnlyRemark; if (displayStyle) { displayMethod = DisplayMethod.Both; } MessageUC messageUC = new MessageUC(e, displayMethod); messageListSP.Children.Add(messageUC); messageListSV.ScrollToEnd(); }); }
public void DownloadMessages() { SqlDataReader dataReader = Connection.FetchReader("USE trentMessengerDB3; SELECT SenderID, Message, DateS, MessageID, State, DateR FROM Msgs WHERE SenderID IN (" + Account.AccountId + ", " + this.Contact_ID + ") AND RecieverID IN (" + Account.AccountId + ", " + this.Contact_ID + ");"); while (dataReader.Read()) { MessageUC MessageUC_ = new MessageUC(); MessageUC_.Message_ID = int.Parse(dataReader.GetValue(3).ToString()); MessageUC_.Info.Text = (int.Parse(dataReader.GetValue(0).ToString()) == Account.AccountId) ? Account.Username_ : labelUsername.Text; MessageUC_.Info.Text += " • " + ((DateTime.Now - DateTime.Parse(dataReader.GetValue(2).ToString())).TotalHours > 24 ? ((DateTime.Now - DateTime.Parse(dataReader.GetValue(2).ToString())).TotalHours < 48 ? "Yesterday" : DateTime.Parse(dataReader.GetValue(2).ToString()).ToShortDateString()) : DateTime.Parse(dataReader.GetValue(2).ToString()).ToShortTimeString()); MessageUC_.MessageUc.Text = dataReader.GetString(1); MessageUC_.MessageUc.Height = ReturnMessageHeight(MessageUC_.MessageUc) * 15; MessageUC_.Height += (ReturnMessageHeight(MessageUC_.MessageUc) * 15) - 10; MessageUC_.Top = (5 + ReturnPreviousHeights()) + panelMain.Controls.OfType <MessageUC>().Count <MessageUC>() * 5; MessageUC_.Left = 20; MessageUC_.BackColor = Classes.AppSettings.AppContactBackgroundColor; MessageUC_.MessageUc.BackColor = Classes.AppSettings.AppContactBackgroundColor; MessageUC_.MessageUc.ForeColor = Classes.AppSettings.AppContactTextColor; MessageUC_.Info.ForeColor = Classes.AppSettings.AppContactTextColor; MessageUC_.MessagState.Top = MessageUC_.MessageUc.Bottom - 10; ToolTip tTipInfo = new ToolTip(); tTipInfo.ToolTipIcon = ToolTipIcon.Info; tTipInfo.ToolTipTitle = "Unread Message"; tTipInfo.SetToolTip(MessageUC_.MessagState, "User has not yet seen the message"); if (int.Parse(dataReader.GetValue(0).ToString()) == Account.AccountId) { MessageUC_.Left = (panelMain.Width - MessageUC_.Width) - 20; MessageUC_.BackColor = Classes.AppSettings.AppAccountBackgroundColor; MessageUC_.MessageUc.BackColor = Classes.AppSettings.AppAccountBackgroundColor; MessageUC_.MessageUc.ForeColor = Classes.AppSettings.AppAccountTextColor; MessageUC_.Info.ForeColor = Classes.AppSettings.AppAccountTextColor; MessageUC_.MessagState.Visible = true; if (bool.Parse(dataReader.GetValue(4).ToString()) == true) { MessageUC_.MessagState.Image = Properties.Resources.icon_messageRead; tTipInfo.ToolTipTitle = "Message Read"; tTipInfo.SetToolTip(MessageUC_.MessagState, DateTime.Parse(dataReader.GetValue(5).ToString()).ToShortTimeString()); } } panelMain.Controls.Add(MessageUC_); MessageUC_.Scroll += new ScrollEventHandler(MainPanel_Scroll); } dataReader.Close(); Connection.CloseConnection(); if (panelMain.Controls.OfType <MessageUC>().Count <MessageUC>() == 0) { labelNoMessages.Visible = true; } }
private void button_send_Click(object sender, EventArgs e) { MessageUC MessageUC_ = new MessageUC(); MessageUC_.Info.Text = Account.Username_ + " • " + DateTime.Now.ToShortTimeString(); MessageUC_.MessageUc.Text = textBoxForchatBox.Text; MessageUC_.MessageUc.Height = ReturnMessageHeight(MessageUC_.MessageUc) * 15; MessageUC_.Height += (ReturnMessageHeight(MessageUC_.MessageUc) * 15) - 15; MessageUC_.Top = (panelMain.Controls.OfType <MessageUC>().Count <MessageUC>() == 0) ? 5 : panelMain.Controls.OfType <MessageUC>().Last <MessageUC>().Bottom + 5; MessageUC_.Left = (panelMain.Width - MessageUC_.Width) - 20; MessageUC_.BackColor = Classes.AppSettings.AppAccountBackgroundColor; MessageUC_.MessageUc.BackColor = Classes.AppSettings.AppAccountBackgroundColor; MessageUC_.MessageUc.ForeColor = Classes.AppSettings.AppAccountTextColor; MessageUC_.Info.ForeColor = Classes.AppSettings.AppAccountTextColor; MessageUC_.MessagState.Top = MessageUC_.MessageUc.Bottom - 15; MessageUC_.MessagState.Visible = true; ToolTip tTipInfo = new ToolTip(); tTipInfo.ToolTipIcon = ToolTipIcon.Info; tTipInfo.ToolTipTitle = "Unread Message"; tTipInfo.SetToolTip(MessageUC_.MessagState, "User has not yet seen the message"); panelMain.Controls.Add(MessageUC_); MessageUC_.Scroll += new ScrollEventHandler(MainPanel_Scroll); if (panelMain.Controls.OfType <MessageUC>().Count <MessageUC>() == 0) { labelNoMessages.Visible = true; } else { labelNoMessages.Visible = false; } Connection.sqlCommand.Parameters.Clear(); Connection.sqlCommand.Parameters.AddWithValue("@message", textBoxForchatBox.Text); Connection.IssueQuery("USE trentMessengerDB3; INSERT INTO Msgs VALUES(" + Account.AccountId + ", " + this.Contact_ID + ", @message, '" + DateTime.Now + "', 0, '" + DateTime.Now + "');"); Connection.CloseConnection(); EmoticonUC.Visible = false; panelMain.ScrollControlIntoView(MessageUC_); textBoxForchatBox.Clear(); }