private IList <QuestionarioAssociacao> AtualizarQuestionarioAssociacao(IList <QuestionarioAssociacao> listaRetorno, classes.TurmaCapacitacao turma, int idQuestionario, enumTipoQuestionarioAssociacao tipo)
        {
            var questionarioAssociacao = listaRetorno.FirstOrDefault(p => p.TipoQuestionarioAssociacao.ID == (int)tipo);

            if (idQuestionario == 0)
            {
                if (questionarioAssociacao == null)
                {
                    return(listaRetorno);
                }
                listaRetorno.Remove(questionarioAssociacao);
                return(listaRetorno);
            }
            var manterQuestionario = new ManterQuestionario();
            var questionario       = manterQuestionario.ObterQuestionarioPorID(idQuestionario);

            if (questionarioAssociacao == null)
            {
                listaRetorno.Add(ObterQuestionarioAssociacao(turma, tipo, questionario));
            }
            else
            {
                var index = listaRetorno.IndexOf(questionarioAssociacao);
                listaRetorno[index].Questionario = questionario;
                listaRetorno[index].TipoQuestionarioAssociacao = new ManterTipoQuestionarioAssociacao().ObterTipoQuestionarioAssociacaoPorID((int)tipo);
            }
            return(listaRetorno);
        }
        private void TratarQuestionario(classes.TrilhaNivel trilhaNivel, int idQuestionario, bool evolutivo,
                                        enumTipoQuestionarioAssociacao tipoQuestionarioAssociacao)
        {
            var questionario = new ManterQuestionario().ObterQuestionarioPorID(idQuestionario);
            var questionarioAssociacaoEditar =
                trilhaNivel.ListaQuestionarioAssociacao.FirstOrDefault(
                    x =>
                    x.TrilhaNivel.ID == trilhaNivel.ID && x.Evolutivo == evolutivo &&
                    x.TipoQuestionarioAssociacao.ID == (int)tipoQuestionarioAssociacao);

            if (questionarioAssociacaoEditar == null)
            {
                var questionarioAssociacaoAdicionar = new QuestionarioAssociacao
                {
                    TipoQuestionarioAssociacao =
                        new ManterTipoQuestionarioAssociacao().ObterTipoQuestionarioAssociacaoPorID(
                            (int)tipoQuestionarioAssociacao),
                    Evolutivo    = evolutivo,
                    TrilhaNivel  = trilhaNivel,
                    Questionario = questionario,
                    Obrigatorio  = true
                };

                trilhaNivel.ListaQuestionarioAssociacao.Add(questionarioAssociacaoAdicionar);
            }
            else
            {
                questionarioAssociacaoEditar.Questionario = questionario;
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                var turmaCapacitacao = new classes.TurmaCapacitacao();
                WebFormHelper.PreencherLista(new BMPrograma().ObterTodos().OrderBy(x => x.Nome).ToList(), ddlPrograma, true);

                var listaQuestionariosDePesquisa = new ManterQuestionario().ObterQuestionariosDePesquisa();

                if (listaQuestionariosDePesquisa.Any())
                {
                    WebFormHelper.PreencherLista(listaQuestionariosDePesquisa, ddlQuestionarioPre, false, true);
                    WebFormHelper.PreencherLista(listaQuestionariosDePesquisa, ddlQuestionarioPos, false, true);

                    ddlQuestionarioPre.Enabled = true;
                    ddlQuestionarioPos.Enabled = true;
                }
                else
                {
                    PreencherQuestionarioListaVazia();
                }

                if (Request["Id"] != null)
                {
                    var idTurmaCapacitacao = int.Parse(Request["Id"]);
                    turmaCapacitacao = new BMTurmaCapacitacao().ObterPorId(idTurmaCapacitacao);
                    PreencherCampos(turmaCapacitacao);
                }

                PreencherListaUfs(turmaCapacitacao);
            }
        }
