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); }
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); } }