public void Update(GroupDescription description) { Name = description.Name; DisplayName = description.DisplayName; Joined = description.Member ?? false; var newMembers = new List <IUser>(from name in description.MemberNames select client.GetUser(name)); if (members != null) { var oldMembers = new List <IUser>(members); foreach (var member in newMembers) { if (!oldMembers.Contains(member)) { members.Add(member); UserAdded.SafeInvoke(this, new UserEventArgs(member)); } } foreach (var member in oldMembers) { if (!newMembers.Contains(member)) { members.Remove(member); UserRemoved.SafeInvoke(this, new UserEventArgs(member)); } } } else { members = newMembers; } Changed.SafeInvoke(this, new EventArgs()); }
public void RaiseUserAdded(UserEventArgs e) { UserAdded.SafeInvoke(this, e); }
void OnUserAdded(object sender, UserEventArgs e) { participants.Add(new Participant(e.User)); UserAdded.SafeInvoke(this, e); }