Beispiel #4
0
        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            try
            {
                if (Session["QuestionarioEdit"] == null)
                {
                    manterQuestionario = new ManterQuestionario();
                    questionarioEdicao = ObterObjetoQuestionario();
                    manterQuestionario.IncluirQuestionario(questionarioEdicao);
                    this.LimparQuestionarioDaSessao();
                }
                else
                {
                    //this.SetarAcaoDaTela(enumAcaoTelaQuestionario.EdicaoDeUmItem);
                    questionarioEdicao = ObterObjetoQuestionario();
                    manterQuestionario.AlterarQuestionario(questionarioEdicao);
                    this.LimparQuestionarioDaSessao();
                }

                Session.Remove("QuestionarioEdit");
            }
            catch (AcademicoException ex)
            {
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
                return;
            }

            WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Dados Gravados com Sucesso !", "ListarQuestionario.aspx");
        }
        public IQueryable <Questionario> ListaQuestionario(DTOFiltroRelatorioQuestionario filtro)
        {
            var resultado = new ManterQuestionario().ObterTodosIQueryable();

            if (filtro.IdTurma != null)
            {
                resultado = resultado.Where(x => x.ListaQuestionarioParticipacao.Any(y => y.Turma.ID == filtro.IdTurma));
            }

            if (filtro.IdOferta != null)
            {
                resultado = resultado.Where(x => x.ListaQuestionarioParticipacao.Any(y => y.Turma.Oferta.ID == filtro.IdOferta));
            }

            if (filtro.IdSolucaoEducacional != null)
            {
                resultado = resultado.Where(x => x.ListaQuestionarioParticipacao.Any(y => y.Turma.Oferta.SolucaoEducacional.ID == filtro.IdSolucaoEducacional));
            }

            if (filtro.IdProcesso != null)
            {
                resultado = resultado.Where(x => x.ListaCampos.Any(c => c.Etapa.Processo.ID == filtro.IdProcesso));
            }

            if (filtro.IdTipoQuestionario != null)
            {
                resultado = resultado.Where(x => x.TipoQuestionario.ID == filtro.IdTipoQuestionario);
            }

            return(resultado);
        }
        private void PreencherComboQuestionario(classes.TrilhaNivel nivel)
        {
            try
            {
                var listaQuestionariosDePre =
                    new ManterQuestionario().ObterQuestionariosDePesquisa().Where(x => x.Ativo == true).ToList();

                // Adicionar os questionários cadastrados nas listas, caso não já estejam, pois acima filtra aonde eles não são ativos.
                // Se o questionário vinculado não for mais ativo, adiciona ele na lista para manter o cadastro.

                // Associar pré não ativo
                QuestionarioAssociacao associacaoPre;
                var questionarioPre =
                    (associacaoPre = nivel.ListaQuestionarioAssociacao.FirstOrDefault(
                         x => x.TipoQuestionarioAssociacao.ID == (int)enumTipoQuestionarioAssociacao.Pre)) != null ? associacaoPre.Questionario : null;

                if (questionarioPre != null && listaQuestionariosDePre.All(x => x.ID != questionarioPre.ID))
                {
                    listaQuestionariosDePre.Add(questionarioPre);
                }

                // Associar pós não ativo

                var listaQuestionariosDePos =
                    new ManterQuestionario().ObterQuestionariosDePesquisa().Where(x => x.Ativo == true).ToList();

                QuestionarioAssociacao associacaoPos;
                var questionarioPos =
                    (associacaoPos = nivel.ListaQuestionarioAssociacao.FirstOrDefault(
                         x => x.TipoQuestionarioAssociacao.ID == (int)enumTipoQuestionarioAssociacao.Pos)) != null ? associacaoPos.Questionario : null;

                if (questionarioPos != null && listaQuestionariosDePos.All(x => x.ID != questionarioPos.ID))
                {
                    listaQuestionariosDePos.Add(questionarioPos);
                }

                // Associar prova não ativa;

                var listaQuestionariosDeAvaliacaoProva =
                    new ManterQuestionario().ObterQuestionariosDeAvaliacaoProva().Where(x => x.Ativo == true).ToList();

                QuestionarioAssociacao associacaoProva;
                var questionarioProva =
                    (associacaoProva = nivel.ListaQuestionarioAssociacao.FirstOrDefault(
                         x => x.TipoQuestionarioAssociacao.ID == (int)enumTipoQuestionarioAssociacao.Prova)) != null ? associacaoProva.Questionario : null;

                if (questionarioProva != null && listaQuestionariosDeAvaliacaoProva.All(x => x.ID != questionarioProva.ID))
                {
                    listaQuestionariosDeAvaliacaoProva.Add(questionarioProva);
                }

                //WebFormHelper.PreencherLista(listaQuestionariosDePre.OrderBy(x => x.Nome).ToList(), ddlQuestionarioPre, false, true);
                WebFormHelper.PreencherLista(listaQuestionariosDePos.OrderBy(x => x.Nome).ToList(), ddlQuestionarioPos, false, true);
                WebFormHelper.PreencherLista(listaQuestionariosDeAvaliacaoProva.OrderBy(x => x.Nome).ToList(), ddlQuestionarioProva, false, true);
            }
            catch (AcademicoException ex)
            {
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
            }
        }
        private void PreencherComboQuestionario()
        {
            try
            {
                IList <Questionario> ListaQuestionariosDePesquisa       = new ManterQuestionario().ObterQuestionariosDePesquisa();
                IList <Questionario> ListaQuestionariosDeAvaliacaoProva = new ManterQuestionario().ObterQuestionariosDeAvaliacaoProva();

                WebFormHelper.PreencherLista(ListaQuestionariosDePesquisa, ddlQuestionarioPre, false, true);
                WebFormHelper.PreencherLista(ListaQuestionariosDePesquisa, ddlQuestionarioPos, false, true);
                WebFormHelper.PreencherLista(ListaQuestionariosDeAvaliacaoProva, ddlQuestionarioProva, false, true);
            }
            catch (AcademicoException ex)
            {
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
            }
        }
