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); }
public Stream GerarQuestionario(List <DadosAlunoKV> DadosAluno, RequisitosBasicosCabecalho requisitosBasicos) { FormularioEstagio = new Questionario(Documento, Cabecalho, DadosAluno, requisitosBasicos); return(FormularioEstagio.Gerar()); }
public Stream GerarTabela(List <RegistroDeHoras> DadosAluno, RequisitosBasicosCabecalho requisitosFichaRegistroHoras) { Tabela = new TabelaRegistroDeHoras(Cabecalho, DadosAluno, requisitosFichaRegistroHoras); return(Tabela.Gerar()); }
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)); }
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)); }
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); }