Beispiel #1
0
        public void PreencherCampos(Usuario usuario)
        {
            if (usuario != null)
            {
                using (var manterTurma = new ManterTurmaProfessor())
                {
                    var cursos = manterTurma.ObterTurmaProfessorPorProfessor(usuario.ID);

                    txtSemTurmas.Visible = cursos.Count() > 0 ? false : true;

                    dgvTutorias.DataSource = cursos;
                    dgvTutorias.DataBind();
                }
            }
        }
        public IQueryable <Oferta> ListaOferta(DTOFiltroRelatorioQuestionario filtro)
        {
            if (filtro.IdSolucaoEducacional == null)
            {
                return(null);
            }

            if (filtro.IsRelatorioTutor)
            {
                if (filtro.IdProfessor == null)
                {
                    return(null);
                }

                // Obtém os ids das Ofertas da SE informada que possuem o professor informado e que possuam turmas com questionários pós de pesquisa.
                var ofertas =
                    new ManterTurmaProfessor().ObterTurmaProfessorPorProfessor(filtro.IdProfessor.Value).Where(x =>

                                                                                                               x.Turma.Oferta.SolucaoEducacional.ID == filtro.IdSolucaoEducacional.Value &&

                                                                                                               x.Turma.ListaQuestionarioAssociacao.Any(
                                                                                                                   qa =>
                                                                                                                   qa.TipoQuestionarioAssociacao.ID ==
                                                                                                                   (int)enumTipoQuestionarioAssociacao.Pos &&
                                                                                                                   qa.Questionario.TipoQuestionario.ID ==
                                                                                                                   (int)enumTipoQuestionario.Pesquisa))
                    .Select(x => x.Turma.Oferta.ID)
                    .Distinct()
                    .ToList();

                // Tem que consultar novamente porque o Distinct não funciona acima porque a tabela possui campo text, que não pode ser distinguível.
                return(new ManterOferta().ObterTodasOfertas().Where(x => ofertas.Contains(x.ID)));
            }

            var retorno =
                new ManterOferta().ObterOfertaPorSolucaoEducacional(new SolucaoEducacional
            {
                ID = filtro.IdSolucaoEducacional.Value
            });

            if (filtro.IdQuestionario > 0)
            {
                retorno = retorno.Where(x => x.ListaTurma.Any(t => t.ListaQuestionarioAssociacao.Any(q => q.Questionario.ID == filtro.IdQuestionario)));
            }


            return(retorno.Where(x => x.ListaTurma.Any(t => t.ListaQuestionarioAssociacao.Any())).OrderBy(x => x.Nome).AsQueryable());
        }
        public IQueryable <Usuario> ListaProfessor()
        {
            //Obter professores de turmas que possuam questionários pós de pesquisa.

            var profs = new ManterTurmaProfessor().ObterTodos().Where(x =>

                                                                      x.Turma.ListaQuestionarioAssociacao.Any(
                                                                          qa =>
                                                                          qa.TipoQuestionarioAssociacao.ID ==
                                                                          (int)enumTipoQuestionarioAssociacao.Pos &&
                                                                          qa.Questionario.TipoQuestionario.ID ==
                                                                          (int)enumTipoQuestionario.Pesquisa))
                        .Select(x => x.Professor.ID)
                        .Distinct();

            return(new ManterUsuario().ObterTodos().OrderBy(x => x.Nome).Where(x => profs.Contains(x.ID)));
        }
        public IQueryable <SolucaoEducacional> ListaSolucaoEducacionalPorProfessor(DTOFiltroRelatorioQuestionario filtro)
        {
            if (filtro.IdProfessor == null)
            {
                return(null);
            }

            // Obtém os ids das SEs que possuem o professor informado e que possuam turmas com questionários pós de pesquisa.
            var ses = new ManterTurmaProfessor().ObterTurmaProfessorPorProfessor(filtro.IdProfessor.Value).Where(x =>
                                                                                                                 x.Turma.ListaQuestionarioAssociacao.Any(
                                                                                                                     qa =>
                                                                                                                     qa.TipoQuestionarioAssociacao.ID ==
                                                                                                                     (int)enumTipoQuestionarioAssociacao.Pos &&
                                                                                                                     qa.Questionario.TipoQuestionario.ID ==
                                                                                                                     (int)enumTipoQuestionario.Pesquisa))
                      .Select(x => x.Turma.Oferta.SolucaoEducacional.ID)
                      .Distinct()
                      .ToList();

            // Tem que consultar novamente porque o Distinct não funciona acima porque a tabela possui campo text, que não pode ser distinguível.
            return(new ManterSolucaoEducacional().ObterTodosSolucaoEducacional().Where(x => ses.Contains(x.ID)));
        }
        public IQueryable <Turma> ListaTurma(DTOFiltroRelatorioQuestionario filtro)
        {
            if (filtro.IdOferta == null)
            {
                return(null);
            }

            if (filtro.IsRelatorioTutor)
            {
                if (filtro.IdProfessor == null)
                {
                    return(null);
                }

                // Obtém os ids das Turmas da Oferta informada que possuem o professor informado e que possuam turmas com questionários pós de pesquisa.
                var turmas =
                    new ManterTurmaProfessor().ObterTurmaProfessorPorProfessor(filtro.IdProfessor.Value).Where(x =>

                                                                                                               x.Turma.Oferta.ID == filtro.IdOferta.Value &&

                                                                                                               x.Turma.ListaQuestionarioAssociacao.Any(
                                                                                                                   qa =>
                                                                                                                   qa.TipoQuestionarioAssociacao.ID ==
                                                                                                                   (int)enumTipoQuestionarioAssociacao.Pos &&
                                                                                                                   qa.Questionario.TipoQuestionario.ID ==
                                                                                                                   (int)enumTipoQuestionario.Pesquisa))
                    .Select(x => x.Turma.ID)
                    .Distinct()
                    .ToList();

                // Tem que consultar novamente porque o Distinct não funciona acima porque a tabela possui campo text, que não pode ser distinguível.
                return(new ManterTurma().ObterTodasTurma().Where(x => turmas.Contains(x.ID)).OrderBy(x => x.Nome).AsQueryable());
            }

            return(new ManterTurma().ObterTurmasPorOferta(filtro.IdOferta.Value, false));
        }