Beispiel #8
0
        /// <summary>
        /// Consulta a quantidade de itens questionário agrupados
        /// </summary>
        /// <param name="matricula"></param>
        /// <returns></returns>
        public int ConsultarQuantidadeItensQuestionarioAssociados(MatriculaTurma matricula)
        {
            if (matricula.Turma.ListaQuestionarioAssociacao.Count > 0)
            {
                var itemQuestionarioAssociacaoEficacia =
                    matricula.Turma.ListaQuestionarioAssociacao.FirstOrDefault(
                        x => x.TipoQuestionarioAssociacao.ID == (int)enumTipoQuestionarioAssociacao.Eficacia);
                if (itemQuestionarioAssociacaoEficacia != null)
                {
                    int quantidade = new ManterQuestionario().QuantidadeQuestionariosAgrupados(itemQuestionarioAssociacaoEficacia.Questionario);
                    return(quantidade > 0 ? quantidade : 1);
                }
            }

            return(1);
        }
Beispiel #9
0
        private void TratarQuestionario(Turma turma, int idQuestionario, bool evolutivo, enumTipoQuestionarioAssociacao tipoQuestionarioAssociacao)
        {
            Questionario           questionario = new ManterQuestionario().ObterQuestionarioPorID(idQuestionario);
            QuestionarioAssociacao questionarioAssociacaoEditar = turma.ListaQuestionarioAssociacao.FirstOrDefault(x => x.Turma != null && x.Turma.ID == turma.ID && x.Evolutivo == evolutivo && x.TipoQuestionarioAssociacao.ID == (int)tipoQuestionarioAssociacao);

            if (questionarioAssociacaoEditar == null)
            {
                QuestionarioAssociacao questionarioAssociacaoAdicionar = new QuestionarioAssociacao();
                questionarioAssociacaoAdicionar.TipoQuestionarioAssociacao = new ManterTipoQuestionarioAssociacao().ObterTipoQuestionarioAssociacaoPorID((int)tipoQuestionarioAssociacao);
                questionarioAssociacaoAdicionar.Evolutivo    = false;
                questionarioAssociacaoAdicionar.Turma        = turma;
                questionarioAssociacaoAdicionar.Questionario = questionario;
                questionarioAssociacaoAdicionar.Obrigatorio  = true;
                turma.ListaQuestionarioAssociacao.Add(questionarioAssociacaoAdicionar);
            }
            else
            {
                questionarioAssociacaoEditar.Questionario = questionario;
            }
        }
