public ResultadoExportacao GerarArquivoAPR(DadosExportacaoAprModelo dados) { ResultadoExportacao resultadoExportacao = new ResultadoExportacao(); try { string caminhoModelo = ArquivoDiretorioUtils.ObterDiretorioModelo(); var caminhoGeracaoApr = ArquivoDiretorioUtils.ObterDiretorioApr(); caminhoGeracaoApr = ArquivoDiretorioUtils.ConstruirObterDiretorioData(caminhoGeracaoApr); var dataHora = DateTime.Now.ToString("dd_MM_yyy_HH_mm_ss"); string caminhoCompletoExportacaoModelo = $"{caminhoModelo}LayoutExportacaoApr.xlsx"; string caminhoCompletoExportacaoFinal = $"{caminhoGeracaoApr}ExportacaoApr{dataHora}.xlsx"; ArquivoDiretorioUtils.CopiarArquivo(caminhoCompletoExportacaoModelo, caminhoCompletoExportacaoFinal); using (var workbook = new XLWorkbook(caminhoCompletoExportacaoFinal)) { ExportarDadosAPR(workbook, dados); workbook.Save(); workbook.Dispose(); } string _b64 = Convert.ToBase64String(File.ReadAllBytes(caminhoCompletoExportacaoFinal)); resultadoExportacao.planilha = _b64; return(resultadoExportacao); } catch (Exception) { throw; } }
public IHttpActionResult ExportarDadosApr([FromBody] DadosExportacaoAprModelo dadosExportacaoModelo) { ResultadoExportacao result; try { if (dadosExportacaoModelo == null) { throw new Exception("Os dados da exportação não foram informados!"); } result = this.exportacaoDadosNegocio.GerarArquivoAPR(dadosExportacaoModelo); } catch (Exception exception) { throw new Exception(GeradorResponse.GenerateErrorResponseString((int)HttpStatusCode.BadRequest, $"", exception), exception); } return(Ok(GeradorResponse.GenerateSuccessResponse((int)HttpStatusCode.OK, "", result))); }
public void ExportarDadosAPR(XLWorkbook wb, DadosExportacaoAprModelo dados) { var planilha = wb.Worksheets.Worksheet("APR"); int linha = 5; string riscos = ""; var resultado = aprPersistencia.ListarAprExportacao(dados); foreach (var itemApr in resultado) { planilha.Cell($"B{linha}").Value = itemApr.NumeroSerie; planilha.Cell($"C{linha}").Value = itemApr.OrdemManutencao; planilha.Cell($"D{linha}").Value = itemApr.Descricao; planilha.Cell($"E{linha}").Value = itemApr.RiscoGeral; // VALIDAÇÕES if (itemApr.OPERACAO_APR.Count <= 0) { throw new Exception($"A APR de número de série {itemApr.NumeroSerie} não possui operação vinculada."); } if (itemApr.RISCO_APR.Count <= 0) { throw new Exception($"A APR de número de série {itemApr.NumeroSerie} não possui risco vinculado."); } //RISCOS APR foreach (var itemRisco in itemApr.RISCO_APR) { var nomeRisco = riscoPersistencia.ListarRiscoPorId(itemRisco.CodRisco); riscos = $"{nomeRisco.Nome};"; } var tamanhoRisco = riscos.Length; var nomeRiscoCorrigido = riscos.Substring(0, tamanhoRisco - 1); planilha.Cell($"G{linha}").Value = nomeRiscoCorrigido; //OPERAÇÃO APR foreach (var itemOperacao in itemApr.OPERACAO_APR) { var localRecuperado = localInstalacaoPersistencia.ListarLocalInstalacaoPorId((long)itemOperacao.CodLI); if (localRecuperado == null) { throw new Exception($"O local de instalação de código {itemOperacao.CodLI} não foi encontrado na base de dados."); } if (itemOperacao.CodAtvPadrao.Value == null || itemOperacao.CodAtvPadrao.Value == 0) { throw new Exception($"A atividade padrão não foi encontrado na base de dados."); } if (itemOperacao.CodDisciplina.Value == null || itemOperacao.CodDisciplina.Value == 0) { throw new Exception($"A disciplina não foi encontrado na base de dados."); } var atvPadrao = atividadePersistencia.ListarAtividadePorId(itemOperacao.CodAtvPadrao.Value); var disciplina = disciplinaPersistencia.ListarDisciplinaPorId(itemOperacao.CodDisciplina.Value); planilha.Cell($"I{linha}").Value = itemOperacao.Codigo; planilha.Cell($"J{linha}").Value = itemOperacao.Descricao; planilha.Cell($"K{linha}").Value = localRecuperado.Nome; planilha.Cell($"L{linha}").Value = atvPadrao.Nome; planilha.Cell($"M{linha}").Value = disciplina.Nome; linha++; } } planilha.Style.Font.FontName = "Arial"; planilha.Style.Font.FontSize = 8; planilha.Style.Font.FontColor = XLColor.Black; }