public void AddBuddy(Buddy buddy, BuddyJoinType joinType) { if (_buddyIdsBlackList.Contains(buddy.Id)) { throw new InvalidOperationException("Buddy is on this group's blacklist"); } if (_buddyIds.Contains(buddy.Id)) { throw new InvalidOperationException($"Buddy {buddy.Id} is already in the group"); } if (_buddyIds.Count >= MaximumGroupSize) { throw new InvalidOperationException($"Only {MaximumGroupSize} buddies are allowed per group"); } var e = new BuddyAdded(Id, buddy.Id, joinType); Publish(e); }
private void When(BuddyAdded e) { _buddyIds.Add(e.BuddyId); }