Beispiel #10
0
        private Questionario ObterObjetoQuestionario()
        {
            //Insert
            if (this.QuestionarioDaSessao.ID == 0)
            {
                manterQuestionario = new ManterQuestionario();
                questionarioEdicao = this.QuestionarioDaSessao;
            }
            //Update
            else
            {
                questionarioEdicao = new ManterQuestionario().ObterQuestionarioPorID(this.QuestionarioDaSessao.ID);
                //Implementação do padrão Prototype
                questionarioEdicao = (Questionario)this.QuestionarioDaSessao.Clone();
            }

            if (questionarioEdicao == null)
            {
                throw new AcademicoException("Preencha as informações do Questionário");
            }
            else
            {
                //Se o Questionário não possuir itens cadastrados, exibe mensagem de erro.
                if (questionarioEdicao.ListaItemQuestionario == null || (questionarioEdicao.ListaItemQuestionario != null && questionarioEdicao.ListaItemQuestionario.Count == 0))
                {
                    throw new AcademicoException("É necessário Cadastrar um item para este Questionário. Não há itens Cadastrados para este Questionário.");
                }
            }

            //Tipo de Questionário
            if (ddlTipoQuestionario != null && ddlTipoQuestionario.SelectedItem != null &&
                !string.IsNullOrWhiteSpace(ddlTipoQuestionario.SelectedItem.Value))
            {
                questionarioEdicao.TipoQuestionario = new TipoQuestionario()
                {
                    ID   = int.Parse(ddlTipoQuestionario.SelectedItem.Value),
                    Nome = ddlTipoQuestionario.SelectedItem.Text
                };
            }
            else
            {
                questionarioEdicao.TipoQuestionario = null;
            }

            //Nome
            if (!string.IsNullOrWhiteSpace(txtNome.Text))
            {
                questionarioEdicao.Nome = txtNome.Text.Trim();
            }
            else
            {
                questionarioEdicao.Nome = null;
            }

            //Prazo em Minutos
            if (!string.IsNullOrWhiteSpace(this.txtPrazoemMinutos.Text))
            {
                int prazoEmMinutos = 0;
                if (!int.TryParse(this.txtPrazoemMinutos.Text.Trim(), out prazoEmMinutos))
                {
                    throw new AcademicoException("Valor Inválido para o Campo Prazo em Minutos.");
                }
                else
                {
                    questionarioEdicao.PrazoMinutos = prazoEmMinutos;
                }
            }

            if (!string.IsNullOrWhiteSpace(this.txtQtdQuestoesDaProva.Text))
            {
                int qtdQuestoesDaProva = 0;
                if (!int.TryParse(this.txtQtdQuestoesDaProva.Text.Trim(), out qtdQuestoesDaProva))
                {
                    throw new AcademicoException("Valor Inválido para o Campo Qtd de Questões da Prova.");
                }
                else
                {
                    questionarioEdicao.QtdQuestoesProva = qtdQuestoesDaProva;
                }
            }

            //Texto do Enunciado Pré
            questionarioEdicao.TextoEnunciado = this.txtTextoEnunciadoPre.Text.Trim();

            return(questionarioEdicao);
        }
        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);
            }
        }
