private void DeleteFriend_Click(object sender, RoutedEventArgs e) { MilessFriend friend = new MilessFriend(); try { friend = listFriends.SelectedItem as MilessFriend; } catch (NullReferenceException) { return; }; if (friend == null) { MessageBox.Show("请先选择要删除的朋友!"); return; } //MessageBox.Show("pass"); foreach (var fri in FriendList) { if (fri.FriendID == friend.FriendID) { FriendList.Remove(fri); break; //MessageBox.Show("Changed"); } } }
private void LoadAddressBook() { List <String> temp = new List <string>(); var fs = new FileStream(@".\data\AdressBook.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite); StreamReader sr = new StreamReader(fs); var line = sr.ReadLine(); while (line != null) { temp.Add(line); line = sr.ReadLine(); } //规定数据结构:FriendID_FriendAlias foreach (var t in temp) { if (t != "") { var arr = t.Split('_'); var newfri = new MilessFriend(); newfri.FriendAlias = arr[1]; newfri.FriendID = arr[0]; FriendList.Add(newfri); } } sr.Close(); fs.Close(); }
private void AddFriend_Click(object sender, RoutedEventArgs e) { //添加新的群组 var addwin = new AddFriend(); addwin.Show(); addwin.CloseEvent += new AFEventHandler(FindAFriend); addwin.GetMyAccount(account); this.Hide(); void FindAFriend() { this.Show(); if (addwin.HaveFindFriend == 1) { NewFriendAccount = addwin.GetNewAccount(); string[] arr = NewFriendAccount.Split('_'); MilessFriend newFriend = new MilessFriend(); foreach (var fri in FriendList) { if (fri.FriendAlias == arr[1] || fri.FriendID == arr[0]) { MessageBox.Show("添加失败:ID或昵称重复."); return; } } newFriend.FriendAlias = arr[1]; newFriend.FriendID = arr[0]; newFriend.FriendIP = addwin.GetNewIP(); FriendList.Add(newFriend); } } }
private void AddGroupToFriendList(List <MilessFriend> glist) { string group_name = ""; string group_id = " "; foreach (var friend in glist) { group_id += friend.FriendID + " "; group_name += friend.FriendAlias + " "; } MilessFriend gFriend = new MilessFriend(); gFriend.FriendAlias = group_name; gFriend.FriendID = group_id; FriendList.Add(gFriend); }
private async void DistributeMessage(MyDataGram mdg) { //群组的greetings消息:直接加入到通讯录 if (mdg.GroupID != "" && mdg.Text == "__init__" && mdg.DstID == account) { //Greetings Message //Add to Addresbook MilessFriend nf = new MilessFriend(); foreach (var fri in FriendList) { if (fri.FriendID == mdg.SrcID) { nf.FriendAlias = fri.FriendAlias; break; } } nf.FriendAlias = "Group with:" + nf.FriendAlias; nf.FriendID = mdg.GroupID; int chachong = 0; foreach (var fri in FriendList) { var a = fri.FriendID; //为分组 if (a[0] == ' ') { if (GroupIDMatch(fri.FriendID, a)) { chachong = 1; } } } if (chachong == 0) { //本组之前没有出现过 FriendList.Add(nf); listFriends.ScrollIntoView(nf); } return; } var ChattingWindowNumber = ChatWindowList.Count; if (ChattingWindowNumber == 0) { AlarmNewMessage(mdg); } else { int FindWindow = 0; foreach (var cw in ChatWindowList) { if (mdg.GroupID != "") { //由组内成员的学号判断是否为同一分组 if (GroupIDMatch(mdg.GroupID, cw.GetWindowInfo())) { cw.ReceiveMessage(mdg); FindWindow = 1; break; } } if (mdg.SrcID == cw.GetWindowInfo()) { //分给相应的窗口信息 cw.ReceiveMessage(mdg); FindWindow = 1; break; } } if (FindWindow == 0) { AlarmNewMessage(mdg); } } }
private void GroupChat_Click(object sender, RoutedEventArgs e) { if (GroupChatIter == 0) { listFriends.SelectionMode = SelectionMode.Multiple; GroupChatIter = 1; Title.Content = "请选择要聊天的好友,再次点击群聊确认"; Title.HorizontalContentAlignment = HorizontalAlignment.Center; Title.FontSize = 12; GroupChat.Content = "确认"; AddFriend.IsEnabled = false; DeleteFriend.IsEnabled = false; StartChat.IsEnabled = false; } else if (GroupChatIter == 1) { GroupChatIter = 0; Title.Content = "Friends"; Title.FontSize = 32; Title.HorizontalContentAlignment = HorizontalAlignment.Left; GroupChat.Content = "发起\n群聊"; AddFriend.IsEnabled = true; DeleteFriend.IsEnabled = true; StartChat.IsEnabled = true; //Start Chat Window //MessageBox.Show("Start Window!"); var li = listFriends.SelectedItems; if (li == null) { MessageBox.Show("请先选择聊天的群组!"); return; } List <MilessFriend> GroupChatFriendList = new List <MilessFriend>(); foreach (var item in li) { var friend = item as MilessFriend; if (friend.FriendAlias[0] == ' ') { MessageBox.Show("不能添加群组作为群组成员!"); return; } GroupChatFriendList.Add(friend); } //Start Chat Window foreach (var gfri in GroupChatFriendList) { if (gfri.FriendID == account) { MessageBox.Show("别自言自语,和别人聊天吧!"); return; } } var me = new MilessFriend(); me.FriendAlias = "me"; me.FriendID = account; if (!GroupChatFriendList.Contains(me)) { GroupChatFriendList.Add(me); } listFriends.SelectionMode = SelectionMode.Single; string group_id = " "; string group_name = ""; foreach (var friend in GroupChatFriendList) { group_id += friend.FriendID + " "; group_name += friend.FriendAlias + " "; } foreach (var friID in ChattingIDList) { if (GroupIDMatch(group_id, friID)) { MessageBox.Show("已有聊天窗口!"); return; } } ChatWindow cw = new ChatWindow(); cw.SetMyID(account); cw.SetFriendInfo(group_id + "_" + group_name); var newcwID = cw.GetWindowInfo(); ChattingIDList.Add(newcwID);//Super friend ChatWindowList.Add(cw); cw.Show(); cw.CloseEvent += new cwEventHandler(cwClose); void cwClose() { foreach (var cww in ChatWindowList) { if (cww.GetWindowInfo() == cw.GetWindowInfo()) { ChatWindowList.Remove(cww); break; } } foreach (var id in ChattingIDList) { if (cw.GetWindowInfo() == id) { ChattingIDList.Remove(id); break; } } } //Add group to friend_list AddGroupToFriendList(GroupChatFriendList); } }
private void StartChatWindow() { MilessFriend friend = new MilessFriend(); friend = listFriends.SelectedItem as MilessFriend; if (friend == null) { MessageBox.Show("请先选择聊天的朋友!"); return; } if (friend.FriendID[0] == ' ') { foreach (var friID in ChattingIDList) { if (GroupIDMatch(friend.FriendID, friID)) { MessageBox.Show("已有聊天窗口!"); return; } } } else { string friendIP = ""; var resp = CSCore_instance.Query("q" + friend.FriendID); if (resp == "n") { MessageBox.Show("好友不在线!"); return; } else if (friend.FriendID == account) { MessageBox.Show("别自言自语,和别人聊天吧!"); return; } else { // Danger friendIP = resp; } friend.FriendIP = friendIP; foreach (var friID in ChattingIDList) { if (friend.FriendID == friID) { MessageBox.Show("已有聊天窗口!"); return; } } } ChattingIDList.Add(friend.FriendID); ChatWindow cw = new ChatWindow(); cw.SetMyID(account); cw.SetFriendInfo(friend.FriendID + "_" + friend.FriendAlias); ChatWindowList.Add(cw); cw.Show(); cw.CloseEvent += new cwEventHandler(cwClose); void cwClose() { foreach (var cww in ChatWindowList) { if (cww.GetWindowInfo() == cw.GetWindowInfo()) { ChatWindowList.Remove(cww); break; } } foreach (var id in ChattingIDList) { if (cw.GetWindowInfo() == id) { ChattingIDList.Remove(id); break; } } } }