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 DTOId Incluir(int idEvento, DTOSalaEstudo dto) { DTOId retorno = new DTOId(); ExecutarSeguramente(() => { var evento = Contexto.RepositorioEventos.ObterEventoPeloId(idEvento); var sala = new SalaEstudo(evento, dto.Nome); sala.DeveSerParNumeroTotalParticipantes = dto.DeveSerParNumeroTotalParticipantes; if (dto.IdadeMaxima != null && dto.IdadeMinima != null) { sala.FaixaEtaria = new FaixaEtaria(dto.IdadeMinima.Value, dto.IdadeMaxima.Value); } else if (dto.IdadeMaxima != null || dto.IdadeMinima != null) { throw new ExcecaoAplicacao("AppSalasEstudo", "Ao definir a faixa etária, deve-se informar a idade mínima e máxima"); } Contexto.RepositorioSalasEstudo.Incluir(sala); retorno.Id = sala.Id; }); return(retorno); }
protected override bool HaSalaComFaixaEtariaDefinida(SalaEstudo sala) { return(mSessao .QueryOver <SalaEstudo>() .Where(x => x.FaixaEtaria != null && x.Id != sala.Id && x.Evento.Id == sala.Evento.Id) .RowCount() > 0); }
public override SalaEstudo BuscarSalaDoInscrito(int idEvento, int idInscricao) { SalaEstudo aliasSala = null; var consultaParticipantes = QueryOver.Of <SalaEstudo>() .Where(x => x.Id == aliasSala.Id) .JoinQueryOver(x => x.Participantes) .Where(y => y.Id == idInscricao) .SelectList(lista => lista .Select(x => x.Id)); var consultaCoordenadores = QueryOver.Of <AtividadeInscricaoSalaEstudoCoordenacao>() .Where(x => x.SalaEscolhida.Id == aliasSala.Id && x.Inscrito.Id == idInscricao) .SelectList(lista => lista .Select(x => x.Inscrito.Id)); return(mSessao.QueryOver <SalaEstudo>(() => aliasSala) .Where(Restrictions.Conjunction() .Add <SalaEstudo>(x => x.Evento.Id == idEvento) .Add(Restrictions.Disjunction() .Add(Subqueries.WhereExists(consultaCoordenadores)) .Add(Subqueries.WhereExists(consultaParticipantes) ) ) ) .SingleOrDefault()); }
protected override bool FoiEscolhidaInscricao(SalaEstudo sala) { return(mSessao .QueryOver <AtividadeInscricaoSalaEstudoOrdemEscolha>() .JoinQueryOver(x => x.Salas) .Where(x => x.Id == sala.Id) .Take(1) .RowCount() > 0); }
public static DTOSalaEstudo Converter(this SalaEstudo sala) { return(new DTOSalaEstudo { DeveSerParNumeroTotalParticipantes = sala.DeveSerParNumeroTotalParticipantes, Id = sala.Id, IdadeMaxima = sala.FaixaEtaria?.IdadeMax, IdadeMinima = sala.FaixaEtaria?.IdadeMin, Nome = sala.Nome }); }
protected override bool HaParticipatesEmOutraSala(SalaEstudo sala) { InscricaoParticipante aliasParticipante = null; var queryParticipantes = mSessao.QueryOver <SalaEstudo>() .Where(x => x.Id != sala.Id) .JoinQueryOver <InscricaoParticipante>(x => x.Participantes, () => aliasParticipante) .SelectList(x => x.Select(() => aliasParticipante.Id)) .Future <int>(); return(queryParticipantes.Where(x => sala.Participantes.Select(i => i.Id).Contains(x)).Count() > 0); }
public IMovimentacaoParticipante <SalaEstudo> Sala(SalaEstudo sala) { if (sala == null) { throw new ArgumentNullException("sala", "Sala não pode ser vazia."); } if (sala.Evento != mEvento) { throw new ArgumentException("Esta sala é de outro evento.", "sala"); } return(new MovimentacaoParticipanteSala(sala, mSalasEstudo)); }
public override bool HaSalasSemCoordenadorDefinidoDoEvento(Evento evento) { SalaEstudo aliasSala = null; var consultaCoordenadores = QueryOver.Of <AtividadeInscricaoSalaEstudoCoordenacao>() .Where(x => x.SalaEscolhida.Id == aliasSala.Id) .SelectList(x => x.Select(y => y.Id)); return(mSessao.QueryOver <SalaEstudo>(() => aliasSala) .Where(x => x.Evento.Id == evento.Id) .WithSubquery.WhereNotExists(consultaCoordenadores) .RowCount() > 0); }
public IEnumerable <DTODivisaoSalaEstudo> IncluirParticipante(int idEvento, int idSala, int idInscricao) { IList <DTODivisaoSalaEstudo> salasDTO = new List <DTODivisaoSalaEstudo>(); ExecutarSeguramente(() => { Evento evento = m_RepEventos.ObterEventoPeloId(idEvento); InscricaoParticipante inscricao = (InscricaoParticipante)m_RepInscricoes.ObterInscricaoPeloIdEventoEInscricao(idEvento, idInscricao); SalaEstudo sala = m_RepSalas.ObterPorId(idEvento, idSala); DivisaoManualParticipantesPorSalaEstudo divisor = new DivisaoManualParticipantesPorSalaEstudo(evento, m_RepSalas); divisor.Sala(sala).IncluirParticipante(inscricao); m_RepSalas.Atualizar(sala); salasDTO = ObterDivisaoSalas(evento); }); return(salasDTO); }
public IList <CrachaInscrito> ListarCrachasInscritosPorEvento(int idEvento) { Inscricao aliasInscricao = null; CrachaInscrito aliasCracha = null; Pessoa aliasPessoa = null; Oficina aliasAfrac = null; SalaEstudo aliasSala = null; var subConsultaParticipantesAfrac = QueryOver.Of <Oficina>() .Where(x => x.Id == aliasAfrac.Id) .JoinQueryOver(x => x.Participantes) .Where(y => y.Id == aliasInscricao.Id) .SelectList(lista => lista .Select(x => x.Id)); var subConsultaCoordenadoresAfrac = QueryOver.Of <AtividadeInscricaoOficinasCoordenacao>() .Where(x => x.OficinaEscolhida.Id == aliasAfrac.Id && x.Inscrito.Id == aliasInscricao.Id) .SelectList(lista => lista .Select(x => x.Inscrito.Id)); var subConsultaAfrac = QueryOver.Of <Oficina>(() => aliasAfrac) .Where(Restrictions.Conjunction() .Add <Oficina>(x => x.Evento.Id == idEvento) .Add(Restrictions.Disjunction() .Add(Subqueries.WhereExists(subConsultaCoordenadoresAfrac)) .Add(Subqueries.WhereExists(subConsultaParticipantesAfrac) ) ) ) .Select(x => x.Nome); var subConsultaParticipantesSalaEstudo = QueryOver.Of <SalaEstudo>() .Where(x => x.Id == aliasSala.Id) .JoinQueryOver(x => x.Participantes) .Where(y => y.Id == aliasInscricao.Id) .SelectList(lista => lista .Select(x => x.Id)); var subConsultaCoordenadoresSalaEstudo = QueryOver.Of <AtividadeInscricaoSalaEstudoCoordenacao>() .Where(x => x.SalaEscolhida.Id == aliasSala.Id && x.Inscrito.Id == aliasInscricao.Id) .SelectList(lista => lista .Select(x => x.Inscrito.Id)); var subConsultaSalaEstudo = QueryOver.Of <SalaEstudo>(() => aliasSala) .Where(Restrictions.Conjunction() .Add <SalaEstudo>(x => x.Evento.Id == idEvento) .Add(Restrictions.Disjunction() .Add(Subqueries.WhereExists(subConsultaCoordenadoresSalaEstudo)) .Add(Subqueries.WhereExists(subConsultaParticipantesSalaEstudo) ) ) ) .Select(x => x.Nome); var subConsultaQuarto = QueryOver.Of <Quarto>() .Where(x => x.Evento.Id == idEvento) .JoinQueryOver(x => x.Inscritos) .Where(qi => qi.Inscricao.Id == aliasInscricao.Id) .Select(x => x.Nome); var subConsultaDepartamento = QueryOver.Of <Departamento>() .Where(Restrictions.Conjunction() .Add <Departamento>(x => x.Evento.Id == idEvento) .Add(Subqueries.WhereProperty <Departamento>(x => x.Id).In( QueryOver.Of <AtividadeInscricaoDepartamento>() .Where(i => i.Inscrito.Id == aliasInscricao.Id) .Select(i => i.DepartamentoEscolhido.Id)))) .Select(x => x.Nome); return(mSessao.QueryOver <Inscricao>(() => aliasInscricao) .Where(x => x.Evento.Id == idEvento) .JoinQueryOver(x => x.Pessoa, () => aliasPessoa) .Where(x => x.DataNascimento <= new DateTime(2009, 04, 17)) .SelectList(lista => lista .SelectSubQuery(subConsultaAfrac).WithAlias(() => aliasCracha.Afrac) .SelectSubQuery(subConsultaSalaEstudo).WithAlias(() => aliasCracha.SalaEstudo) .SelectSubQuery(subConsultaQuarto).WithAlias(() => aliasCracha.Quarto) .SelectSubQuery(subConsultaDepartamento).WithAlias(() => aliasCracha.Departamento) .Select(() => aliasPessoa.Nome).WithAlias(() => aliasCracha.Nome) .Select(() => aliasInscricao.NomeCracha).WithAlias(() => aliasCracha.NomeConhecido) .Select(() => aliasPessoa.Endereco.Cidade).WithAlias(() => aliasCracha.Cidade) .Select(() => aliasPessoa.Endereco.UF).WithAlias(() => aliasCracha.UF)) .TransformUsing(Transformers.AliasToBean <CrachaInscrito>()) .List <CrachaInscrito>()); }