public async Task <bool> Handle(GerarRelatorioAssincronoCommand request, CancellationToken cancellationToken) { try { ParametrosRelatorioDto parametrosDoDto = ObterParametrosRelatorio(request.Dados); var post = new ExecucaoRelatorioRequisicaoDto() { UnidadeRelatorioUri = request.CaminhoRelatorio, Async = false, SalvarSnapshot = false, FormatoSaida = request.Formato.Name(), Interativo = false, IgnorarPaginacao = false, Paginas = null, Parametros = parametrosDoDto }; SentrySdk.CaptureMessage("6.1 - Obtendo jSessionId..."); var jsessionId = await loginService.ObterTokenAutenticacao(configuration.GetSection("ConfiguracaoJasper:Username").Value, configuration.GetSection("ConfiguracaoJasper:Password").Value); SentrySdk.CaptureMessage($"6.2 - jSessionId = {jsessionId}"); SentrySdk.CaptureMessage("6.3 - Solicitando relatório..."); var retorno = await execucaoRelatorioService.SolicitarRelatorio(post, jsessionId); var exportacaoId = retorno?.Exports?.FirstOrDefault()?.Id; SentrySdk.CaptureMessage($"6.4 - Exportação Id = {exportacaoId}"); if (exportacaoId != null) { var dadosRelatorio = new DadosRelatorioDto(retorno.RequestId, exportacaoId.Value, request.CodigoCorrelacao, jsessionId); var publicacaoFila = new PublicaFilaDto(dadosRelatorio, RotasRabbit.RotaRelatoriosProcessando, null, request.CodigoCorrelacao); servicoFila.PublicaFila(publicacaoFila); var jsonPublicaFila = UtilJson.ConverterApenasCamposNaoNulos(publicacaoFila); Console.WriteLine(jsonPublicaFila); SentrySdk.CaptureMessage("6.5 - Sucesso na publicação da fila: " + publicacaoFila.Rota); return(true); } SentrySdk.CaptureMessage("6.6 - Erro na geração"); return(false); } catch (Exception ex) { SentrySdk.CaptureException(ex); throw ex; } }
private static ParametrosRelatorioDto ObterParametrosRelatorio(string dados) { var dadosParaEnvioArray = new List <string>(); if (!string.IsNullOrWhiteSpace(dados)) { dadosParaEnvioArray.Add(dados); } else { return(null); } var parametroDto = new ParametroDto() { Nome = "jsonString", Valor = dadosParaEnvioArray.ToArray() }; var parametrosDoDto = new ParametrosRelatorioDto(); var parametrosDto = new List <ParametroDto>(); parametrosDto.Add(parametroDto); parametrosDoDto.ParametrosRelatorio = parametrosDto.ToArray(); return(parametrosDoDto); }
public async Task <bool> Handle(RelatorioGamesCommand request, CancellationToken cancellationToken) { try { var dadosParaRelatorioSerializado = @""; var dadosParaEnvioArray = new List <string>() { dadosParaRelatorioSerializado }; dadosParaEnvioArray[0] = dadosParaRelatorioSerializado; var parametroDto = new ParametroDto() { Nome = "jsonString", Valor = dadosParaEnvioArray.ToArray() }; var parametrosDoDto = new ParametrosRelatorioDto(); var parametrosDto = new List <ParametroDto>(); parametrosDto.Add(parametroDto); parametrosDoDto.ParametrosRelatorio = parametrosDto.ToArray(); var post = new ExecucaoRelatorioRequisicaoDto() { UnidadeRelatorioUri = "/sme/sgp/RelatorioBoletim/RelatorioBoletim", Async = true, SalvarSnapshot = false, FormatoSaida = "pdf", Interativo = false, IgnorarPaginacao = true, Paginas = null, Parametros = parametrosDoDto }; JsonConvert.SerializeObject(post); var retorno = await execucaoRelatorioService.SolicitarRelatorio(post, string.Empty); //var exportacaoId = Guid.Parse(retorno.Exportacoes?.FirstOrDefault()?.Exportacao?.Id); //TODO ENFILEIRAR COM DADOS DA EXPORTACAO //var teste = await execucaoRelatorioService.ObterSaida(retorno.RequisicaoId, exportacaoId); //var teddste = await execucaoRelatorioService.ObterDetalhes(retorno.RequisicaoId, exportacaoId); //var retorno = await relatorioService.GetRelatorioSincrono(new RelatorioSincronoDto //retorno.URIRelatorio() //{ // CaminhoRelatorio = "/sme_sgp/teste", // Formato = Enumeradores.FormatoEnum.Pdf, //}); //var teste = await execucaoRelatorioService.ObterDetalhes(retorno.RequisicaoId); } catch (Exception ex) { throw; } return(true); }