private GroupMessage make_group_msg(UserMessage userMessage) { WriteLog("make group message"); GroupMessage groupMessage = new GroupMessage(this); groupMessage.setRawMsg(userMessage.getRawMsg()); groupMessage.setMsgId(((JValue)userMessage.getRawMsg()["MsgId"]).Value.ToString()); groupMessage.setFromUserName(((JValue)userMessage.getRawMsg()["FromUserName"]).Value.ToString()); groupMessage.setToUserName(((JValue)userMessage.getRawMsg()["ToUserName"]).Value.ToString()); groupMessage.setMsgType(((JValue)userMessage.getRawMsg()["MsgType"]).Value.ToString()); groupMessage.setText(userMessage.getText()); String content = ((JValue)userMessage.getRawMsg()["Content"]).Value.ToString().Replace("<", "<").Replace(">", ">"); Dictionary <String, String> group = null, src = null; if (groupMessage.getFromUserName().StartsWith("@@")) { //接收到来自群的消息 String g_id = groupMessage.getFromUserName(); groupMessage.setGroupId(g_id); group = this.getGroupById(g_id); if (content.Contains(":<br/>")) { String u_id = content.Split(new string[] { ":<br/>" }, StringSplitOptions.None)[0]; src = getGroupUserById(u_id, g_id); } } else if (groupMessage.getToUserName().StartsWith("@@")) { // 自己发给群的消息 String g_id = groupMessage.getToUserName(); groupMessage.setGroupId(g_id); String u_id = groupMessage.getFromUserName(); src = this.getGroupUserById(u_id, g_id); group = this.getGroupById(g_id); } if (null != src) { groupMessage.setUser_attrstatus(src["AttrStatus"]); groupMessage.setUser_display_name(src["DisplayName"]); groupMessage.setUser_nickname(src["NickName"]); } if (null != group) { groupMessage.setGroup_count(group["MemberCount"]); groupMessage.setGroup_owner_uin(group["OwnerUin"]); groupMessage.setGroup_name(group["ShowName"]); } groupMessage.setTimestamp(((JValue)userMessage.getRawMsg()["CreateTime"]).Value.ToString()); return(groupMessage); }
private void show_msg(UserMessage userMessage) { Dictionary <String, String> src = new Dictionary <string, string>() { { "", "" } }; Dictionary <String, String> dst = null; Dictionary <String, String> group = null; JObject msg = userMessage.getRawMsg(); String content = ((JValue)msg["Content"]).Value.ToString(); content = content.Replace("<", "<").Replace(">", ">"); String msg_id = ((JValue)msg["MsgId"]).Value.ToString(); // 接收到来自群的消息 if (((JValue)msg["FromUserName"]).Value.ToString().Substring(0, 2) == "@@") { String groupId = ((JValue)msg["FromUserName"]).Value.ToString(); group = this.getGroupById(groupId); if (content.Contains(":<br/>")) { String u_id = content.Split(new string[] { ":<br/>" }, StringSplitOptions.None)[0]; src = this.getGroupUserById(u_id, groupId); dst = new Dictionary <string, string>() { { "ShowName", "GROUP" } }; } else { String u_id = ((JValue)msg["ToUserName"]).Value.ToString(); src = new Dictionary <string, string>() { { "ShowName", "SYSTEM" } }; dst = getGroupUserById(u_id, groupId); } } else { // 非群聊消息 src = this.getUserById(((JValue)msg["FromUserName"]).Value.ToString()); dst = this.getUserById(((JValue)msg["ToUserName"]).Value.ToString()); } if (null != group) { WriteLog("{0} |{1}| {2} -> {3}: {4}\n", msg_id, group["ShowName"], src["ShowName"], dst["ShowName"], userMessage.getLog()); } else { string newMsg = string.Format(DateTime.Now.ToString(" hh:mm:ss ") + "{0} {1} -> {2}: {3}\n", msg_id, src["ShowName"], dst["ShowName"], userMessage.getLog()); WriteLog(newMsg); } //显示到界面上 string showMsg = DateTime.Now.ToString(" hh:mm:ss ") + src["ShowName"] + ":" + userMessage.getLog() + "\r\n"; if (FormLogin.formMain.isCurr(src["UserName"])) //发来消息是否来自于当前聊天窗口用户 { FormLogin.formMain.AddtextBoxHistory(showMsg); } else { FormLogin.formMain.SetTitle(showMsg); } listUserMsg.Add(userMessage); }