Пример #1
0
        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);
        }
Пример #2
0
 private void When(BuddyAdded e)
 {
     _buddyIds.Add(e.BuddyId);
 }