Beispiel #1
0
        public void IncluirInscrito(Inscricao inscrito, Boolean ehCoordenador)
        {
            if (inscrito == null)
            {
                throw new ArgumentNullException("inscrito", "Não pode ser nulo.");
            }

            if (inscrito.Evento != mQuarto.Evento)
            {
                throw new ArgumentException("Esta inscrição é de outro evento.", "inscrito");
            }

            /*if (inscrito is InscricaoInfantil)
             *  throw new ArgumentException("Não se pode incluir uma inscrição de criança.", "inscrito");*/

            if (inscrito is InscricaoParticipante && mQuarto.Sexo != EnumSexoQuarto.Misto && (int)inscrito.Pessoa.Sexo != (int)mQuarto.Sexo)
            {
                throw new ArgumentException("Esta inscrição é de sexo diferente do definido no quarto.", "inscrito");
            }

            var inscritosQuarto = mQuartos.SelectMany(x => x.Inscritos);

            if (inscritosQuarto.Count(x => x.Inscricao == inscrito) > 0)
            {
                throw new ArgumentException("Esta inscrição já está em outro quarto.", "inscrito");
            }

            mQuarto.AdicionarInscrito(inscrito, ehCoordenador);
        }
Beispiel #2
0
        public void Para(Quarto onde, Boolean ehCoordenador)
        {
            if (onde == null)
            {
                throw new ArgumentNullException("onde", "Não pode ser nulo.");
            }

            if (onde == mQuartoOrigem)
            {
                throw new ArgumentException("Não se pode mover uma inscrição para o mesmo quarto.");
            }

            if (onde.Capacidade != null && onde.Capacidade.Value + mInscricoes.Length > onde.Capacidade.Value)
            {
                throw new ArgumentException("Não há vagas neste quarto.");
            }

            foreach (var inscrito in mInscricoes)
            {
                onde.AdicionarInscrito(inscrito.Inscricao, ehCoordenador);
                mQuartoOrigem.RemoverInscrito(inscrito);
            }
        }