Ejemplo n.º 1
0
 public void Salvar(QuestionarioParticipacao qp)
 {
     repositorio.Salvar(qp);
 }
Ejemplo n.º 2
0
 public void Remover(QuestionarioParticipacao qp)
 {
     repositorio.Excluir(qp);
 }
Ejemplo n.º 3
0
        public void SalvarQuestionario()
        {
            try
            {
                QuestionarioParticipacao questionarioParticipacao;

                if (!string.IsNullOrWhiteSpace(hdnIdQuestionarioParticipacao.Value))
                {
                    questionarioParticipacao = new ManterQuestionarioParticipacao().ObterQuestionarioParticipacaoPorId(int.Parse(hdnIdQuestionarioParticipacao.Value));
                }
                else
                {
                    var questionario = new ManterQuestionario().ObterQuestionarioPorID(int.Parse(hdnIdQuestionario.Value));

                    var usuarioLogado = new ManterUsuario().ObterUsuarioLogado();

                    questionarioParticipacao = new QuestionarioParticipacao
                    {
                        Questionario               = questionario,
                        DataGeracao                = DateTime.Now,
                        Usuario                    = usuarioLogado,
                        DataParticipacao           = DateTime.Now,
                        TipoQuestionarioAssociacao = new ManterTipoQuestionarioAssociacao().ObterTipoQuestionarioAssociacaoPorID(5),
                        TextoEnunciadoPre          = questionario.TextoEnunciado,
                        Evolutivo                  = false,
                        NivelOcupacional           = new NivelOcupacional {
                            ID = usuarioLogado.NivelOcupacional.ID
                        },
                        Uf = new Uf {
                            ID = usuarioLogado.UF.ID
                        },
                        Turma = new Turma {
                            ID = int.Parse(hdnIdTurma.Value)
                        }
                    };
                }

                var listaItemQuestionarioParticipacao = new List <ItemQuestionarioParticipacao>();

                // Obter respostas dissertivas do questionário.
                foreach (Control row in rptQuestionario.Controls)
                {
                    var hdnIdItemQuestionario = (HiddenField)row.FindControl("hdnIdItemQuestionario");

                    if (hdnIdItemQuestionario == null)
                    {
                        throw new AcademicoException("Questionário mal formatado ou alterado, atualize a página e tente novamente.");
                    }

                    int idItemQuestionario;
                    int.TryParse(hdnIdItemQuestionario.Value, out idItemQuestionario);

                    var itemQuestionario = new ManterItemQuestionario().ObterItemQuestionarioPorID(idItemQuestionario);

                    if (itemQuestionario == null)
                    {
                        throw new AcademicoException("Questionário mal formatado ou alterado, atualize a página e tente novamente.");
                    }

                    var txtResposta = (TextBox)row.FindControl("txtResposta");

                    if (txtResposta == null)
                    {
                        throw new AcademicoException("Questionário mal formatado ou alterado, atualize a página e tente novamente.");
                    }

                    var itemQuestionarioParticipacao = Mapper.Map <ItemQuestionarioParticipacao>(itemQuestionario);

                    itemQuestionarioParticipacao.QuestionarioParticipacao = questionarioParticipacao;

                    if (itemQuestionarioParticipacao.TipoItemQuestionario.ID == (int)enumTipoItemQuestionario.Discursiva)
                    {
                        // Validação do campo em branco.
                        if (string.IsNullOrWhiteSpace(txtResposta.Text))
                        {
                            throw new AcademicoException(string.Format("A questão \"{0}\" é obrigatória",
                                                                       string.IsNullOrWhiteSpace(itemQuestionarioParticipacao.Ordem.ToString())
                                    ? itemQuestionarioParticipacao.Questao
                                    : itemQuestionarioParticipacao.Ordem.ToString()));
                        }

                        itemQuestionarioParticipacao.Resposta = txtResposta.Text;
                    }

                    listaItemQuestionarioParticipacao.Add(itemQuestionarioParticipacao);
                }

                questionarioParticipacao.ListaItemQuestionarioParticipacao = listaItemQuestionarioParticipacao;

                // Executar lógica para questionário de cancelamento.
                if (questionarioParticipacao.TipoQuestionarioAssociacao.ID == (int)enumTipoQuestionarioAssociacao.Cancelamento)
                {
                    var matriculasTurmasIds = hdnIdMatriculaTurma.Value.Split(',');

                    foreach (var matriculaIdString in matriculasTurmasIds)
                    {
                        int matriculaId;

                        if (int.TryParse(matriculaIdString, out matriculaId))
                        {
                            var matriculaTurma       = new MatriculaTurma();
                            var manterMatriculaTurma = new ManterMatriculaTurma();

                            if (matriculaId > 0)
                            {
                                matriculaTurma = manterMatriculaTurma.ObterMatriculaTurmaPorId(matriculaId);

                                // Caso seja Gestor, só altera a matrícula caso seja da sua UF.
                                if (matriculaTurma != null)
                                {
                                    questionarioParticipacao.Turma = matriculaTurma.Turma;
                                }
                            }

                            // Alterar Status da matrícula.
                            if (matriculaTurma != null && matriculaTurma.ID != 0)
                            {
                                var manterMatriculaOferta = new ManterMatriculaOferta();

                                var matriculaOferta = manterMatriculaOferta.ObterMatriculaOfertaPorID(matriculaTurma.MatriculaOferta.ID);

                                matriculaOferta.StatusMatricula = (enumStatusMatricula)int.Parse(hdnIdStatusMatricula.Value);

                                // Salvar Data de conclusão e nota final em lote
                                if ((!string.IsNullOrWhiteSpace(txtDataConclusao.Text) ||
                                     !string.IsNullOrWhiteSpace(hdnNotaFinal.Value)) &&
                                    matriculaOferta.Oferta.SolucaoEducacional.FormaAquisicao.Presencial)
                                {
                                    var dataConclusao = CommonHelper.TratarData(txtDataConclusao.Text,
                                                                                "Data Conclusão do lote");

                                    double?notaFinal = null;

                                    double n;

                                    if (double.TryParse(hdnNotaFinal.Value.Trim(), out n))
                                    {
                                        notaFinal = n;
                                    }

                                    foreach (var mt in matriculaOferta.MatriculaTurma)
                                    {
                                        if (dataConclusao.HasValue &&
                                            (!mt.Turma.DataFinal.HasValue || mt.Turma.DataFinal.Value >= dataConclusao))
                                        {
                                            mt.DataTermino = dataConclusao;
                                        }

                                        if (notaFinal.HasValue)
                                        {
                                            mt.MediaFinal = notaFinal;
                                        }
                                    }
                                }

                                manterMatriculaOferta.AtualizarMatriculaOferta(matriculaOferta, false);

                                matriculaTurma.DataTermino = !string.IsNullOrEmpty(txtDataConclusao.Text) ? DateTime.Parse(txtDataConclusao.Text) : DateTime.Now;

                                manterMatriculaTurma.AlterarMatriculaTurma(matriculaTurma);
                            }
                        }
                    }
                }

                // Salvar participação no questionário.
                new ManterQuestionarioParticipacao().Salvar(questionarioParticipacao);

                WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Questionário respondido com Sucesso.");
            }
            catch (AcademicoException ex)
            {
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
            }
        }
