public void JoinGroup(string groupId, BuddyJoinType joinType) { if (joinType == BuddyJoinType.New && CurrentGroupId != null) { throw new InvalidOperationException("Can't join group when still being in another one"); } var e = new GroupJoined(Id, groupId); Publish(e); }
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); }
public BuddyAdded(string id, string buddyId, BuddyJoinType type) { Id = id; BuddyId = buddyId; Type = type; }
public JoinGroupCommand(string buddyId, string groupId, BuddyJoinType type) { BuddyId = buddyId; GroupId = groupId; Type = type; }