public void AcceptInvite(ClanMembership membership) { if (Members.Contains(membership.BattleTag)) { throw new ValidationException("Can not participate in clan twice"); } if (!PendingInvites.Contains(membership.BattleTag)) { throw new ValidationException("Player was not invites to sign the clan"); } membership.JoinClan(this); ClanState = ClanState.AcceptInvite(membership); PendingInvites.Remove(membership.BattleTag); }
public void LeaveClan(ClanMembership clanMemberShip) { if (clanMemberShip.BattleTag == ChiefTain) { throw new ValidationException("Chieftain can not leave clan, transfer ownership first"); } clanMemberShip.LeaveClan(); ClanState = ClanState.LeaveClan(clanMemberShip); if (!IsSuccesfullyFounded) { FoundingFathers.Remove(clanMemberShip.BattleTag); } else { Members.Remove(clanMemberShip.BattleTag); } }