Beispiel #12
0
        private void PreencherCampos(ItemTrilha itemTrilhaEdicao)
        {
            if (itemTrilhaEdicao != null)
            {
                WebFormHelper.SetarValorNaCombo(itemTrilhaEdicao.Missao.PontoSebrae.TrilhaNivel.Trilha.ID.ToString(), ddlTrilha);

                ViewState.Add("idItemTrilha", itemTrilhaEdicao.ID);

                var listaTrilhaNivel =
                    new BMTrilhaNivel().ObterPorFiltro(new TrilhaNivel {
                    Trilha = _itemTrilhaEdicao.Missao.PontoSebrae.TrilhaNivel.Trilha
                });
                listaTrilhaNivel.Add(itemTrilhaEdicao.Missao.PontoSebrae.TrilhaNivel);

                WebFormHelper.PreencherLista(listaTrilhaNivel, ddlTrilhaNivel, false, true);

                WebFormHelper.SetarValorNaCombo(itemTrilhaEdicao.Missao.PontoSebrae.TrilhaNivel.ID.ToString(), ddlTrilhaNivel);

                if (itemTrilhaEdicao.Tipo != null)
                {
                    divFormaAquisicao.Visible = true;

                    WebFormHelper.SetarValorNaCombo(itemTrilhaEdicao.Tipo.ID.ToString(), ddlTipo);

                    switch ((enumTipoItemTrilha)itemTrilhaEdicao.Tipo.ID)
                    {
                    case enumTipoItemTrilha.Jogo:
                        divFaseJogo.Visible    = true;
                        divOrientacoes.Visible = true;

                        PreencherFasesJogo();

                        WebFormHelper.SetarValorNaCombo(((int)itemTrilhaEdicao.FaseJogo).ToString(), ddlFase);
                        break;

                    case enumTipoItemTrilha.Discursiva:
                        pnlArtigoOnline.Visible = true;
                        break;

                    case enumTipoItemTrilha.Atividade:
                        divQuestionario.Visible = true;

                        var questionarios = new ManterQuestionario().ObterQuestionariosItemTrilha().ToList();

                        if (itemTrilhaEdicao.Questionario != null &&
                            questionarios.All(x => x.ID != itemTrilhaEdicao.Questionario.ID))
                        {
                            questionarios.Add(itemTrilhaEdicao.Questionario);
                        }

                        WebFormHelper.PreencherLista(questionarios.OrderBy(x => x.Nome).ToList(), ddlQuestionario,
                                                     false, true);

                        if (itemTrilhaEdicao.Questionario != null)
                        {
                            WebFormHelper.SetarValorNaCombo(itemTrilhaEdicao.Questionario.ID.ToString(),
                                                            ddlQuestionario);
                        }
                        break;

                    case enumTipoItemTrilha.Solucoes:
                        divSolucao.Visible        = true;
                        ddlFormaAquisicao.Enabled = false;

                        WebFormHelper.PreencherLista(
                            new ManterSolucaoEducacional().ObterTodosSolucaoEducacional().ToList(), ddlSolucao);

                        if (itemTrilhaEdicao.SolucaoEducacionalAtividade != null)
                        {
                            WebFormHelper.SetarValorNaCombo(
                                itemTrilhaEdicao.SolucaoEducacionalAtividade.ID.ToString(), ddlSolucao);
                        }
                        break;

                    case enumTipoItemTrilha.ConheciGame:
                        var conteudos = new ManterConteudo().ObterTodos().Where(x => x.Ativo).ToList();
                        WebFormHelper.PreencherListaCustomizado(conteudos, ddlConteudo, "ID", "Nome", false, true);

                        var manterTema = new ManterTema();

                        var temas = manterTema.ObterTodos().ToList();
                        WebFormHelper.PreencherListaCustomizado(temas, ddlTema, "ID", "Nome", false, true);

                        var temaSelecionado = manterTema.ObterPorID(itemTrilhaEdicao.ID_TemaConheciGame);

                        if (temaSelecionado != null && temaSelecionado.Conteudo != null)
                        {
                            pnlConheciGame.Visible     = true;
                            pnlTemaConheciGame.Visible = true;

                            WebFormHelper.SetarValorNaCombo(temaSelecionado.Conteudo.ID.ToString(), ddlConteudo);
                            WebFormHelper.SetarValorNaCombo(temaSelecionado.ID.ToString(), ddlTema);

                            txtAcertosTema.Text = itemTrilhaEdicao.QuantidadeAcertosTema.ToString();
                        }

                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }

                    ddlTipo.Enabled = !itemTrilhaEdicao.ListaItemTrilhaParticipacao.Any();
                }

                // Trilha Nível
                WebFormHelper.PreencherLista(itemTrilhaEdicao.Missao.PontoSebrae.TrilhaNivel.Trilha.ListaTrilhaNivel, ddlTrilhaNivel);
                WebFormHelper.SetarValorNaCombo(itemTrilhaEdicao.Missao.PontoSebrae.TrilhaNivel.ID.ToString(), ddlTrilhaNivel);

                // Ponto Sebrae
                WebFormHelper.PreencherLista(itemTrilhaEdicao.Missao.PontoSebrae.TrilhaNivel.ListaPontoSebrae, ddlPontoSebrae);
                WebFormHelper.SetarValorNaCombo(itemTrilhaEdicao.Missao.PontoSebrae.ID.ToString(), ddlPontoSebrae);

                // Missão
                WebFormHelper.PreencherLista(itemTrilhaEdicao.Missao.PontoSebrae.ListaMissoes, ddlMissao);
                WebFormHelper.SetarValorNaCombo(itemTrilhaEdicao.Missao.ID.ToString(), ddlMissao);


                if (itemTrilhaEdicao.FormaAquisicao != null && itemTrilhaEdicao.FormaAquisicao.ID > 0)
                {
                    WebFormHelper.SetarValorNaCombo(itemTrilhaEdicao.FormaAquisicao.ID.ToString(), ddlFormaAquisicao);
                }

                if (_itemTrilhaEdicao.Ativo.HasValue)
                {
                    WebFormHelper.SetarValorNaCombo(itemTrilhaEdicao.Ativo.Value ? "S" : "N", ddlStatus);
                }

                txtCargaHoraria.Text = itemTrilhaEdicao.CargaHoraria > 0 ? itemTrilhaEdicao.CargaHoraria.ToString() : string.Empty;

                txtNome.Text   = itemTrilhaEdicao.Nome;
                txtMoedas.Text = itemTrilhaEdicao.Moedas.ToString();

                txtOrientacoes.Text             = _itemTrilhaEdicao.Local;
                txtLinkAcesso.Text              = _itemTrilhaEdicao.LinkConteudo;
                txtReferenciaBibliografica.Text = _itemTrilhaEdicao.ReferenciaBibliografica;

                //Arquivo de Envio
                if (_itemTrilhaEdicao.FileServer != null &&
                    !string.IsNullOrWhiteSpace(_itemTrilhaEdicao.FileServer.NomeDoArquivoOriginal))
                {
                    lkbArquivo.Text = string.Concat("Abrir arquivo ", _itemTrilhaEdicao.FileServer.NomeDoArquivoOriginal);
                }
            }
        }