Ejemplo n.º 4
0
 public SelecionarProvaDeUmAlunoEventArgs(QuestionarioParticipacao provaSelecionada, int idMatriculaTurma)
 {
     this.ProvaSelecionada = provaSelecionada;
     this.IdMatriculaTurma = idMatriculaTurma;
 }
Ejemplo n.º 5
0
        protected void dgvProvasRealizadas_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
        {
            if (e.Row.RowType.Equals(DataControlRowType.DataRow))
            {
                QuestionarioParticipacao questionarioParticipacao = (QuestionarioParticipacao)e.Row.DataItem;

                if (questionarioParticipacao != null && questionarioParticipacao.ID > 0)
                {
                    decimal percObtido;

                    ManterUsuarioTrilha manterUt;

                    UsuarioTrilha ut;

                    var manterQuestionarioParticipacao = new BP.Services.SgusWebService.ManterQuestionarioParticipacao();

                    manterQuestionarioParticipacao.CalcularPercentualDaProva(questionarioParticipacao, out percObtido, out manterUt, out ut);

                    //Calcula as notas somente para as provas
                    if (questionarioParticipacao.TipoQuestionarioAssociacao != null &&
                        questionarioParticipacao.TipoQuestionarioAssociacao.ID.Equals((int)enumTipoQuestionarioAssociacao.Prova))
                    {
                        decimal notaProva = 0;

                        foreach (ItemQuestionarioParticipacao itemQuestionarioParticipacao in questionarioParticipacao.ListaItemQuestionarioParticipacao)
                        {
                            if (itemQuestionarioParticipacao.ValorAtribuido.HasValue)
                            {
                                notaProva += itemQuestionarioParticipacao.ValorAtribuido.Value;
                            }
                        }

                        Label lblNotaProva = (Label)e.Row.FindControl("lblNotaProva");
                        lblNotaProva.Text = notaProva.ToString();
                    }

                    Label lblTipoQuestionarioAssociacao = (Label)e.Row.FindControl("lblTipoQuestionarioAssociacao");
                    switch (questionarioParticipacao.TipoQuestionarioAssociacao.ID)
                    {
                    case (int)enumTipoQuestionarioAssociacao.Prova:
                        lblTipoQuestionarioAssociacao.Text = "Prova";
                        break;

                    case (int)enumTipoQuestionarioAssociacao.Pre:

                        if (questionarioParticipacao.Evolutivo)
                        {
                            lblTipoQuestionarioAssociacao.Text = "Diagnóstico Pré";
                        }
                        else
                        {
                            lblTipoQuestionarioAssociacao.Text = "Questionário Pré";
                        }

                        break;

                    case (int)enumTipoQuestionarioAssociacao.Pos:

                        if (questionarioParticipacao.Evolutivo)
                        {
                            lblTipoQuestionarioAssociacao.Text = "Diagnóstico Pós";
                        }
                        else
                        {
                            lblTipoQuestionarioAssociacao.Text = "Questionário Pós";
                        }

                        break;
                    }
                }
            }
        }
