void mainView_ChangeContactGroupEvent(string contact, string newgroup) { if (!(currentState is StateIdle)) return; AMessageData messageData = new AddContactMessageData(this.currentUserName, newgroup, contact); Common.Protocol.Message changeContactGroupMessage = new Common.Protocol.Message(new MessageHeader(Common.ServiceTypes.ADD_CONTACT), messageData); outputMessageQueue.Enqueue(changeContactGroupMessage); foreach(KeyValuePair<string,IList<UserListEntry>> pair in ((StateIdle)currentState).ContactsByGroups) { if (pair.Key == newgroup) continue; foreach (UserListEntry entry in pair.Value) { if (entry.UserName == contact) { pair.Value.Remove(entry); ((StateIdle)currentState).ContactsByGroups[newgroup].Add(entry); return; } } } }
void mainView_AddContactEvent(string uname, string group) { if (!(currentState is StateIdle)) return; if (AState.CheckIfContactExists(uname,((StateIdle)currentState).ContactsByGroups)) { ErrorHandler.HandleError("Contact already in contacts list!", "Error", (IWin32Window)mainView); return; } AMessageData messageData = new AddContactMessageData(this.currentUserName, group, uname); Common.Protocol.Message addContactMessage = new Common.Protocol.Message(new MessageHeader(Common.ServiceTypes.ADD_CONTACT), messageData); this.outputMessageQueue.Enqueue(addContactMessage); ((StateIdle)currentState).ContactsByGroups[group].Add(new UserListEntry(uname)); mainView.AddContact(uname, group); if (fileTransferView != null && ((StateIdle)currentState).OnlineContacts.ContainsKey(uname)) { fileTransferView.AddContact(uname); } }