Beispiel #13
0
        public ItemTrilha ObterObjetoItemTrilha(int?idItemTrilha)
        {
            _itemTrilhaEdicao = idItemTrilha.HasValue
                ? new ManterItemTrilha().ObterItemTrilhaPorID(idItemTrilha.Value)
                : new ItemTrilha();

            //Nome
            _itemTrilhaEdicao.Nome = txtNome.Text.Trim();

            int cargaHoraria;

            if (!string.IsNullOrEmpty(txtCargaHoraria.Text))
            {
                if (int.TryParse(txtCargaHoraria.Text, out cargaHoraria))
                {
                    _itemTrilhaEdicao.CargaHoraria = cargaHoraria;
                }
                else
                {
                    throw new AcademicoException("O campo Carga horaria deve ser númerico e em minutos.");
                }
            }

            // Missão
            // Se for edição, o índice 0 do DropDown de Missões será uma opção válida, e não uma opção inválida.
            if (idItemTrilha.HasValue
                ? ddlMissao.SelectedIndex < 0
                : ddlMissao.SelectedIndex <= 0)
            {
                throw new AcademicoException("Selecione uma missão.");
            }

            _itemTrilhaEdicao.Missao = new ManterMissao().ObterPorID(int.Parse(ddlMissao.SelectedValue));

            //Tipo de Solução
            if ((enumTipoItemTrilha)int.Parse(ddlTipo.SelectedValue) == enumTipoItemTrilha.Solucoes)
            {
                if (string.IsNullOrEmpty(ddlSolucao.SelectedValue))
                {
                    throw new AcademicoException("Selecione uma solução educacional.");
                }
            }


            //Ativo ?
            if (ddlStatus.SelectedItem != null && !string.IsNullOrWhiteSpace(ddlStatus.SelectedItem.Value))
            {
                var valorInformadoParaStatus = ddlStatus.SelectedItem.Value;

                if (valorInformadoParaStatus.ToUpper().Equals("S"))
                {
                    _itemTrilhaEdicao.Ativo = true;
                }
                else if (valorInformadoParaStatus.ToUpper().Equals("N"))
                {
                    _itemTrilhaEdicao.Ativo = false;
                }
            }
            else
            {
                throw new AcademicoException("Informe se o Item da Trilha está Ativo Sim ou Não.");
            }

            // Moedas
            if (string.IsNullOrWhiteSpace(txtMoedas.Text))
            {
                throw new AcademicoException("Campo \"Quantidade de Moedas\" é obrigatório");
            }

            int moedas;

            if (int.TryParse(txtMoedas.Text, out moedas))
            {
                _itemTrilhaEdicao.Moedas = moedas;
            }
            else
            {
                throw new AcademicoException("Valor inválido para o campo \"Quantidade de Moedas\"");
            }

            //Forma Aquisição
            if (ddlFormaAquisicao.SelectedItem != null &&
                !string.IsNullOrWhiteSpace(ddlFormaAquisicao.SelectedItem.Value))
            {
                _itemTrilhaEdicao.FormaAquisicao =
                    new BMFormaAquisicao().ObterPorID(int.Parse(ddlFormaAquisicao.SelectedItem.Value));
            }

            // Tipo de item trilha
            if (ddlTipo.SelectedItem != null && !string.IsNullOrWhiteSpace(ddlTipo.SelectedItem.Value))
            {
                _itemTrilhaEdicao.Tipo = new BMTipoItemTrilha().ObterPorId(int.Parse(ddlTipo.SelectedItem.Value));
            }

            // Subitens do tipo
            switch ((enumTipoItemTrilha)_itemTrilhaEdicao.Tipo.ID)
            {
            // Discursivas ou jogos não precisam de referências.
            case enumTipoItemTrilha.Jogo:
                _itemTrilhaEdicao.Questionario = null;
                _itemTrilhaEdicao.SolucaoEducacionalAtividade = null;
                _itemTrilhaEdicao.FaseJogo = (enumFaseJogo)int.Parse(ddlFase.SelectedValue);
                break;

            case enumTipoItemTrilha.Discursiva:
                ValidarCampoLinkConteudo();
                ValdarCampoOrientacoes();
                ValidarReferenciaBibliografica();
                ValidarArquivoDeEnvio(txtNomeArquivo.Text);
                ValidarPermissaoDeReenvio();

                _itemTrilhaEdicao.Questionario = null;
                _itemTrilhaEdicao.SolucaoEducacionalAtividade = null;
                _itemTrilhaEdicao.FaseJogo = 0;
                break;

            case enumTipoItemTrilha.Atividade:
                ValidarCampoLinkConteudo();
                ValdarCampoOrientacoes();
                ValidarReferenciaBibliografica();
                ValidarArquivoDeEnvio(txtNomeArquivo.Text);

                // Verificar Questionário.
                int questionarioId;
                if (int.TryParse(ddlQuestionario.SelectedValue, out questionarioId))
                {
                    var questionario = new ManterQuestionario().ObterQuestionarioPorID(questionarioId);

                    if (questionario != null)
                    {
                        _itemTrilhaEdicao.Questionario = questionario;
                        _itemTrilhaEdicao.SolucaoEducacionalAtividade = null;
                        break;
                    }
                }
                _itemTrilhaEdicao.FaseJogo = 0;

                throw new AcademicoException("Questionário obrigatório para o tipo \"Atividade\"");

            case enumTipoItemTrilha.Solucoes:
                // Verificar Solução Educacional.
                int seId;
                if (int.TryParse(ddlSolucao.SelectedValue, out seId))
                {
                    var se = new ManterSolucaoEducacional().ObterSolucaoEducacionalPorId(seId);

                    if (se != null)
                    {
                        _itemTrilhaEdicao.SolucaoEducacionalAtividade = se;
                        _itemTrilhaEdicao.Questionario = null;
                        break;
                    }
                }
                _itemTrilhaEdicao.FaseJogo = 0;

                throw new AcademicoException("Solução Educacional obrigatória para o tipo \"Soluções Educacionais\"");

            case enumTipoItemTrilha.ConheciGame:
                int idTema;
                int quantidadeAcertos;
                if (int.TryParse(ddlTema.SelectedValue, out idTema) && idTema > 0)
                {
                    _itemTrilhaEdicao.ID_TemaConheciGame = idTema;

                    if (!int.TryParse(txtAcertosTema.Text, out quantidadeAcertos) || quantidadeAcertos <= 0 || quantidadeAcertos > 30)
                    {
                        throw new AcademicoException("A quantidade de acertos deve ser maior que 0 e menor que 30");
                    }

                    _itemTrilhaEdicao.QuantidadeAcertosTema = !string.IsNullOrWhiteSpace(txtAcertosTema.Text) ? int.Parse(txtAcertosTema.Text) : 0;
                }
                else
                {
                    throw new AcademicoException("Selecione um tema");
                }
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            ValidarArquivoDeEnvio(txtNomeArquivo.Text);

            return(_itemTrilhaEdicao);
        }
        protected void dgvQuestionarios_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            var idQuestionario = int.Parse(e.CommandArgument.ToString());

            _manterQuestionario = new ManterQuestionario();

            if (e.CommandName.Equals("excluir"))
            {
                try
                {
                    var usuarioLogado = new ManterUsuario().ObterUsuarioLogado();

                    _manterQuestionario.ExcluirQuestionario(idQuestionario, usuarioLogado);

                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Registro excluído com sucesso!",
                                                 "ListarQuestionario.aspx");
                }
                catch (AcademicoException ex)
                {
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
                }
                catch (Exception)
                {
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro,
                                                 "Não foi possível processar a solicitação. Favor verificar registros dependentes.");
                }
            }
            else if (e.CommandName.Equals("editar"))
            {
                Response.Redirect(string.Format("EdicaoQuestionarioU.aspx?Id={0}&Session={1}", idQuestionario,
                                                WebFormHelper.ObterStringAleatoria()));
            }
            else if (e.CommandName.Equals("duplicar"))
            {
                Response.Redirect(string.Format("EdicaoQuestionarioU.aspx?Id={0}&Session={1}&Duplicar=1", idQuestionario,
                                                WebFormHelper.ObterStringAleatoria()));
            }
            else if (e.CommandName.Equals("visualizar"))
            {
                if (Master != null)
                {
                    if (Master.Master != null)
                    {
                        var pnlbackdrop = ((Panel)Master.Master.FindControl("pnlbackdrop"));

                        if (pnlbackdrop != null)
                        {
                            pnlbackdrop.Visible       =
                                pnlVisualizar.Visible = true;

                            PreencherVisualizacaoQuestionario(_manterQuestionario.ObterQuestionarioPorID(idQuestionario));

                            return;
                        }
                    }
                }

                WebFormHelper.ExibirMensagem(enumTipoMensagem.Atencao,
                                             "Não foi possível obter o Termo para exibição. Tente novamente.");
            }
        }
        protected void btnPesquisar_Click(object sender, EventArgs e)
        {
            if (!Page.IsValid)
            {
                return;
            }

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

                var listaQuestionario = new ManterQuestionario().ObterQuestionarioPorUf(usuarioLogado);

                var text = txtNome.Text.Trim().ToLower();

                if (!string.IsNullOrWhiteSpace(text))
                {
                    listaQuestionario = listaQuestionario.Where(x => x.Nome.Trim().ToLower().Contains(text));
                }

                var idsUfs = ListBoxesUF.RecuperarIdsSelecionados <int>().ToList();

                if (idsUfs.Count > 0)
                {
                    listaQuestionario = listaQuestionario.Where(x => x.Uf != null && idsUfs.Contains(x.Uf.ID));
                }

                var idsTiposQuestionario = ListBoxesTipoQuestionario.RecuperarIdsSelecionados <int>().ToList();

                if (idsTiposQuestionario.Count > 0)
                {
                    listaQuestionario =
                        listaQuestionario.Where(x => idsTiposQuestionario.Contains(x.TipoQuestionario.ID));
                }

                var status = int.Parse(ddlStatus.SelectedValue);

                if (status == 1)
                {
                    listaQuestionario = listaQuestionario.Where(x => x.Ativo == true);
                }

                if (status == 2)
                {
                    listaQuestionario = listaQuestionario.Where(x => x.Ativo != true);
                }

                if (listaQuestionario.Any())
                {
                    WebFormHelper.PreencherGrid(listaQuestionario.ToList(), dgvQuestionarios);
                    pnlQuestionario.Visible = true;
                }
                else
                {
                    pnlQuestionario.Visible = false;
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Alerta, "Nenhuma Informação Encontrada");
                }
            }
            catch (AcademicoException ex)
            {
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
            }
        }
        public DTORelatorioQuestionarioRespondente ObterRelatorioRespondente(DTOFiltroRelatorioQuestionario filtro)
        {
            if (!filtro.PossuiDados())
            {
                throw new AcademicoException("Não existem filtros para efetuar uma pesquisa.");
            }

            if (filtro.IsRelatorioTutor && filtro.IdTurma == null)
            {
                throw new AcademicoException("O campo \"Turma\" é obrigatório no relatório de tutor.");
            }

            if (filtro.IdQuestionario == 0)
            {
                throw new AcademicoException("Selecione um questionário.");
            }

            if (filtro.IdOferta != null && filtro.IdTurma == null)
            {
                throw new AcademicoException("O campo \"Turma\" é obrigatório.");
            }

            Questionario questionario;
            Turma        turma;

            if (filtro.IsRelatorioTutor)
            {
                var associacao = new ManterTurma().ObterTurmaPorID(filtro.IdTurma.Value)
                                 .ListaQuestionarioAssociacao.FirstOrDefault(
                    x =>
                    x.TipoQuestionarioAssociacao.ID == (int)enumTipoQuestionarioAssociacao.Pos &&
                    x.Questionario.TipoQuestionario.ID == (int)enumTipoQuestionario.Pesquisa);

                if (associacao == null)
                {
                    throw new AcademicoException("A turma selecionada não possui questionário pós de pesquisa.");
                }

                questionario = associacao.Questionario;
                turma        = associacao.Turma;
            }
            else
            {
                questionario = new ManterQuestionario().ObterQuestionarioPorID(filtro.IdQuestionario);
                if (filtro.IdTurma != null)
                {
                    turma = new ManterTurma().ObterTurmaPorID(filtro.IdTurma.Value);
                }
                else
                {
                    turma = new Turma();
                }
            }

            if (questionario == null)
            {
                throw new AcademicoException(
                          "Nenhum questionário foi encontrado. Se certifique que o questionário selecionado ainda está cadastrado.");
            }

            var listaItemQuestionario = questionario.ListaItemQuestionario.OrderBy(x => x.Ordem).ToList();

            // Se não houverem questões relacionadas ao questionário, não tem como emitir o relatório.
            if (!listaItemQuestionario.Any())
            {
                throw new AcademicoException("O questionário \"" + questionario.Nome +
                                             "\" não possui questões cadastradas, portanto não é possível emitir o relatório.");
            }

            List <DTORelatorioQuestionarioQuestao> questoes;

            var enunciados = ObterEnunciados(out questoes, listaItemQuestionario, questionario, turma);


            // Obter consulta do questionário, mas não enumera ainda.
            // You know what i see here? Possibilities...
            var consulta = new ManterQuestionarioParticipacao().ObterPorQuestionarioPorFiltro(filtro);

            // Retornar dados do relatório.
            return(new DTORelatorioQuestionarioRespondente
            {
                Enunciados = enunciados,
                Questoes = questoes,
                Consulta = consulta,
                TotalRespostas = consulta.Count(),
                TotalQuestoes = listaItemQuestionario.Count()
            });
        }