예제 #1
0
        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);
        }
예제 #2
0
        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);
 }
예제 #6
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);
        }
예제 #10
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);
        }
예제 #11
0
        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>());
        }