public async Task <IActionResult> Exportar()
        {
            UsuarioADE usuario = await ObterUsuarioLogado();

            try
            {
                Documento tabela = new Documento();
                tabela.IdCursoNavigation = await _cursoServices.BuscarPorId(usuario.IdCurso);

                tabela.IdCursoNavigation.Instituicao = await _servicoInstituicao.BuscarPorId(tabela.IdCursoNavigation.IdInstituicao);

                RequisitosBasicosCabecalho requisitosFicha = await ObterRequisitosBasicosUsuario(usuario);

                ArquivoDownload Arquivo = await servicoRegistroDeHoras.GerarTabelaHistorico(usuario, tabela, requisitosFicha);

                //await _atividadeEstagioServices.VerificarTarefasEConcluir(usuario, EnumEntidadesSistema., tabela.Identificador, EnumTipoAtividadeEstagio.DownloadOuImpressao, 1);
                return(File(Arquivo.Bytes, Arquivo.TipoArquivo, $"Tabela de Registro de Horas - {usuario.ToString()}.docx"));
            }
            catch (Exception ex)
            {
                System.Threading.Thread.Sleep(3000);
                await LogError($"{ex.Message}", "RegistroHoras", EnumTipoLog.ImpressaoArquivo);
            }
            ViewBag.Retorno = "É necessário ao menos um registro para realizar a exportação do histórico.";
            ModelState.AddModelError("Falha", ViewBag.Retorno);
            return(View("Index"));
        }
        public async Task <RequisitosBasicosCabecalho> ObterRequisitosBasicosUsuario(UsuarioADE usuario)
        {
            ServicoRequisitoUsuario   _servicoRequisitoUsuario = new ServicoRequisitoUsuario(ref unitOfWork);
            ServicoRequisito          _servicoRequisito        = new ServicoRequisito(ref unitOfWork);
            List <RequisitoDeUsuario> RDU = await _servicoRequisitoUsuario.BuscarRequisitosDoUsuario(usuario.Id);

            foreach (RequisitoDeUsuario req in RDU)
            {
                req.IdRequisitoNavigation = await _servicoRequisito.BuscarPorId(req.IdRequisito);
            }

            RequisitosBasicosCabecalho requisitosFicha = new RequisitosBasicosCabecalho();

            requisitosFicha.NomeAluno =
                RDU.FirstOrDefault(x => x.IdRequisitoNavigation.Bookmark == NomesRequisitos.NomeAluno_) != null?
                RDU.FirstOrDefault(x => x.IdRequisitoNavigation.Bookmark == NomesRequisitos.NomeAluno_).Valor
                : "";

            requisitosFicha.RA =
                RDU.FirstOrDefault(x => x.IdRequisitoNavigation.Bookmark == NomesRequisitos.RegistroAcademico_) != null?
                RDU.FirstOrDefault(x => x.IdRequisitoNavigation.Bookmark == NomesRequisitos.RegistroAcademico_).Valor
                : "";

            requisitosFicha.Turma =
                RDU.FirstOrDefault(x => x.IdRequisitoNavigation.Bookmark == NomesRequisitos.TurmaAluno_) != null?
                RDU.FirstOrDefault(x => x.IdRequisitoNavigation.Bookmark == NomesRequisitos.TurmaAluno_).Valor
                : "";

            requisitosFicha.Carga_Horaria_Exigida =
                RDU.FirstOrDefault(x => x.IdRequisitoNavigation.Bookmark == NomesRequisitos.TotalCargaHorariaEstagio_) != null?
                RDU.FirstOrDefault(x => x.IdRequisitoNavigation.Bookmark == NomesRequisitos.TotalCargaHorariaEstagio_).Valor
                : "";

            requisitosFicha.Nome_Instituicao =
                RDU.FirstOrDefault(x => x.IdRequisitoNavigation.Bookmark == NomesRequisitos.NomeEmpresa_) != null?
                RDU.FirstOrDefault(x => x.IdRequisitoNavigation.Bookmark == NomesRequisitos.NomeEmpresa_).Valor
                : "";

            requisitosFicha.AreaEstagio =
                RDU.FirstOrDefault(x => x.IdRequisitoNavigation.Bookmark == NomesRequisitos.AreasEstagio_) != null?
                RDU.FirstOrDefault(x => x.IdRequisitoNavigation.Bookmark == NomesRequisitos.AreasEstagio_).Valor
                : "";

            return(requisitosFicha);
        }
