protected void lkbEmitirCertificado_Click(object sender, EventArgs e) { CertificadoTemplate cf = CertificadoTemplateUtil.ConsultarCertificado(0, 0, this.IdUsuarioTrilha); //DataTable dt = CertificadoTemplateUtil.GerarDataTableComCertificado(0, this.IdUsuarioTrilha, cf); //byte[] resultado = CommonHelper.GerarArrayDeBytesParaORelatorioCertificadoTemplate(cf, dt, "PDF"); //CommonHelper.GerarArquivoParaDowload(resultado); }
public byte[] EmitirCertificado(int pIdMatriculaPrograma, int pIdMatriculaOferta, int pIdUsuarioTrilha) { if (autenticacao == null || !(segurancaAutenticacao.AutenticaUsuario(autenticacao))) { throw new Exception("Usuário não autenticado pelo sistema."); } var cf = CertificadoTemplateUtil.ConsultarCertificado(pIdMatriculaPrograma, pIdMatriculaOferta, pIdUsuarioTrilha); var dt = CertificadoTemplateUtil.GerarDataTableComCertificado(pIdMatriculaPrograma, pIdMatriculaOferta, pIdUsuarioTrilha, cf); return(CertificadoTemplateUtil.RetornarCertificado(cf, dt)); }
public void EmitirCertificado(MatriculaOferta matriculaOferta) { if (matriculaOferta.Oferta.SolucaoEducacional.Fornecedor.ID != (int)enumFornecedor.FGVOCW) { CertificadoTemplate cf = CertificadoTemplateUtil.ConsultarCertificado(0, matriculaOferta.ID, 0); DataTable dt = CertificadoTemplateUtil.GerarDataTableComCertificado(0, matriculaOferta.ID, 0, cf); string caminhoReport = string.Empty; if (string.IsNullOrWhiteSpace(cf.Imagem2) && string.IsNullOrWhiteSpace(cf.TextoCertificado2)) { caminhoReport = "EmitirCertificado.rptCertificadoTemplate.rdlc"; } else { caminhoReport = "EmitirCertificado.rptCertificadoTemplate2paginas.rdlc"; } string binPath = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "bin"); Assembly assembly = Assembly.LoadFrom(binPath + "\\Sebrae.Academico.Reports.dll"); Stream stream = assembly.GetManifestResourceStream("Sebrae.Academico.Reports." + caminhoReport); ReportViewer rv = new ReportViewer(); rv.LocalReport.LoadReportDefinition(stream); rv.LocalReport.DataSources.Clear(); rv.LocalReport.DataSources.Add(new ReportDataSource("dsCertificadoTemplate", dt)); var fileBytes = rv.LocalReport.Render("PDF"); System.Web.HttpContext context = System.Web.HttpContext.Current; context.Response.Clear(); context.Response.ClearHeaders(); context.Response.ClearContent(); context.Response.AppendHeader("content-length", fileBytes.Length.ToString()); context.Response.ContentType = "application/pdf"; context.Response.AppendHeader("content-disposition", "attachment; filename=Certificado.pdf"); context.Response.BinaryWrite(fileBytes); context.ApplicationInstance.CompleteRequest(); } else { var link = new HistoricoAcademicoServices().ConsultarHistorico(matriculaOferta.Usuario.ID).FirstOrDefault(x => x.IdMatricula == matriculaOferta.ID); if (link != null && !string.IsNullOrEmpty(link.LKCertificado)) { try { HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(link.LKCertificado); WebResponse myResp = myReq.GetResponse(); HttpContext context = HttpContext.Current; byte[] b = null; using (Stream stream = myResp.GetResponseStream()) using (MemoryStream ms = new MemoryStream()) { int count = 0; do { byte[] buf = new byte[1024]; count = stream.Read(buf, 0, 1024); ms.Write(buf, 0, count); } while (stream.CanRead && count > 0); b = ms.ToArray(); context.Response.ContentType = "application/pdf"; context.Response.AppendHeader("content-disposition", "attachment; filename=Certificado.pdf"); context.Response.BinaryWrite(ms.ToArray()); context.Response.Flush(); } } catch { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Erro ao Baixar Certificado do Servidor Remoto FGV"); } } else { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Certificado do OCW não encontrado"); } } }