Beispiel #6
0
        protected void btnVerificar_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                try
                {
                    var codigo = txtCodigo.Text.Trim();

                    if (!string.IsNullOrWhiteSpace(codigo))
                    {
                        dynamic objetoCertificado = new ExpandoObject();

                        // Caso seja certificado de tutor, fazer as verificações.
                        if (codigo.Length < 32 && codigo.StartsWith("cr"))
                        {
                            var verificarCertificado = new ManterCertificadoTemplate().VerificarCertificadoTutor(codigo);

                            if (verificarCertificado.Valido)
                            {
                                var turmaProfessor =
                                    new ManterTurmaProfessor().ObterTurmaProfessorPorTurma(verificarCertificado.IdTurma)
                                    .FirstOrDefault(x => x.Professor.ID == verificarCertificado.IdProfessor);

                                if (turmaProfessor != null)
                                {
                                    objetoCertificado.Nome = turmaProfessor.Professor.Nome;

                                    if (turmaProfessor.Turma.DataFinal.HasValue)
                                    {
                                        objetoCertificado.DataGeracao = turmaProfessor.Turma.DataFinal.Value.ToString("dd/MM/yyyy");
                                    }

                                    objetoCertificado.Curso = turmaProfessor.Turma.Oferta.SolucaoEducacional.Nome;
                                    objetoCertificado.Tipo  = "Declaração de tutoria";
                                }
                            }
                        }
                        else
                        {
                            var manterMatriculaOferta = new ManterMatriculaOferta();

                            var buscaMatOferta = manterMatriculaOferta.ObterPorCodigoCertificado(codigo);

                            if (buscaMatOferta != null)
                            {
                                objetoCertificado.Nome = buscaMatOferta.Usuario.Nome;

                                if (buscaMatOferta.DataGeracaoCertificado != null)
                                {
                                    objetoCertificado.DataGeracao =
                                        buscaMatOferta.DataGeracaoCertificado.Value.ToString("dd/MM/yyyy");
                                }

                                objetoCertificado.Curso = buscaMatOferta.Oferta.SolucaoEducacional.Nome;
                                objetoCertificado.Tipo  = "Curso Regular";
                            }
                            else
                            {
                                var manterUsuarioTrilha = new ManterUsuarioTrilha();
                                var buscaUsuarioTrilha  = manterUsuarioTrilha.ObterPorCodigoCertificao(codigo);

                                if (buscaUsuarioTrilha != null)
                                {
                                    objetoCertificado.Nome  = buscaUsuarioTrilha.Usuario.Nome;
                                    objetoCertificado.Curso = buscaUsuarioTrilha.TrilhaNivel.Trilha.Nome;
                                    objetoCertificado.Tipo  = "Trilha";

                                    if (buscaUsuarioTrilha.DataGeracaoCertificado != null)
                                    {
                                        objetoCertificado.DataGeracao =
                                            buscaUsuarioTrilha.DataGeracaoCertificado.Value.ToString("dd/MM/yyyy");
                                    }
                                }
                            }
                        }

                        // Fazer output da validação do certificado a partir do objeto anônimo.
                        if (((IDictionary <string, object>)objetoCertificado).ContainsKey("Nome"))
                        {
                            LimparPnlNaoEncontrado();
                            pnlResultadoVerificacao.Visible = true;

                            lblResultado.Text = "O código informado pertence a um certificado válido.";

                            lblNome.Text  = objetoCertificado.Nome;
                            lblCurso.Text = objetoCertificado.Curso;
                            lblTipo.Text  = objetoCertificado.Tipo;

                            if (objetoCertificado.DataGeracao != null)
                            {
                                lblDataGeracao.Text = objetoCertificado.DataGeracao;
                            }
                        }
                        else
                        {
                            LimparPnlResultado();
                            pnlNaoEncontrado.Visible = true;
                            lblNaoEncontrado.Text    = "O código informado não pertence a nenhum certificado válido.";
                        }
                    }
                    else
                    {
                        LimparPnlNaoEncontrado();
                        LimparPnlResultado();
                        WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Informe o código do certificado.");
                    }
                }
                catch (AcademicoException ex)
                {
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
                }
            }
        }