Exemplo n.º 3
0
 public Stream GerarQuestionario(List <DadosAlunoKV> DadosAluno, RequisitosBasicosCabecalho requisitosBasicos)
 {
     FormularioEstagio = new Questionario(Documento, Cabecalho, DadosAluno, requisitosBasicos);
     return(FormularioEstagio.Gerar());
 }
Exemplo n.º 4
0
 public Stream GerarTabela(List <RegistroDeHoras> DadosAluno, RequisitosBasicosCabecalho requisitosFichaRegistroHoras)
 {
     Tabela = new TabelaRegistroDeHoras(Cabecalho, DadosAluno, requisitosFichaRegistroHoras);
     return(Tabela.Gerar());
 }
Exemplo n.º 5
0
        public async Task <ArquivoDownload> GerarTabelaHistorico(UsuarioADE usuario, Documento tabela, RequisitosBasicosCabecalho requisitosFichaRegistroHoras)
        {
            List <RegistroDeHoras> registros = await ObterRegistrosUsuario(usuario);

            int codigo = await RecuperarCodigoHistoricoGeracaoDocumento();

            if (registros.Count == 0)
            {
                throw new Exception("É necessário ao menos dois registros para realizar a exportação do histórico.");
            }
            MemoryStream    file            = (MemoryStream)GeradorDocumento.GerarDocumentoRegistroHoras(tabela, registros, requisitosFichaRegistroHoras, codigo);
            ArquivoDownload arquivoDownload = new ArquivoDownload(file, EnumFormatoDocumento.docx);

            await LogGeracaoDocumento(tabela, usuario);

            return(arquivoDownload);
        }
 public TabelaRegistroDeHoras(Cabecalho cabecalho, List <RegistroDeHoras> dados, RequisitosBasicosCabecalho requisitosFichaRegistroHoras) : base(cabecalho)
 {
     DadosTabela = dados;
     Requisitos  = requisitosFichaRegistroHoras;
 }
 public Stream GerarDocumentoQuestionario(Documento documento, List <DadosAlunoKV> DadosDocumento, int CodigoGeracao, RequisitosBasicosCabecalho requisitosBasicos)
 {
     FabricaDocumento = new FabricaDocumentos(documento, CodigoGeracao);
     return(FabricaDocumento.GerarQuestionario(DadosDocumento, requisitosBasicos));
 }
 public Stream GerarDocumentoRegistroHoras(Documento documento, List <RegistroDeHoras> DadosDocumento, RequisitosBasicosCabecalho requisitosFichaRegistroHoras, int CodigoGeracao)
 {
     FabricaDocumento = new FabricaDocumentos(documento, CodigoGeracao);
     return(FabricaDocumento.GerarTabela(DadosDocumento, requisitosFichaRegistroHoras));
 }
