コード例 #1
0
        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);
        }
コード例 #2
0
        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;
                    }
                }
            }
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
 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);
     }
 }
コード例 #5
0
        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);
                }
            }
        }
コード例 #6
0
        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();
        }
コード例 #7
0
        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();
        }
コード例 #8
0
        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);
        }