public IEnumerable <DTODivisaoSalaEstudo> MoverParticipante(int idEvento, int idInscricao, int daIdSala, int paraIdSala) { IList <DTODivisaoSalaEstudo> salasDTO = new List <DTODivisaoSalaEstudo>(); ExecutarSeguramente(() => { Evento evento = m_RepEventos.ObterEventoPeloId(idEvento); SalaEstudo salaOrigem = m_RepSalas.ObterPorId(idEvento, daIdSala); SalaEstudo salaDestino = m_RepSalas.ObterPorId(idEvento, paraIdSala); InscricaoParticipante participante = (InscricaoParticipante) m_RepInscricoes.ObterInscricaoPeloIdEventoEInscricao(idEvento, idInscricao); DivisaoManualParticipantesPorSalaEstudo divisor = new DivisaoManualParticipantesPorSalaEstudo(evento, m_RepSalas); divisor.Sala(salaOrigem).MoverParticipante(participante).Para(salaDestino); m_RepSalas.Atualizar(salaOrigem); m_RepSalas.Atualizar(salaDestino); salasDTO = ObterDivisaoSalas(evento); }); return(salasDTO); }
public static void AtribuirAtividadeSalaEstudo(this InscricaoParticipante inscParticipante, DTOInscricaoSalaEstudo dto, ASalasEstudo repSalas) { if (dto != null) { if (dto.Coordenador != null) { inscParticipante.AdicionarAtividade( new AtividadeInscricaoSalaEstudoCoordenacao( inscParticipante, repSalas.ObterPorId(inscParticipante.Evento.Id, dto.Coordenador.Id))); } else if (dto.EscolhidasParticipante != null && dto.EscolhidasParticipante.Count > 0) { var salas = repSalas.ListarTodasPorEvento(inscParticipante.Evento.Id); var escolhas = new SalasEstudoEscolhidas(inscParticipante.Evento); foreach (var dtoOficina in dto.EscolhidasParticipante) { if (escolhas.Salas.Count() == 0) { escolhas.DefinirPrimeiraPosicao(salas.FirstOrDefault(x => x.Id == dtoOficina.Id)); } else { escolhas.DefinirProximaPosicao(salas.FirstOrDefault(x => x.Id == dtoOficina.Id)); } } var gestaoOficinas = new GestaoSalasEstudoEscolhidas( repSalas, escolhas); inscParticipante.AdicionarAtividade( new AtividadeInscricaoSalaEstudoOrdemEscolha( inscParticipante, gestaoOficinas)); } else { inscParticipante.AdicionarAtividade( new AtividadeInscricaoSalaEstudo(inscParticipante)); } } }