Exemplo n.º 9
0
        public async Task <IActionResult> DownloadDocumento([FromQuery] DocumentoRequest documentoRequest)
        {
            Documento Documento = await _documentoServices.BuscarPorId(documentoRequest.idDocumento);

            Documento.IdCursoNavigation = await _cursoServices.BuscarPorId(Documento.IdCurso);

            Documento.IdCursoNavigation.Instituicao = await _servicoInstituicao.BuscarPorId(Documento.IdCursoNavigation.IdInstituicao);

            UsuarioADE Usuario = await ObterUsuarioLogado();

            int TentativasDownload = 3;

            while (TentativasDownload > 0)
            {
                try
                {
                    if (Enum.TryParse(documentoRequest.MimeType, out EnumFormatoDocumento formatoDocumento))
                    {
                        List <DadosAlunoKV> dadosAlunoKV = JsonConvert.DeserializeObject <List <DadosAlunoKV> >(documentoRequest.dadosAluno);
                        foreach (DadosAlunoKV dado in dadosAlunoKV)
                        {
                            int id = Convert.ToInt32(dado.Name.Split(':')[0]);
                            dado.Requisito = await _servicoRequisito.BuscarUm(x => x.Identificador == id);
                        }
                        ArquivoDownload Arquivo;
                        if (Documento.Tipo != EnumTipoDocumento.Questionario)
                        {
                            Arquivo = await _documentoServices.GerarDownloadDocumento(dadosAlunoKV, Documento, Usuario, formatoDocumento);
                        }
                        else
                        {
                            RequisitosBasicosCabecalho requisitosBasicos = await ObterRequisitosBasicosUsuario(Usuario);

                            Arquivo = await _documentoServices.GerarDownloadQuestionario(dadosAlunoKV, Documento, Usuario, requisitosBasicos, formatoDocumento);
                        }
                        if (TentativasDownload == 3)
                        {
                            await _atividadeEstagioServices.VerificarTarefasEConcluir(Usuario, EnumEntidadesSistema.Documento, documentoRequest.idDocumento, EnumTipoAtividadeEstagio.DownloadOuImpressao, 1);
                        }

                        string handle = Guid.NewGuid().ToString();
                        TempData[handle] = Arquivo.Bytes.ToArray();
                        string data = JsonConvert.SerializeObject(new { FileGuid = handle, FileName = $"{Documento.TituloDocumento}.{documentoRequest.MimeType}" });
                        return(Json(data));
                    }
                    else
                    {
                        ModelState.AddModelError("Falha", "Formato inválido para documento");
                        return(Json("{\"Erro\": \"Formato inválido para documento\"}"));
                    }
                }
                catch (Exception ex) when(TentativasDownload > 0)
                {
                    TentativasDownload -= 1;
                    System.Threading.Thread.Sleep(3000);
                    await LogError($"{ex.Message}", "ListagemDocumento", EnumTipoLog.ImpressaoArquivo);
                }
            }
            ViewBag.Retorno = "Recurso indisponivel no momento, tente novamente em alguns instantes.";
            ModelState.AddModelError("Falha", ViewBag.Retorno);
            return(await VisualizacaoDocumentosCurso(Documento.IdCurso, "Recurso indisponivel no momento, tente novamente em alguns instantes.", 1));
        }
Exemplo n.º 10
0
 public Questionario(Documento documento, Cabecalho cabecalho, List <DadosAlunoKV> dados, RequisitosBasicosCabecalho requisitos) : base(cabecalho, dados, documento)
 {
     Requisitos = requisitos;
 }
        private async Task <MemoryStream> GerarQuestionario(List <DadosAlunoKV> dadosAluno, Documento documento, UsuarioADE usuario, RequisitosBasicosCabecalho requisitosBasicos)
        {
            int codigo = await RecuperarCodigoHistoricoGeracaoDocumento();

            List <RequisitoDeDocumento> Rdd = await _servicoRequisitoDeDocumento.ListarRegistros(documento.Identificador);

            return((MemoryStream)GeradorDocumento.GerarDocumentoQuestionario(documento, dadosAluno, codigo, requisitosBasicos));
        }
        public async Task <ArquivoDownload> GerarDownloadQuestionario(List <DadosAlunoKV> dadosAluno, Documento documento, UsuarioADE usuario, RequisitosBasicosCabecalho requisitosBasicos, EnumFormatoDocumento formatoDocumento)
        {
            await AtualizarRequisitosDeUsuario(dadosAluno, usuario);

            MemoryStream file = await GerarQuestionario(dadosAluno, documento, usuario, requisitosBasicos);

            ArquivoDownload arquivoDownload = new ArquivoDownload(file, formatoDocumento);

            await LogGeracaoDocumento(documento, usuario);

            return(arquivoDownload);
        }