protected void dgvMatriculaOferta_RowCommand(object sender, GridViewCommandEventArgs e) { var idTurma = int.Parse(e.CommandArgument.ToString()); if (e.CommandName.Equals("emitirCertificado")) { var idMatriculaOferta = int.Parse(e.CommandArgument.ToString()); var matriculaOferta = new ManterMatriculaOferta().ObterMatriculaOfertaPorID(idMatriculaOferta); new ucCursos().EmitirCertificado(matriculaOferta); } if (e.CommandName.Equals("editarMatTurma")) { try { TratarEdicaoDeUmaMatriculaTurma(e); ExibirModalMatriculaTurma(); } catch (AcademicoException ex) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message); return; } } }
private void ExcluirAlunoDaTurma(DropDownList comboTurma) { //Obtém a linha da grid onde a dropdownlist (combo) de oferta, está contida var linhadaGrid = (GridViewRow)comboTurma.NamingContainer; if (linhadaGrid.RowType == DataControlRowType.Header) { linhadaGrid.TableSection = TableRowSection.TableHeader; } if (linhadaGrid != null) { var hdfIdMatriculaOferta = (HiddenField)linhadaGrid.FindControl("hdfIdMatriculaOferta"); int IdMatriculaOferta; var manterMatriculaOferta = new ManterMatriculaOferta(); classes.MatriculaOferta matriculaOferta = null; if (int.TryParse(hdfIdMatriculaOferta.Value, out IdMatriculaOferta)) { matriculaOferta = manterMatriculaOferta.ObterMatriculaOfertaPorID(IdMatriculaOferta); } if (matriculaOferta != null && matriculaOferta.MatriculaTurma != null && matriculaOferta.MatriculaTurma.Count > 0) { matriculaOferta.MatriculaTurma.Clear(); AtualizarStatusDaOferta(matriculaOferta.StatusMatricula, matriculaOferta, ref manterMatriculaOferta); } } }
protected void btnEfetivarMatricula_Click(object sender, EventArgs e) { try { var matriculaOferta = ObterObjetoMatriculaOferta(); var manterMatriculaOferta = new ManterMatriculaOferta(); SalvarMatriculaOferta(manterMatriculaOferta, matriculaOferta); ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "myscript", " $('#EdicaoNivel, #modal-background').removeClass('active');", true); LimparCamposMatriculaAluno(); WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Aluno cadastrado com sucesso."); } catch (AcademicoException ex) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message); } catch (Exception ex) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message); } }
private static bool UsuarioPossuiLimiteInscricoesSimultaneas(int usuarioId, ref DTODisponibilidadeSolucaoEducacional retorno) { var listaMatriculaOferta = new ManterMatriculaOferta().ObterPorUsuario(usuarioId).Select(x => new MatriculaOferta { ID = x.ID, StatusMatricula = x.StatusMatricula }); var cursosInscrito = listaMatriculaOferta.Count(x => x.StatusMatricula == enumStatusMatricula.Inscrito); int limteCursosSimultaneos; if ( int.TryParse( ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.CursosSimultaneos).Registro, out limteCursosSimultaneos)) { if (cursosInscrito < limteCursosSimultaneos) { return(false); } retorno.TextoDisponibilidade = string.Format("Você só pode realizar {0} em simultâneo.", limteCursosSimultaneos); retorno.CodigoDisponibilidade = (int)enumDisponibilidadeSolucaoEducacional.NaoPossuiDisponibilidade; return(true); } return(false); }
private string MatricularAlunoNaTurma(int idMatriculaOferta, int idTurma) { string retorno = "Ocorreu um erro no processo"; MatriculaOferta matriculaOferta = new ManterMatriculaOferta().ObterMatriculaOfertaPorID(idMatriculaOferta); if (matriculaOferta != null) { MatriculaTurma matriculaTurma = this.ObterObjetoMatriculaTurma(idTurma, matriculaOferta); ManterMatriculaOferta manterMatriculaOferta = new ManterMatriculaOferta(); if (matriculaOferta.MatriculaTurma.Count == 0) { matriculaOferta.MatriculaTurma.Add(matriculaTurma); } else { matriculaOferta.MatriculaTurma[0] = matriculaTurma; } manterMatriculaOferta.AtualizarMatriculaOferta(matriculaOferta); retorno = string.Format("O usuário '{0}' foi matriculado na turma '{1}'", matriculaOferta.Usuario.Nome, matriculaTurma.Turma.Nome); } return(retorno); }
protected void btnEnviarConfirmacao_OnClick(object sender, EventArgs e) { try { var matriculaOferta = this.ObterObjetoMatriculaOferta(); var manterMatriculaOferta = new ManterMatriculaOferta(); SalvarMatriculaOferta(manterMatriculaOferta, matriculaOferta, false); txtJustificativa.Text = ""; lblAvisoModalConfirmacaoInscricao.Text = ""; pnlModalConfirmacaoInscricao.Visible = false; WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Aluno cadastrado com sucesso."); } catch (AcademicoException ex) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message); return; } catch (Exception ex) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message); return; } }
private void PreencherGrid() { var manterMatriculaOferta = new ManterMatriculaOferta(); ListaMatriculaOferta = manterMatriculaOferta.ObterPorUsuario(IdUsuario).ToList(); WebFormHelper.PreencherGrid(ListaMatriculaOferta, dgvMatriculaOferta); }
protected void btnCertificado_Click(object sender, EventArgs e) { LinkButton lbEmitirCertificado = (LinkButton)sender; int idMatriculaOferta = int.Parse(lbEmitirCertificado.CommandArgument); MatriculaOferta matriculaOferta = new ManterMatriculaOferta().ObterMatriculaOfertaPorID(idMatriculaOferta); EmitirCertificado(matriculaOferta); }
private void AtualizarStatusDaOferta(enumStatusMatricula statusMatriculaOferta, MatriculaOferta matriculaOferta) { //Atualiza o status da Oferta ManterMatriculaOferta manterMatriculaOferta = new ManterMatriculaOferta(); matriculaOferta.StatusMatricula = statusMatriculaOferta; manterMatriculaOferta.AtualizarMatriculaOferta(matriculaOferta, false); }
private static void ObterLinkAcesso(List <DtoTrilhaSolucaoSebrae> solucoes) { if (solucoes.Any(x => x.MatriculaOfertaId != null)) { var matriculasIds = solucoes.Where(x => x.MatriculaOfertaId != null).Select(x => x.MatriculaOfertaId.Value).ToList(); var matriculas = new ManterMatriculaOferta().ObterTodosIQueryable().Where(x => matriculasIds.Contains(x.ID)) .Join(new ManterOferta().ObterTodasIQueryable(), mo => mo.Oferta.ID, o => o.ID, (mo, o) => new { mo, o }) .Join(new ManterSolucaoEducacional().ObterTodosIQueryable(), previousJoin => previousJoin.o.SolucaoEducacional.ID, se => se.ID, (previousJoin, se) => new MatriculaOferta { ID = previousJoin.mo.ID, Oferta = new Oferta { ID = se.ID, CodigoMoodle = previousJoin.o.CodigoMoodle, SolucaoEducacional = new SolucaoEducacional { ID = se.ID, Fornecedor = new Fornecedor { ID = se.Fornecedor.ID, LinkAcesso = se.Fornecedor.LinkAcesso, TextoCriptografia = se.Fornecedor.TextoCriptografia } } }, Usuario = new Usuario { ID = previousJoin.mo.Usuario.ID, CPF = previousJoin.mo.Usuario.CPF, Senha = previousJoin.mo.Usuario.Senha } }) .ToList(); foreach (var solucao in solucoes.Where(x => x.MatriculaOfertaId.HasValue)) { var matriculaOferta = matriculas.FirstOrDefault(x => x.ID == solucao.MatriculaOfertaId.Value); if (matriculaOferta == null) { continue; } solucao.LinkAcesso = new ConsultarMeusCursos().ConsultarLinkAcessoFornecedor( matriculaOferta.Oferta.SolucaoEducacional.Fornecedor, matriculaOferta.Usuario, matriculaOferta.Oferta.CodigoMoodle.ToString()); } } }
private void ExcluirAlunoDaTurma(int idMatriculaOferta) { MatriculaOferta matriculaOferta = new ManterMatriculaOferta().ObterMatriculaOfertaPorID(idMatriculaOferta); if (matriculaOferta != null && matriculaOferta.MatriculaTurma != null && matriculaOferta.MatriculaTurma.Count > 0) { matriculaOferta.MatriculaTurma.Clear(); AtualizarStatusDaOferta(matriculaOferta.StatusMatricula, matriculaOferta); } }
private void PreencherInformacoesDosAbandonos(int IdUsuario) { //ManterAbandono manterAbandono = new ManterAbandono(); //IList<UsuarioAbandono> ListaAbandonos = manterAbandono.ObterPorUsuario(IdUsuario); //WebFormHelper.PreencherGrid(ListaAbandonos, this.dgvAbandonos); ManterMatriculaOferta manterMatriculaOferta = new ManterMatriculaOferta(); var ListaMatriculaOferta = manterMatriculaOferta.ObterPorUsuario(IdUsuario).Where(x => x.StatusMatricula == enumStatusMatricula.Abandono).ToList(); WebFormHelper.PreencherGrid(ListaMatriculaOferta, this.dgvAbandonos); }
protected void btnSalvarModalDataConclusao_OnClick(object sender, EventArgs e) { try { if (!string.IsNullOrEmpty(hdfModalDataConclusaoIdMatriculaTurma.Value)) { var manterMatriculaTurma = new ManterMatriculaTurma(); var idMatriculaTurma = Convert.ToInt32(hdfModalDataConclusaoIdMatriculaTurma.Value); var matriculaTurma = manterMatriculaTurma.ObterMatriculaTurmaPorId(idMatriculaTurma); var dataConclusao = DateTime.Now; if (!DateTime.TryParse(txtModalDataConclusao.Text, out dataConclusao)) { throw new AcademicoException("Informe uma data válida para conclusão do aluno."); } matriculaTurma.DataTermino = dataConclusao; var data = matriculaTurma.Turma.DataFinal; if (data.HasValue) { if (matriculaTurma.DataTermino.Value.Date > data.Value.Date) { throw new AcademicoException(string.Format("Data de conclusão não pode ser maior que a data final da turma ({0}).", data.Value.ToString("dd/MM/yyyy"))); } } manterMatriculaTurma.AlterarMatriculaTurma(matriculaTurma); var manterMatriculaOferta = new ManterMatriculaOferta(); var matriculaOferta = manterMatriculaOferta.ObterMatriculaOfertaPorID(matriculaTurma.MatriculaOferta.ID); AtualizarStatusDaOferta((enumStatusMatricula)Convert.ToInt32(hdfModalDataConclusaoIdStatusMatriculaOferta.Value), matriculaOferta, ref manterMatriculaOferta); WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "O Status da Matrícula da Turma foi Atualizado com Sucesso !"); consultarMatriculasUsuario(); AtualizarStatusUsuarioTurma(matriculaTurma); } OcultarModalDataConclusao(); } catch (PoliticaConsequenciaException ex) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message); } catch (AcademicoException ex) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message); } }
private void AtualizarStatusDaOferta(enumStatusMatricula statusMatriculaOferta, classes.MatriculaOferta matriculaOferta, ref ManterMatriculaOferta manterMatriculaOferta, DateTime?dataConclusao = null, double?notaFinal = null, bool atualizarMatriculas = true, bool fazerMerge = false) { if (manterMatriculaOferta == null) { // O objetivo que for salvo pelo Manter não deve vir de outra sessão (outro Manter/BM) manterMatriculaOferta = new ManterMatriculaOferta(); matriculaOferta = manterMatriculaOferta.ObterMatriculaOfertaPorID(matriculaOferta.ID); } if (matriculaOferta == null) { return; } //Atualiza o status da Oferta matriculaOferta.StatusMatricula = statusMatriculaOferta; if (dataConclusao != null || notaFinal != null) { foreach (var mt in matriculaOferta.MatriculaTurma) { // Obter a turma novamente, pois o lazy tá pirando nessa parte. var turma = new ManterTurma().ObterTurmaPorID(mt.Turma.ID); // Só altera caso a data da turma seja menor ou igual à data de conclusão informada. if (dataConclusao.HasValue && (turma.DataInicio <= dataConclusao)) { mt.DataTermino = dataConclusao; } if (notaFinal.HasValue) { mt.MediaFinal = notaFinal; } } } manterMatriculaOferta.AtualizarMatriculaOferta(matriculaOferta, false, fazerMerge); new BP.ManterItemTrilhaParticipacao().AtualizarStatusParticipacoesTrilhas(matriculaOferta); }
private void MatricularAlunoNaTurma(DropDownList comboTurma) { //Obtém a linha da grid onde a dropdownlist (combo) de oferta, está contida var linhadaGrid = (GridViewRow)comboTurma.NamingContainer; if (linhadaGrid != null) { var hdfIdMatriculaOferta = (HiddenField)linhadaGrid.FindControl("hdfIdMatriculaOferta"); int IdMatriculaOferta; classes.MatriculaOferta matriculaOferta = null; if (int.TryParse(hdfIdMatriculaOferta.Value, out IdMatriculaOferta)) { matriculaOferta = new ManterMatriculaOferta().ObterMatriculaOfertaPorID(IdMatriculaOferta); } if (matriculaOferta != null) { var matriculaTurma = ObterObjetoMatriculaTurma(comboTurma, matriculaOferta); var manterMatriculaOferta = new ManterMatriculaOferta(); if (matriculaOferta.MatriculaTurma.Count == 0) { matriculaOferta.MatriculaTurma.Add(matriculaTurma); } else { matriculaOferta.MatriculaTurma[0] = matriculaTurma; } manterMatriculaOferta.AtualizarMatriculaOferta(matriculaOferta, false); WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, string.Format("O usuário '{0}' foi matriculado na turma '{1}'", matriculaOferta.Usuario.Nome, matriculaTurma.Turma.Nome)); } } }
protected void btnSimModalConfirmacaoStatusInscrito_OnClick(object sender, EventArgs e) { try { if (!string.IsNullOrEmpty(hdfModalConfirmacaoStatusInscritoIdMatriculaTurma.Value)) { var manterMatriculaTurma = new ManterMatriculaTurma(); var idMatriculaTurma = Convert.ToInt32(hdfModalConfirmacaoStatusInscritoIdMatriculaTurma.Value); var matriculaTurma = manterMatriculaTurma.ObterMatriculaTurmaPorId(idMatriculaTurma); if (matriculaTurma != null) { matriculaTurma.DataTermino = null; manterMatriculaTurma.Salvar(matriculaTurma); var manterMatriculaOferta = new ManterMatriculaOferta(); var matriculaOferta = manterMatriculaOferta.ObterMatriculaOfertaPorID(matriculaTurma.MatriculaOferta.ID); AtualizarStatusDaOferta(enumStatusMatricula.Inscrito, matriculaOferta, ref manterMatriculaOferta); WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "O Status da Matrícula da Turma foi Atualizado com Sucesso !"); consultarMatriculasUsuario(); AtualizarStatusUsuarioTurma(matriculaTurma); } } OcultarModalConfirmacaoStatusInscrito(); } catch (PoliticaConsequenciaException ex) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message); } catch (AcademicoException ex) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message); } }
private void SalvarMatriculaOferta(ManterMatriculaOferta manterMatriculaOferta, MatriculaOferta matriculaOferta, bool verificarPoliticaDeConsequencia = true) { manterMatriculaOferta.IncluirMatriculaOferta(matriculaOferta, verificarPoliticaDeConsequencia); var matriculaTurma = AdicionaOfertEmMatriculaTurma(matriculaOferta); if (matriculaOferta.MatriculaTurma == null) { matriculaOferta.MatriculaTurma = new List <MatriculaTurma>(); } matriculaOferta.MatriculaTurma.Add(matriculaTurma); //Dispara o evento informando que a matricula em uma oferta foi realizada if (MatriculouAlunoEmUmaOferta == null) { return; } //Obtem as informações da matricula Oferta (inclusive a lista de turmas da oferta) matriculaOferta = manterMatriculaOferta.ObterInformacoesDaMatricula(matriculaOferta.ID); MatriculouAlunoEmUmaOferta(this, new MatricularAlunoEmUmaOfertaEventArgs(matriculaOferta)); }
protected void btnEnviar_Click(object sender, EventArgs e) { //this.SetarAcaoDaTela(enumAcaoTelaMatriculaOferta.NovaMatricula); var manterUsuario = new ManterUsuario(); var usuarioLogado = manterUsuario.ObterUsuarioLogado(); try { if (string.IsNullOrEmpty(ddlTurma.SelectedValue) || int.Parse(ddlTurma.SelectedValue) <= 0) { throw new AcademicoException("Selecione uma turma para alterar a inscrição"); } if (string.IsNullOrEmpty(ddlStatus.SelectedValue) || int.Parse(ddlStatus.SelectedValue) <= 0) { throw new AcademicoException("Selecione um status"); } var dtDataMatricula = DateTime.Now; var dtDataConclusao = DateTime.Now; if (IsAdminOrGestorUc && !string.IsNullOrEmpty(txtDataInscricao.Text)) { try { dtDataMatricula = Convert.ToDateTime(txtDataInscricao.Text); } catch { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Data de Matrícula inválida."); return; } try { dtDataConclusao = Convert.ToDateTime(txtDataConclusao.Text); } catch { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Data de Conclusão inválida."); return; } } var manterTurma = new ManterTurma(); if (!usuarioLogado.IsAdministrador()) { var matriculaOferta = this.ObterObjetoMatriculaOferta(); var manterMatriculaOferta = new ManterMatriculaOferta(); var idOferta = matriculaOferta.Oferta.ID; var cpf = matriculaOferta.Usuario.CPF; var idStatusMatricula = ddlStatus.SelectedIndex > 0 ? int.Parse(ddlStatus.SelectedValue) : 0; var idTurma = ddlTurma.SelectedIndex > 0 ? int.Parse(ddlTurma.SelectedValue) : 0; new ManterMatriculaOfertaService().MatriculaSolucaoEducacionalGestorUC(idOferta, cpf, idStatusMatricula, idTurma, usuarioLogado.CPF); //Dispara o evento informando que a matricula em uma oferta foi realizada if (MatriculouAlunoEmUmaOferta == null) { return; } var mo = manterMatriculaOferta.ObterPorUsuarioESolucaoEducacional(matriculaOferta.Usuario.ID, matriculaOferta.Oferta.SolucaoEducacional.ID); if (mo != null && mo.ToList().Any()) { matriculaOferta = mo.FirstOrDefault(); if (matriculaOferta == null) { return; } //Obtem as informações da matricula Oferta (inclusive a lista de turmas da oferta) matriculaOferta = manterMatriculaOferta.ObterInformacoesDaMatricula(matriculaOferta.ID); } AdicionaOfertEmMatriculaTurma(matriculaOferta); MatriculouAlunoEmUmaOferta(this, new MatricularAlunoEmUmaOfertaEventArgs(matriculaOferta)); ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "myscript", " $('#EdicaoNivel, #modal-background').removeClass('active');", true); LimparCamposMatriculaAluno(); //Cadastrar Solucao Educacional com o SAS var manterSEService = new ManterSolucaoEducacionalService(); if (matriculaOferta.Oferta.SolucaoEducacional.IntegracaoComSAS) { manterSEService.CadastrarSAS(matriculaOferta.Usuario, new BP.integracaoSAS.TreinamentoSasClient()); } //Matricular Aluno no Moodle manterSEService.MatricularAlunoMoodle(matriculaOferta.Usuario, matriculaOferta.Oferta); WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Aluno cadastrado com sucesso."); } else { if (!string.IsNullOrEmpty(txtDataInscricao.Text)) { var idTurma = ddlTurma.SelectedIndex > 0 ? int.Parse(ddlTurma.SelectedValue) : 0; var turma = manterTurma.ObterTurmaPorID(idTurma); if (turma == null) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Turma não encontrada."); return; } var dataValida = turma.Oferta.DataInicioInscricoes.HasValue && turma.Oferta.DataFimInscricoes.HasValue && dtDataMatricula.Date.Between(turma.Oferta.DataInicioInscricoes.Value.Date, turma.Oferta.DataFimInscricoes.Value.Date); if (!dataValida) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, turma.Oferta.DataInicioInscricoes.HasValue && turma.Oferta.DataFimInscricoes.HasValue ? "Data de Matrícula deve ser entre " + turma.Oferta.DataInicioInscricoes.Value.Date.ToString("dd/MM/yyyy") + " e " + turma.Oferta.DataFimInscricoes.Value.Date.ToString("dd/MM/yyyy") : "Data de Matrícula inválida."); return; } var dataValidaConclusao = dtDataConclusao.Date >= turma.DataInicio; if (!dataValidaConclusao) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Data de Conclusão deve ser maior ou igual à: " + turma.DataInicio.ToString("dd/MM/yyyy")); return; } } var matriculaOferta = this.ObterObjetoMatriculaOferta(); var manterMatriculaOferta = new ManterMatriculaOferta(); if (matriculaOferta.Oferta != null) { if ( matriculaOferta.Oferta.ListaMatriculaOferta.Any( x => x.Usuario.ID == matriculaOferta.Usuario.ID && (x.StatusMatricula == enumStatusMatricula.Inscrito || x.StatusMatricula == enumStatusMatricula.PendenteConfirmacaoAluno))) { throw new AcademicoException("Usuário já inscrito nesta oferta"); } } // Verificar permissao de matricula de acordo com as regras de permissão da Oferta. if (matriculaOferta.Oferta != null && !matriculaOferta.Oferta.UsuarioPossuiPermissao(matriculaOferta.Usuario)) { throw new AcademicoException("Usuário não possui permissão para essa oferta"); } if (!divDataInscricao.Visible) { (new ManterMatriculaOferta()).VerificarPoliticaDeConsequencia(matriculaOferta); } SalvarMatriculaOferta(manterMatriculaOferta, matriculaOferta); ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "myscript", " $('#EdicaoNivel, #modal-background').removeClass('active');", true); LimparCamposMatriculaAluno(); //Cadastrar Solucao Educacional com o SAS var manterSEService = new ManterSolucaoEducacionalService(); if (matriculaOferta.Oferta.SolucaoEducacional.IntegracaoComSAS) { manterSEService.CadastrarSAS(matriculaOferta.Usuario, new BP.integracaoSAS.TreinamentoSasClient()); } //Matricular Aluno no Moodle manterSEService.MatricularAlunoMoodle(matriculaOferta.Usuario, matriculaOferta.Oferta); WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Aluno cadastrado com sucesso."); } } catch (AcademicoException ex) { // Lógica para alteração de status quando o usuário for administrador ou gestor uc if (LupaUsuario.SelectedUser != null && (usuarioLogado.IsAdministrador() || usuarioLogado.IsGestor())) { try { var matriculaOferta = ObterObjetoMatriculaOferta(); //Status if (ddlStatus.SelectedItem != null && !string.IsNullOrWhiteSpace(ddlStatus.SelectedItem.Value)) { if (ExisteComStatusRepetido((enumStatusMatricula)int.Parse(ddlStatus.SelectedItem.Value), matriculaOferta)) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Não é possível inserir uma nova matrícula com o mesmo status"); return; } } lblAvisoModalConfirmacaoInscricao.Text = ex.Message; pnlModalConfirmacaoInscricao.Visible = true; return; } catch { } } WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message); return; } catch (PoliticaConsequenciaException ex) { if (!IsAdminOrGestorUc) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message); return; } lblAvisoModalConfirmacaoInscricao.Text = ex.Message; pnlModalConfirmacaoInscricao.Visible = true; } }
/// <summary> /// Verificar se o usuário informado pode se inscrever na solução informada. /// </summary> /// <param name="usuario">Usuário a ser matriculado.</param> /// <param name="solucaoId">ID da solução que o usuário deseja se matricular.</param> /// <param name="retorno">Objeto de retorno com DTO das informações de bloqueio de matrícula, caso necessário.</param> /// <returns>True: usuário não pode se inscrever por causa de algum bloqueio. False: usuário pode proceder com a inscrição.</returns> private static bool UsuarioPossuiBloqueioInscricao(Usuario usuario, int solucaoId, ref DTODisponibilidadeSolucaoEducacional retorno) { // Verifica pendências if (PossuiQuestionarioPendente(usuario, ref retorno)) { return(true); } // Verifica se o usuário está matriculado no limite de cursos simultâneos. if (UsuarioPossuiLimiteInscricoesSimultaneas(usuario.ID, ref retorno)) { return(true); } // Obter todas as matrículas da Solução. var matriculasSe = new ManterMatriculaOferta().ObterPorUsuarioESolucaoEducacional(usuario.ID, solucaoId).ToList(); // Verifica se o aluno já está matriculado na SE if (UsuarioPossuiMatriculaSolucao(matriculasSe, solucaoId, ref retorno)) { return(true); } // Verifica se existe alguma matricula como Pendente de Confirmação. if (UsuarioPossuiPendenciaConfirmacao(matriculasSe, usuario, ref retorno)) { return(true); } // Se chegou até aqui, pode retornar os dados do termo de aceite e da política de consequência. var solucaoEducacional = new ManterSolucaoEducacional().ObterSolucaoEducacionalPorId(solucaoId); // Verifica se o usuário tem permissão para se inscrever na SE. if (UsuarioPossuiPermissaoSolucao(usuario, solucaoEducacional, ref retorno)) { return(true); } // MÉTODO IMPORTANTE!!! // Verificar bloqueio de acordo com as políticas de consequência. if (UsuarioPossuiBloqueioPoliticaDeConsequencia(usuario.ID, solucaoId, ref retorno)) { return(true); } // Sse o aluno estiver inscrito em algum programa, verifica se existe algum pré-requisito não cursado. if (UsuarioPossuiPendenciaCapacitacaoPrograma(solucaoId, usuario, ref retorno)) { return(true); } if (solucaoEducacional.TermoAceite != null) { retorno.NomeTermoAceite = solucaoEducacional.TermoAceite.Nome; retorno.TextoTermoAceite = solucaoEducacional.TermoAceite.Texto; retorno.TextoPoliticaConsequencia = solucaoEducacional.TermoAceite.PoliticaConsequencia; } // Verifica se a Solução está Inativa. if (solucaoEducacional.Ativo == false) { retorno.TextoDisponibilidade = "Solução Educacional não está ativa no momento"; return(true); } return(false); }
public DTOCapacitacao AprovacoesSolucoesEducacionais(MatriculaCapacitacao matriculaCapacitacao, int pIdUsuario) { DTOCapacitacao dtoCapacitacao = new DTOCapacitacao { NomeCapacitacao = matriculaCapacitacao.Capacitacao.Nome, idMatricula = matriculaCapacitacao.ID, DataInicio = matriculaCapacitacao.DataInicio.ToString("dd/MM/yyyy"), DataFim = matriculaCapacitacao.DataFim.HasValue ? matriculaCapacitacao.DataFim.Value.ToString("dd/MM/yyyy") : "" }; var bmMatricula = new ManterMatriculaOferta(); ConsultarMeusCursos ConsultaMeusCursos = new ConsultarMeusCursos(); int totalAprovacoes = 0; int totalSolEdu = 0; var manterPreRequisito = new ManterModuloPreRequisito(); foreach (var modulo in matriculaCapacitacao.Capacitacao.ListaModulos.Distinct()) { DTOModulo dtoModulo = new DTOModulo { ID = modulo.ID, Nome = modulo.Nome, Descricao = modulo.Descricao, DataInicio = modulo.DataInicio.ToString("dd/MM/yyyy"), DataFim = modulo.DataFim.HasValue ? modulo.DataFim.Value.ToString("dd/MM/yyyy") : "" }; var lsSolucoesModulo = modulo.ListaSolucaoEducacional.Distinct(); var totalAprovadoModulo = 0; foreach (var solucao in lsSolucoesModulo) { var aprovado = bmMatricula.AprovacaoPorUsuarioESolucaoEducacional(pIdUsuario, solucao.SolucaoEducacional.ID); if (aprovado) { totalAprovacoes++; totalAprovadoModulo++; } var matOfertas = bmMatricula.ObterPorUsuarioESolucaoEducacional(pIdUsuario, solucao.SolucaoEducacional.ID).ToList(); var meusCursos = new List <DTOItemMeusCursos>(); // Se tiver Status inscrito ou pendente de confirmação segue o fluxo normal de matrículas em oferta if (matOfertas.Any(x => (x.StatusMatricula == enumStatusMatricula.Inscrito || x.StatusMatricula == enumStatusMatricula.PendenteConfirmacaoAluno))) { ConsultaMeusCursos.PreencherDTOComInformacoesDaMatriculaOferta(meusCursos, matOfertas); //dtoModulo.SolucoesModulo.Add(new DTOItemMeusCursos { Nome = solucao.SolucaoEducacional.Nome, Concluido = aprovado, IDNode = solucao.SolucaoEducacional.IdNode }); foreach (var curso in meusCursos) { dtoModulo.SolucoesModulo.Add(curso); } } // Se não tiver inscrito escreve as informações básicas else { DTOItemMeusCursos dtoItemMeusCursos = new DTOItemMeusCursos(); dtoItemMeusCursos.ID = solucao.SolucaoEducacional.ID; dtoItemMeusCursos.NomeSolucao = solucao.SolucaoEducacional.Nome; dtoItemMeusCursos.Fornecedor = solucao.SolucaoEducacional.Fornecedor.Nome; if (aprovado) { dtoItemMeusCursos.SituacaoID = 9; dtoItemMeusCursos.Situacao = "Aprovado"; } else { dtoItemMeusCursos.SituacaoID = 0; dtoItemMeusCursos.Situacao = "Você não está inscrito nesse curso"; } dtoItemMeusCursos.IDChaveExterna = solucao.SolucaoEducacional.IDChaveExterna; dtoItemMeusCursos.IDNode = solucao.SolucaoEducacional.IdNode; dtoModulo.SolucoesModulo.Add(dtoItemMeusCursos); } } var totalSeMod = modulo.ListaSolucaoEducacional.Count(); dtoModulo.PorcentagemConclusaoModulo = (int)(Math.Round((double)totalAprovadoModulo / (double)totalSeMod, 2) * 100); dtoModulo.TextoConclusaoModulo = totalAprovadoModulo.ToString() + "/" + totalSeMod.ToString(); // Verificar pré requisitos do módulo dtoModulo.PreRequisitoPendente = manterPreRequisito.VerificarPreRequisitoPendente(modulo, pIdUsuario); totalSolEdu += totalSeMod; // Insere o Módulo no DTO dtoCapacitacao.ModulosCapacitacao.Add(dtoModulo); } // CAPACITAÇÕES int diasCancelamento = int.Parse(ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.DiasCancelamentoCurso).Registro.ToString()); bool habilitaCancelamento; if (matriculaCapacitacao.Capacitacao.PermiteCancelarMatricula && matriculaCapacitacao.DataInicio.Date.AddDays(diasCancelamento) >= DateTime.Now) { habilitaCancelamento = true; } else { habilitaCancelamento = false; } int percentage = 0; // Se não tiver soluções disponíveis ou se não tiver feito nada retorna 0 if (totalAprovacoes != 0 && totalSolEdu != 0) { percentage = (int)(Math.Round((double)totalAprovacoes / (double)totalSolEdu, 2) * 100); } // Insere o resto dos dados da capacitação dtoCapacitacao.PorcentagemConclusaoCapacitacao = percentage; dtoCapacitacao.TextoConclusaoCapacitacao = totalAprovacoes.ToString() + "/" + totalSolEdu.ToString(); dtoCapacitacao.HabilitaCancelamento = habilitaCancelamento; return(dtoCapacitacao); }
private void ValidarAvaliacao(bool aprovar) { try { var turma = ObterTurma(); var usuarioLogado = new ManterUsuario().ObterUsuarioLogado(); if (UsuarioPodeValidarAvaliacao(turma, usuarioLogado)) { var avaliacao = turma.Avaliacoes.FirstOrDefault(); if (avaliacao != null) { var manterMatriculaOferta = new ManterMatriculaOferta(); var manterAvaliacao = new ManterAvaliacao(); var emailsAlunos = new List <string>(); // Alterar status das matrículas. foreach (var respostaId in avaliacao.Respostas.Where(x => x.Questao.Tipo == enumTipoQuestao.Resultado).Select(x => x.ID)) { // Busca a resposta denovo do banco pois o NHibernate tá pirando com o Lazy. var resposta = manterAvaliacao.ObterQuestaoRespostaPorId(respostaId); var matricula = resposta.MatriculaTurma.MatriculaOferta; // Adicionar emails para envio posterior. if (aprovar && !string.IsNullOrWhiteSpace(matricula.Usuario.Email)) { emailsAlunos.Add(matricula.Usuario.Email); } if (resposta.StatusMatricula != null) { matricula.StatusMatricula = (enumStatusMatricula)resposta.StatusMatricula.ID; manterMatriculaOferta.Salvar(matricula); } } // Mandar e-mail aos alunos caso a avaliação seja aprovada. if (aprovar) { var manterEmail = new ManterEmail(); var template = new ManterTemplate().ObterTemplatePorID((int)enumTemplate.ResultadoAvaliacao); var thread = new Thread(() => { foreach (var email in emailsAlunos) { manterEmail.EnviarEmail(email, template.Assunto ?? template.DescricaoTemplate, template.TextoTemplate); } }) { IsBackground = true }; thread.Start(); } // Finalizar status da avaliação e setar o usuário que analisou. avaliacao.Status = aprovar ? enumStatusAvaliacao.Aprovada : enumStatusAvaliacao.AguardandoResposta; avaliacao.Analista = usuarioLogado; manterAvaliacao.Salvar(avaliacao); WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Avaliação " + (!aprovar ? "não" : "") + " aprovada com sucesso", "GerenciamentoMatricula.aspx?oferta=" + turma.Oferta.ID); return; } } } catch (Exception) { // ignored. } WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Houve um erro na validação da avaliação. Tente novamente."); }
private void EfetuarMatriculas(IList <SolucaoEducacionalObrigatoria> solucoesObrigatorias, IQueryable <Usuario> usuariosTodosNiveis) { // Obtém somente os campos que serão utilizados abaixo; var usuarioLogado = new ManterUsuario().ObterUsuarioLogado(); var manterMatriculaOferta = new ManterMatriculaOferta(); var manterMatriculaTurma = new ManterMatriculaTurma(); // Matricular usuário. var thread = new Thread(() => { var currentThread = Thread.CurrentThread; try { if (solucoesObrigatorias != null) { foreach (var obrigatorio in solucoesObrigatorias) { try { // Obter usuários do nível ocupacional da solução obrigatória. var listaUsuariosNivelOcupacional = usuariosTodosNiveis.Where(x => x.NivelOcupacional.ID == obrigatorio.NivelOcupacional.ID); // Obter somente os usuários que NÃO estão matriculados na solução. listaUsuariosNivelOcupacional = listaUsuariosNivelOcupacional.Where( x => x.ListaMatriculaOferta.All( y => y.Oferta.SolucaoEducacional.ID != obrigatorio.SolucaoEducacional.ID)); var oferta = obrigatorio.SolucaoEducacional.ListaOferta.FirstOrDefault( x => Helpers.Util.ObterVigente(x.DataInicioInscricoes, x.DataFimInscricoes) && x.ListaTurma.Any(t => Helpers.Util.ObterVigente(t.DataInicio, t.DataFinal))); // Caso não exista oferta vigente com turma vigente, pula a solução. if (oferta == null) { currentThread.Abort(); } // Seleciona somente os campos necessários. listaUsuariosNivelOcupacional = listaUsuariosNivelOcupacional.Select(x => new Usuario { ID = x.ID, UF = x.UF, NivelOcupacional = x.NivelOcupacional, ListaMatriculaOferta = x.ListaMatriculaOferta }); foreach (var usuario in listaUsuariosNivelOcupacional) { try { EfetuarMatricula(usuarioLogado, oferta, usuario, manterMatriculaOferta, manterMatriculaTurma); } catch (Exception) { // ignored. } } } catch (Exception) { // ignored. } } } currentThread.Abort(); } catch (ThreadAbortException) { // ignored } }); thread.IsBackground = true; thread.Start(); }
private void EfetuarMatricula(Usuario usuarioLogado, Dominio.Classes.Oferta oferta, Usuario usuario, ManterMatriculaOferta manterMatriculaOferta, ManterMatriculaTurma manterMatriculaTurma) { var novaMatriculaOferta = new MatriculaOferta { Auditoria = new Auditoria(usuarioLogado.CPF), Oferta = oferta, Usuario = usuario, StatusMatricula = enumStatusMatricula.Inscrito, UF = usuario.UF, NivelOcupacional = usuario.NivelOcupacional, DataSolicitacao = DateTime.Today }; manterMatriculaOferta.Salvar(novaMatriculaOferta); var novaMatriculaTurma = new MatriculaTurma { Auditoria = new Auditoria(usuarioLogado.CPF), Turma = oferta.ListaTurma.FirstOrDefault(t => Helpers.Util.ObterVigente(t.DataInicio, t.DataFinal)), MatriculaOferta = novaMatriculaOferta, DataMatricula = DateTime.Today }; novaMatriculaTurma.DataLimite = novaMatriculaTurma.CalcularDataLimite(); manterMatriculaTurma.Salvar(novaMatriculaTurma); }
protected void ddlStatusOferta_SelectedIndexChanged(object sender, EventArgs e) { if (InModoDeAvaliacao) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Não é possível alterar o Status desta matrícula diretamente. Ela precisa passar pela avaliação de um Consultor Educacional e ser aprovada por um Gestor."); return; } var comboStatusOferta = (DropDownList)sender; if (comboStatusOferta != null && comboStatusOferta.SelectedItem != null && !string.IsNullOrWhiteSpace(comboStatusOferta.SelectedItem.Value)) { try { //Obtém a linha da grid onde a dropdownlist (combo) de oferta, está contida var linhadaGrid = (GridViewRow)comboStatusOferta.NamingContainer; if (linhadaGrid == null) { return; } var ddlStatusOferta = (DropDownList)linhadaGrid.FindControl("ddlStatusOferta"); if (ddlStatusOferta == null) { return; } var hdfIdMatriculaOferta = (HiddenField)linhadaGrid.FindControl("hdfIdMatriculaOferta"); var manterMatriculaOferta = new ManterMatriculaOferta(); var ddlTurma = (DropDownList)linhadaGrid.FindControl("ddlTurma"); var statusMatriculaOferta = (enumStatusMatricula)Enum.Parse(typeof(enumStatusMatricula), ddlStatusOferta.SelectedItem.Value); int IdMatriculaOferta; classes.MatriculaOferta matriculaOferta = null; if (int.TryParse(hdfIdMatriculaOferta.Value, out IdMatriculaOferta)) { matriculaOferta = manterMatriculaOferta.ObterMatriculaOfertaPorID(IdMatriculaOferta); } var usuarioLogado = new ManterUsuario().ObterUsuarioLogado(); var matriculaTurma = matriculaOferta.MatriculaTurma.FirstOrDefault(); if (statusMatriculaOferta.Equals(enumStatusMatricula.CanceladoGestor) && !usuarioLogado.IsGestor()) { throw new AcademicoException("Apenas o gestor UC pode alterar para este perfil"); } if (statusMatriculaOferta.Equals(enumStatusMatricula.CanceladoAdm) && !usuarioLogado.IsAdministrador()) { throw new AcademicoException("Apenas o Administrador pode alterar para este perfil"); } if (statusMatriculaOferta.Equals(enumStatusMatricula.Inscrito)) { if (string.IsNullOrEmpty(ddlTurma.SelectedValue) || int.Parse(ddlTurma.SelectedValue) <= 0) { throw new AcademicoException("Selecione uma turma para alterar a inscrição"); } try { new ManterSolucaoEducacional().ValidarPreRequisitosDaMatricula(matriculaOferta); } catch (Exception) { AtualizarStatusDaOferta(enumStatusMatricula.Inscrito, matriculaOferta, ref manterMatriculaOferta); throw; } } if (statusMatriculaOferta.Equals(enumStatusMatricula.CanceladoAluno)) { //O usuário do admin, pode ver o status do Cancelado/Aluno, mas nunca pode setar esse status WebFormHelper.ExibirMensagem(enumTipoMensagem.Atencao, "Apenas o aluno pode atribuir o status de cancelado pelo aluno"); } else { if (matriculaTurma == null) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "O aluno precisa estar vinculado a uma turma."); return; } if (matriculaOferta.StatusMatricula != enumStatusMatricula.Inscrito && statusMatriculaOferta == enumStatusMatricula.Inscrito) { ExibirModalConfirmacaoStatusInscrito(matriculaTurma); } else { ExibirModalDataConclusao(matriculaTurma, statusMatriculaOferta); } } // Atualizar lista de status disponíveis, pois pode sofrer alteração caso haja // o status de Cancelado\Turma, que possui um comportamento especial. SetarListaComStatusDeMatricula(matriculaOferta); // Trata a exibição da listagem de Status novamente, para manter os mesmos Status, // com as mesmas formas. TratarComboStatusOferta(ddlStatusOferta, matriculaOferta); } catch (AcademicoException ex) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message); } catch { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Erro Interno no servidor."); } } }
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); } }
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); } } }