private void AddUser(UserInfo[] users) { if (this.InvokeRequired) { this.Invoke( new AddUserDel( delegate(UserInfo[] innerUsers) { this.AddUser(innerUsers); } ), users); } else { foreach (UserInfo u in users) { if (u.UserName != null) { this.lstUsers.Items.Add(u); } } } }
private void CheckMsg(string data) { ChatMessage msg = ChatSocketService.ChatSocketService.DeserializeMessage(Encoding.GetEncoding(1252).GetBytes(data)); switch(msg.MessageType) { case MessageType.mtLogin: userInfo = msg.UserInfo[0]; UpdateList(userInfo.UserName + " has entered!"); break; case MessageType.mtAuthenticated: UpdateList(msg.UserInfo[0].UserName + " has entered!"); AddUser(msg.UserInfo); break; case MessageType.mtMessage: UpdateList(msg.UserInfo[0].UserName + "\r\n" + msg.Message); break; case MessageType.mtHello: AddUser(msg.UserInfo); break; case MessageType.mtLogout: RemoveUser(msg.UserInfo); break; } }
private void RemoveUser(UserInfo[] users) { if (this.InvokeRequired) { this.Invoke( new AddUserDel( delegate(UserInfo[] innerUsers) { this.RemoveUser(innerUsers); } ), users); } else { bool found = false; for (int j = 0; j < users.Length; j++) { if (users[j].UserName != null) { for (int i = 0; i < this.lstUsers.Items.Count; i++) { UserInfo u = (UserInfo) this.lstUsers.Items[i]; if (u.UserId == users[j].UserId) { this.lstUsers.Items.RemoveAt(i); found = true; break; } } } if (found) { UpdateList(users[0].UserName + " quits!"); break; } } } }