private static void FinalizarSolicitacaoRelatorio(string nomeAmigavel, string nomeAleatorioDoArquivoParaUploadCriptografado, ManterSolicitacaoRelatorio manterSolicitacao, ManterFileServer manterFileServer, SolicitacaoRelatorio solicitacao) { // Obtém o MIME da Request. var mime = ""; var extensao = ""; switch (solicitacao.ObterSaidaEnum()) { case enumTipoSaidaRelatorio.PDF: mime = "application/pdf"; extensao = "pdf"; break; case enumTipoSaidaRelatorio.WORD: mime = "application/msword"; extensao = "doc"; break; case enumTipoSaidaRelatorio.EXCEL: mime = "application/vnd.ms-excel"; extensao = "xls"; break; } var nomeOriginalArquivo = nomeAmigavel + "_" + solicitacao.DataSolicitacao.ToShortDateString() + "_" + solicitacao.DataSolicitacao.Hour.ToString().PadLeft(2, '0') + solicitacao.DataSolicitacao.Minute.ToString().PadLeft(2, '0') + "." + extensao; nomeOriginalArquivo = nomeOriginalArquivo.Replace(" ", "_"); // Prepara o cadastro do arquivo na tabela do Media Server. var fileServer = new FileServer { NomeDoArquivoNoServidor = nomeAleatorioDoArquivoParaUploadCriptografado, NomeDoArquivoOriginal = nomeOriginalArquivo, TipoArquivo = mime, MediaServer = true }; // Salva no FileServer. manterFileServer.IncluirFileServer(fileServer); solicitacao.Arquivo = fileServer; solicitacao.DataGeracao = DateTime.Now; // Salvar novamente, com o arquivo. manterSolicitacao.Salvar(solicitacao); }
private void PreencherCertificado(MatriculaOferta itemHistorico, DTOItemHistoricoAcademico item, Usuario usuario) { if (itemHistorico.IsAprovado() && !itemHistorico.IsOuvinte()) // Alunos com o status de Ouvinte não podem emitir certificados. { item.TemCertificado = itemHistorico.Oferta.CertificadoTemplate != null; item.CargaHoraria = itemHistorico.Oferta.CargaHoraria.ToString(); if (itemHistorico.Oferta.SolucaoEducacional.Fornecedor.ID == (int)enumFornecedor.FGVOCW) { var nomeArquivoOriginal = "FGVOCW_" + itemHistorico.Usuario.CPF + "_" + itemHistorico.Oferta.IDChaveExterna + ".pdf"; var mFS = new ManterFileServer(); var fileServer = mFS.ObterFileServerPorFiltro(new FileServer { NomeDoArquivoOriginal = nomeArquivoOriginal, MediaServer = true }).FirstOrDefault(); item.TemCertificado = true; if (fileServer != null) { item.LKCertificado = Util.Classes.ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.EnderecoSGUS) .Registro + "/MediaServer.ashx?Identificador=" + fileServer.ID; } else { item.LKCertificado = "http://www5.fgv.br/ucsebraeocw/CertificadoCursoGratuitoOnline.aspx?cpf=" + itemHistorico.Usuario.CPF + "&oferta=" + itemHistorico.Oferta.IDChaveExterna; } } // Link de acesso ao curso - Somente se tiver sido aprovado if (itemHistorico.MatriculaTurma != null && itemHistorico.MatriculaTurma.FirstOrDefault() != null) { var matTurma = itemHistorico.MatriculaTurma.FirstOrDefault(); if (matTurma.Turma.AcessoAposConclusao) { item.LKAcesso = string.IsNullOrEmpty(matTurma.MatriculaOferta.LinkAcesso) ? (new ConsultarMeusCursos()).ConsultarLinkAcessoFornecedor( matTurma.MatriculaOferta.Oferta.SolucaoEducacional.Fornecedor, usuario, matTurma.MatriculaOferta.Oferta.CodigoMoodle.ToString()) : matTurma.MatriculaOferta.LinkAcesso; } } } }
protected void btnPesquisar_Click(object sender, EventArgs e) { try { var mediaServer = ObterObjetoFileServer(); manterFileServer = new ManterFileServer(); var listaFileServer = manterFileServer.ObterFileServerPorFiltro(mediaServer, true); if (listaFileServer != null && listaFileServer.Count > 0) { WebFormHelper.PreencherGrid(listaFileServer, this.dgvFileServer); pnlFileServer.Visible = true; } else { pnlFileServer.Visible = false; WebFormHelper.ExibirMensagem(enumTipoMensagem.Alerta, "Nenhuma Informação Encontrada"); } } catch (AcademicoException ex) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message); } }
protected void dgvFileServer_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName.Equals("excluir")) { try { manterFileServer = new ManterFileServer(); int idFileServer = int.Parse(e.CommandArgument.ToString()); manterFileServer.ExcluirFileServer(idFileServer); WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Registro excluído com sucesso!", "ListarMediaServer.aspx"); } catch (AcademicoException ex) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message); return; } } else if (e.CommandName.Equals("editar")) { int idFileServer = int.Parse(e.CommandArgument.ToString()); //Session.Add("FileServerEdit", idFileServer); Response.Redirect("EditarMediaServer.aspx?Id=" + idFileServer.ToString(), false); } }
private void MontarPainelSe(int idParticipacao) { LimparObjetos(); _ItemTrilhaParticipacao = new BMItemTrilhaParticipacao().ObterPorId(idParticipacao); if (_ItemTrilhaParticipacao != null) { List <ItemTrilhaParticipacao> listaHistorico = new BMItemTrilhaParticipacao().ObterParticipacoesUsuarioTrilha(_ItemTrilhaParticipacao.ItemTrilha.ID, _ItemTrilhaParticipacao.UsuarioTrilha.ID); if (listaHistorico != null && listaHistorico.Count > 0) { listaHistorico = listaHistorico.Where(x => x.ID != idParticipacao).ToList(); } var itemTrilha = (new BMItemTrilha()).ObterPorID(_ItemTrilhaParticipacao.ItemTrilha.ID); var se = itemTrilha.SolucaoEducacionalAtividade; lblOrientacaoParticipacao.Text = string.IsNullOrEmpty(_ItemTrilhaParticipacao.Orientacao) ? (itemTrilha.Local ?? "Sem conteúdo.") : (_ItemTrilhaParticipacao.Orientacao ?? "Sem conteúdo."); lblObjetivo.Text = itemTrilha.Objetivo != null ? itemTrilha.Objetivo.Nome : se == null ? "Sem conteúdo." : se.Objetivo ?? "Sem conteúdo."; lblFormaAquisicao.Text = itemTrilha.FormaAquisicao != null ? itemTrilha.FormaAquisicao.Nome : "Sem conteúdo."; lblReferenciaBibliografica.Text = itemTrilha.ReferenciaBibliografica; if (!string.IsNullOrEmpty(itemTrilha.LinkConteudo)) { lblLinkConteudo.Text = "Clique para acessar."; lblLinkConteudo.NavigateUrl = itemTrilha.LinkConteudo; } else { lblLinkConteudo.Text = "Sem conteúdo."; lblLinkConteudo.NavigateUrl = "#"; } if (_ItemTrilhaParticipacao.ItemTrilha.FileServer != null && _ItemTrilhaParticipacao.ItemTrilha.FileServer.ID > 0) { var file = new ManterFileServer().ObterFileServerPorID(_ItemTrilhaParticipacao.ItemTrilha.FileServer.ID); lblLinkAcessoConteudo.NavigateUrl = lblLinkAcessoConteudo.Text = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.EnderecoSGUS).Registro + "/ExibirFileServer.ashx?Identificador=" + file.NomeDoArquivoNoServidor; } else { lblLinkAcessoConteudo.Text = "Sem Anexo"; lblLinkAcessoConteudo.NavigateUrl = "#"; } divObjetivoServer.Visible = true; divFormaAquisicao.Visible = true; divReferenca.Visible = true; divLinkConteudo.Visible = true; divLinkAcesso.Visible = true; var usuaroTrilha = new ManterUsuarioTrilha().ObterPorId(_ItemTrilhaParticipacao.UsuarioTrilha.ID); txtUsuarioModal.Text = usuaroTrilha.Usuario.Nome; txtTrilhaModal.Text = itemTrilha.Missao.PontoSebrae.TrilhaNivel.Trilha.Nome; txtNivelModal.Text = itemTrilha.Missao.PontoSebrae.TrilhaNivel.Nome; txtPontoSebraeModal.Text = itemTrilha.Missao.PontoSebrae.NomeExibicao; txtSolucaoEducacionalModal.Text = itemTrilha.Nome; txtParticipacaoModal.Text = _ItemTrilhaParticipacao.TextoParticipacao; txtObservacao.Text = string.Empty; txtAutorizado.Text = _ItemTrilhaParticipacao.AutorizadoFormatado; rblAutorizadoModal.SelectedIndex = -1; WebFormHelper.PreencherGrid(listaHistorico.OrderByDescending(x => x.DataAlteracao).ToList(), gvHistoricoParticipacaoModal); hplnkCaminhoArquivo.Visible = false; if (_ItemTrilhaParticipacao.FileServer != null && _ItemTrilhaParticipacao.FileServer.ID > 0) { MontarLinkDownload(_ItemTrilhaParticipacao.FileServer); } } }
private static void ExecutarThreadSolicitacaoRelatorio(object dt, enumTipoSaidaRelatorio saida, ListItemCollection items, string nomeRelatorio, string nomeAmigavel, string diretorioDeUploadComArquivo, string nomeAleatorioDoArquivoParaUploadCriptografado, Usuario usuario, ManterSolicitacaoRelatorio manterSolicitacao, ManterFileServer manterFileServer, int quantidadeRegistro, object totalizador = null) { _thread = new Thread(() => { var solicitacao = new SolicitacaoRelatorio { DataSolicitacao = DateTime.Now, Nome = nomeRelatorio, NomeAmigavel = nomeAmigavel, Saida = saida.ToString(), Usuario = usuario, QuantidadeRegistros = quantidadeRegistro }; // Salvar pedido inicial, para consulta do status da solicitação do relatório. manterSolicitacao.Salvar(solicitacao); try { dynamic list = dt; dt = DataUtil.ToDataTable(list); var rv = WebFormHelper.GerarRelatorio(nomeRelatorio, dt, items, totalizador); // Obtém o arquivo. Super lento em relatórios grandes. Por isso está em uma Thread dããã, senhor óbvio var arquivoBytes = rv.LocalReport.Render(saida.ToString()); // Escrever o arquivo na pasta. File.WriteAllBytes(diretorioDeUploadComArquivo, arquivoBytes); FinalizarSolicitacaoRelatorio(nomeAmigavel, nomeAleatorioDoArquivoParaUploadCriptografado, manterSolicitacao, manterFileServer, solicitacao); Thread.CurrentThread.Abort(); } catch (ThreadAbortException) { // ignored } catch (Exception ex) { // Informa que houve falha na geração do relatório. solicitacao.Falha = true; solicitacao.Descricao = ex.ToString(); manterSolicitacao.Salvar(solicitacao); _thread.Abort(); } }) { IsBackground = true }; // Let the chaos COMMENCE! _thread.Start(); }
private static void ExecutarThreadSolicitacaoRelatorioRequisicao(HttpWebRequest webRequest, enumTipoSaidaRelatorio saida, string nomeRelatorio, string nomeAmigavel, string diretorioDeUploadComArquivo, string nomeAleatorioDoArquivoParaUploadCriptografado, Usuario usuario, ManterSolicitacaoRelatorio manterSolicitacao, ManterFileServer manterFileServer, int quantidadeRegistro) { _thread = new Thread(() => { var solicitacao = new SolicitacaoRelatorio { DataSolicitacao = DateTime.Now, Nome = nomeRelatorio, NomeAmigavel = nomeAmigavel, Saida = saida.ToString(), Usuario = usuario, QuantidadeRegistros = quantidadeRegistro }; // Salvar pedido inicial, para consulta do status da solicitação do relatório. manterSolicitacao.Salvar(solicitacao); try { var myReq = webRequest; var myResp = myReq.GetResponse(); using (var stream = myResp.GetResponseStream()) { if (stream == null) { throw new Exception( "Stream nulo não pode ser utilizado para ler o relatório. Tente novamente."); } using (var ms = new MemoryStream()) { int count; do { var buf = new byte[1024]; count = stream.Read(buf, 0, 1024); ms.Write(buf, 0, count); } while (stream.CanRead && count > 0); // Escrever o arquivo na pasta. É aqui que a mágica acontece. File.WriteAllBytes(diretorioDeUploadComArquivo, ms.ToArray()); } } FinalizarSolicitacaoRelatorio(nomeAmigavel, nomeAleatorioDoArquivoParaUploadCriptografado, manterSolicitacao, manterFileServer, solicitacao); Thread.CurrentThread.Abort(); } catch (ThreadAbortException) { // ignored } catch (Exception ex) { // Informa que houve falha na geração do relatório. solicitacao.Descricao = "Erro ao escrever " + diretorioDeUploadComArquivo + " - Mensagem de erro: " + ex; solicitacao.Falha = true; manterSolicitacao.Salvar(solicitacao); _thread.Abort(); } }) { IsBackground = true, Name = nomeRelatorio + Guid.NewGuid() }; // Let the chaos COMMENCE! _thread.Start(); }
private FileServer ObterObjetoFileServer() { FileServer mediaServer = null; if (Request["Id"] != null) { mediaServer = new ManterFileServer().ObterFileServerPorID(int.Parse(Request["Id"].ToString())); mediaServer.NomeDoArquivoOriginal = txtNomeDoArquivoOriginal.Text; } else { mediaServer = new FileServer(); } if (fupldArquivoEnvio != null && fupldArquivoEnvio.PostedFile != null && fupldArquivoEnvio.PostedFile.ContentLength > 0) { try { var caminhoDiretorioUpload = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.RepositorioUpload).Registro; var nomeAleatorioDoArquivoParaUploadCriptografado = WebFormHelper.ObterStringAleatoria(); var diretorioDeUploadComArquivo = string.Concat(caminhoDiretorioUpload, @"\", nomeAleatorioDoArquivoParaUploadCriptografado); try { //Salva o arquivo no caminho especificado fupldArquivoEnvio.PostedFile.SaveAs(diretorioDeUploadComArquivo); } catch { //Todo: -> Logar o Erro throw new AcademicoException("Ocorreu um erro ao Salvar o arquivo"); } mediaServer.NomeDoArquivoNoServidor = nomeAleatorioDoArquivoParaUploadCriptografado; mediaServer.NomeDoArquivoOriginal = !String.IsNullOrWhiteSpace(txtNomeDoArquivoOriginal.Text) ? txtNomeDoArquivoOriginal.Text : fupldArquivoEnvio.FileName; mediaServer.TipoArquivo = fupldArquivoEnvio.PostedFile.ContentType; mediaServer.Uf = mediaServer.Uf ?? new ManterUf().ObterUfPorID( new ManterUsuario().ObterUsuarioLogado().UF.ID); } catch (AcademicoException ex) { throw ex; } catch { //Todo: -> Logar erro throw new AcademicoException("Ocorreu um Erro ao Salvar o arquivo"); } } else { if (Request["Id"] == null) { throw new AcademicoException("Nenhum arquivo informado."); } } mediaServer.MediaServer = true; return(mediaServer); }