public IEnumerable <DTODivisaoQuarto> MoverParticipante(int idEvento, int idInscricao, int daIdQuarto, int paraIdQuarto, bool ehCoordenador)
        {
            IList <DTODivisaoQuarto> quartosDTO = new List <DTODivisaoQuarto>();

            ExecutarSeguramente(() =>
            {
                Evento evento        = m_RepEventos.ObterEventoPeloId(idEvento);
                Quarto quartoOrigem  = m_RepQuartos.ObterQuartoPorIdEventoEQuarto(idEvento, daIdQuarto);
                Quarto quartoDestino = m_RepQuartos.ObterQuartoPorIdEventoEQuarto(idEvento, paraIdQuarto);

                InscricaoParticipante participante = (InscricaoParticipante)
                                                     m_RepInscricoes.ObterInscricaoPeloIdEventoEInscricao(idEvento, idInscricao);

                DivisaoManualInscricaoPorQuarto divisor =
                    new DivisaoManualInscricaoPorQuarto(evento, m_RepQuartos);

                divisor.Quarto(quartoOrigem).MoverInscrito(participante).Para(quartoDestino, ehCoordenador);

                m_RepQuartos.Atualizar(quartoOrigem);
                m_RepQuartos.Atualizar(quartoDestino);

                quartosDTO = ObterDivisaoQuartos(idEvento);
            });

            return(quartosDTO);
        }
        public IEnumerable <DTODivisaoQuarto> RemoverParticipante(int idEvento, int idInscricao, int idQuarto)
        {
            IList <DTODivisaoQuarto> quartosDTO = new List <DTODivisaoQuarto>();

            ExecutarSeguramente(() =>
            {
                var evento       = m_RepEventos.ObterEventoPeloId(idEvento);
                var quarto       = m_RepQuartos.ObterQuartoPorIdEventoEQuarto(idEvento, idQuarto);
                var participante = (InscricaoParticipante)m_RepInscricoes.ObterInscricaoPeloIdEventoEInscricao(idEvento, idInscricao);

                var divisor = new DivisaoManualInscricaoPorQuarto(
                    evento, m_RepQuartos);

                divisor.Quarto(quarto).RemoverInscrito(participante);

                m_RepQuartos.Atualizar(quarto);

                quartosDTO = ObterDivisaoQuartos(idEvento);
            });

            return(quartosDTO);
        }
        public IEnumerable <DTODivisaoQuarto> DefinirSeEhCoordenador(int idEvento, int idQuarto, int idInscricao, bool ehCoordenador)
        {
            IList <DTODivisaoQuarto> quartosDTO = new List <DTODivisaoQuarto>();

            ExecutarSeguramente(() =>
            {
                Evento evento = m_RepEventos.ObterEventoPeloId(idEvento);
                InscricaoParticipante inscricao = (InscricaoParticipante)m_RepInscricoes.ObterInscricaoPeloIdEventoEInscricao(idEvento, idInscricao);

                Quarto quarto = m_RepQuartos.ObterQuartoPorIdEventoEQuarto(idEvento, idQuarto);

                DivisaoManualInscricaoPorQuarto divisor =
                    new DivisaoManualInscricaoPorQuarto(evento, m_RepQuartos);

                divisor.Quarto(quarto).TornarCoordenador(inscricao, ehCoordenador);

                m_RepQuartos.Atualizar(quarto);

                quartosDTO = ObterDivisaoQuartos(idEvento);
            });

            return(quartosDTO);
        }