public IList <QuestaoParaAvaliarDTO> ListarQuestoesParaAvaliar(FiltrarQuestoesRequest filtro)
        {
            var queryRespostas = _respostaRepository.Queryable().Where(r => r.IdQuestao == filtro.IdQuestao);

            if (filtro.RemoverQuestoesJaAvaliadas)
            {
                queryRespostas = queryRespostas.Where(r => r.PontosGanhos == null);
            }

            var questoes = (from r in queryRespostas
                            join e in _entregaDeLicaoRepository.Queryable() on r.IdEntregaDeLicao equals e.Id
                            where e.Status == EntregaDeLicaoStatusEnum.Entregue
                            orderby e.DataHoraEntrega ascending
                            select new QuestaoParaAvaliarDTO
            {
                IdEntregaDeLicao = e.Id,
                IdResposta = r.Id,
                Resposta = r.Conteudo,
                IdQuestao = r.IdQuestao,
                DataHoraEntrega = e.DataHoraEntrega,
                IdGrupo = e.IdGrupo,
                PontosRecebidos = r.PontosGanhos
            }).ToList();

            return(questoes);
        }
示例#2
0
 public bool AlunoJaComecouAFazerALicao(int idAluno, int idLicao)
 {
     return((from r in _responsavelRepository.Queryable()
             join e in _entregaDeLicaoRepository.Queryable() on r.IdEntregaDeLicao equals e.Id
             where r.IdAluno == idAluno &&
             e.IdLicao == idLicao
             select e).Any());
 }
示例#3
0
        public IList <EntregaDeTrofeuDTO> Listar(FiltroTrofeusRequest filtro)
        {
            if (!filtro.IdEntregaDeLicao.HasValue && !filtro.IdGrupo.HasValue && !filtro.IdUsuario.HasValue)
            {
                throw new Exception("Solicitação inválida.");
            }

            IQueryable <EntregaDeTrofeu> queryTrofeusEntregues = _repository.Queryable();

            if (filtro.IdEntregaDeLicao.HasValue)
            {
                queryTrofeusEntregues = from et in queryTrofeusEntregues
                                        join el in _entregaDeLicaoRepository.Queryable() on et.IdEntregaDeLicao equals el.Id
                                        where el.Id == filtro.IdEntregaDeLicao.Value
                                        select et;
            }
            else if (filtro.IdGrupo.HasValue)
            {
                queryTrofeusEntregues = from et in queryTrofeusEntregues
                                        join el in _entregaDeLicaoRepository.Queryable() on et.IdEntregaDeLicao equals el.Id
                                        where el.IdGrupo == filtro.IdGrupo.Value
                                        select et;
            }
            else if (filtro.IdUsuario.HasValue)
            {
                queryTrofeusEntregues = from et in queryTrofeusEntregues
                                        join r in _responsavelPelaLicaoRepository.Queryable() on et.IdEntregaDeLicao equals r.IdEntregaDeLicao
                                        join a in _alunoDoCaseRepository.Queryable() on r.IdAluno equals a.Id
                                        where a.IdUsuario == filtro.IdUsuario.Value
                                        select et;
            }

            var trofeus = (from et in queryTrofeusEntregues
                           join t in _trofeuRepository.Queryable() on et.IdTrofeu equals t.Id
                           select new EntregaDeTrofeuDTO
            {
                IdEntrega = et.Id,
                IdTrofeu = et.IdTrofeu,
                NomeTrofeu = t.Nome,
                PontosMovimentados = t.Pontos
            }).ToList();

            return(trofeus);
        }
示例#4
0
 private bool GrupoJaTeveLicaoEntregue(int idGrupo)
 {
     return((from e in _entregaDeLicaoRepository.Queryable()
             where e.IdGrupo == idGrupo && e.Status == EntregaDeLicaoStatusEnum.Entregue
             select e).Any());
 }