Ejemplo n.º 6
0
        public IList <QuestionarioParticipacao> ObterQuestionarioParticipacaoPorFiltro(QuestionarioParticipacao pQuestionarioParticipacao)
        {
            var query = repositorio.session.Query <QuestionarioParticipacao>();

            if (pQuestionarioParticipacao.Turma != null)
            {
                query = query.Where(x => x.Turma.ID == pQuestionarioParticipacao.Turma.ID);
            }

            if (pQuestionarioParticipacao.TurmaCapacitacao != null)
            {
                query = query.Where(x => x.TurmaCapacitacao.ID == pQuestionarioParticipacao.TurmaCapacitacao.ID);
            }

            if (pQuestionarioParticipacao.TrilhaNivel != null)
            {
                query = query.Where(x => x.TrilhaNivel.ID == pQuestionarioParticipacao.TrilhaNivel.ID);
            }

            if (pQuestionarioParticipacao.TipoQuestionarioAssociacao != null)
            {
                query = query.Where(x => x.TipoQuestionarioAssociacao.ID == pQuestionarioParticipacao.TipoQuestionarioAssociacao.ID);
            }

            if (pQuestionarioParticipacao.Usuario != null)
            {
                query = query.Where(x => x.Usuario.ID == pQuestionarioParticipacao.Usuario.ID);
            }

            if (pQuestionarioParticipacao.Questionario != null)
            {
                query = query.Where(x => x.Questionario.ID == pQuestionarioParticipacao.Questionario.ID);
            }

            if (pQuestionarioParticipacao.DataGeracao != new DateTime(1, 1, 1))
            {
                query = query.Where(x => x.DataGeracao.Date == pQuestionarioParticipacao.DataGeracao.Date);
            }

            query = query.Where(x => x.Evolutivo == pQuestionarioParticipacao.Evolutivo);

            return(query.ToList());
        }
Ejemplo n.º 7
0
        private static DTORelatorioQuestionarioParticipacao PreencherRespostas(IReadOnlyList <DTORelatorioQuestionarioQuestao> listaQuestoes,
                                                                               List <ItemQuestionarioParticipacao> itensQuestionarioParticipacao,
                                                                               List <ItemQuestionarioParticipacaoOpcoes> todasRespostasSelecionadas,
                                                                               QuestionarioParticipacao questionarioParticipacao, List <Usuario> professores)
        {
            // Objeto DTO contendo vários dados do clone do questionário.
            var participacaoDto = ObterObjetoParticipacaoDto(questionarioParticipacao);

            // Obter nota a partir da opção selecionada, ou texto caso seja questão discursiva.
            foreach (var itemQuestionario in itensQuestionarioParticipacao)
            {
                if (itemQuestionario.InAvaliaProfessor && professores.Any())
                {
                    var questoes = listaQuestoes.Where(
                        x => x.Nome.ToLower().Trim() == itemQuestionario.Questao.ToLower().Trim());

                    foreach (var questao in questoes)
                    {
                        var resposta = new DTORelatorioQuestionarioResposta
                        {
                            Questao = questao
                        };

                        Usuario professor = null;

                        if (questao.IdProfessor != null)
                        {
                            professor = new Usuario
                            {
                                ID   = questao.IdProfessor.Value,
                                Nome = questao.NomeProfessor
                            };
                        }

                        PreencherResposta(itemQuestionario, resposta, todasRespostasSelecionadas, professor);

                        // Adicionar resposta vinculada à pergunta.
                        participacaoDto.Respostas.Add(resposta);
                    }
                }
                else
                {
                    var resposta = new DTORelatorioQuestionarioResposta
                    {
                        // Relaciona a resposta com a questão através do texto da questão.
                        // Absurdo, mas não tem outra opção de relacionar uma questão clone
                        // com a questão original. Chora, deita e rola... Muito.
                        Questao = listaQuestoes.FirstOrDefault(
                            x => x.Nome.ToLower().Trim() == itemQuestionario.Questao.ToLower().Trim())
                    };

                    // Só adiciona a resposta para uma pergunta que exista na lista informada.
                    if (resposta.Questao == null)
                    {
                        continue;
                    }

                    PreencherResposta(itemQuestionario, resposta, todasRespostasSelecionadas);

                    // Adicionar resposta vinculada à pergunta.
                    participacaoDto.Respostas.Add(resposta);
                }
            }

            return(participacaoDto);
        }