示例#1
0
        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);
        }
示例#2
0
        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);
            }
        }