public IQueryable <RespostaParticipacaoProfessor> ObterPorItemQuestionarioParticipacao(
     ItemQuestionarioParticipacao itemQuestionarioParticipacao)
 {
     return
         (bmRespostaParticipacaoProfessor.ObterTodosIQueryable()
          .Where(x => x.ItemQuestionarioParticipacao.ID == itemQuestionarioParticipacao.ID));
 }
Пример #2
0
 public ItemQuestionarioParticipacaoOpcoes ObterRespostaSelecionada(ItemQuestionarioParticipacao item)
 {
     return(_repositorio.session.Query <ItemQuestionarioParticipacaoOpcoes>()
            .FirstOrDefault(x => x.ItemQuestionarioParticipacao.ID == item.ID && x.RespostaSelecionada == true));
 }
 public ItemQuestionarioParticipacaoOpcoes ObterRespostaSelecionada(ItemQuestionarioParticipacao item)
 {
     return(_bmItemQuestionarioOpcoes.ObterRespostaSelecionada(item));
 }
Пример #4
0
        private static void PreencherResposta(ItemQuestionarioParticipacao itemQuestionario,
                                              DTORelatorioQuestionarioResposta resposta,
                                              List <ItemQuestionarioParticipacaoOpcoes> todasRespostasSelecionadas,
                                              Usuario professor = null)
        {
            RespostaParticipacaoProfessor rpp;

            try
            {
                rpp = professor != null
                    ? new ManterRespostaParticipacaoProfessor().ObterTodosIQueryable()
                      .FirstOrDefault(
                    x =>
                    x.ItemQuestionarioParticipacao.ID == itemQuestionario.ID &&
                    x.Professor.ID == professor.ID)
                    : null;
            }
            catch (Exception)
            {
                rpp = null;
            }


            // Caso seja uma questão discursiva, inserir a resposta informada.
            if (itemQuestionario.TipoItemQuestionario.ID == (int)enumTipoItemQuestionario.Discursiva)
            {
                resposta.NotaTexto = rpp != null ? rpp.Resposta : itemQuestionario.Resposta;
            }
            else
            {
                var respostaSelecionada =
                    todasRespostasSelecionadas.FirstOrDefault(
                        x => x.ItemQuestionarioParticipacao.ID == itemQuestionario.ID);

                string nota;

                if (rpp != null)
                {
                    var notaProfessor =
                        new ManterRespostaParticipacaoProfessorOpcoes().ObterTodosIQueryable()
                        .FirstOrDefault(x => x.RespostaParticipacaoProfessor.ID == rpp.ID && x.RespostaSelecionada == true);

                    nota = notaProfessor?.ItemQuestionarioParticipacaoOpcoes.Nome;
                    resposta.NotaTexto   = notaProfessor?.ItemQuestionarioParticipacaoOpcoes.Nome;
                    resposta.IdProfessor = rpp.Professor.ID;
                }
                else
                {
                    nota = respostaSelecionada?.Nome;
                    resposta.NotaTexto = respostaSelecionada?.Nome;
                }

                if (nota != null)
                {
                    // Solução alternativa para obter as notas nos casos dos valores 10 e 0, que são concatenados com strings.
                    // Não existe um campo que salve o valor numérico da resposta.
                    nota =
                        nota.ToLower().Replace("10 - satisfatório", "10")
                        .Replace("0 - insatisfatório", "0");

                    int n;
                    if (int.TryParse(nota, out n))
                    {
                        resposta.Nota = n;
                    }
                    else
                    {
                        resposta.Nota = null;
                    }
                }
                else
                {
                    // Se caiu aqui é porque o questionário resposta está mal formatado.
                    resposta.Nota      = null;
                    resposta.NotaTexto = null;
                }
            }
        }