Esempio n. 1
0
        public async Task <IActionResult> PostAsync([FromServices] ILoginService loginService, [FromServices] IExecucaoRelatorioService execucaoRelatorioService)
        {
            var post = new ExecucaoRelatorioRequisicaoDto()
            {
                Async            = true,
                FormatoSaida     = "pdf",
                IgnorarCache     = true,
                IgnorarPaginacao = true,
                Interativo       = false,
                Parametros       = new ParametrosRelatorioDto()
                {
                    ParametrosRelatorio = new ParametroDto[] {
                        new ParametroDto()
                        {
                            Nome  = "Parametro",
                            Valor = new string[] { "a" }
                        }
                    }
                },
                SalvarSnapshot      = false,
                UnidadeRelatorioUri = "/Nova_pasta/Report",
                Paginas             = null
            };
            var jsessionId = await loginService.ObterTokenAutenticacao("user", "bitnami");

            return(Ok(await execucaoRelatorioService.SolicitarRelatorio(post, jsessionId)));
        }
        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;
            }
        }
        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);
        }