/// <summary> /// /// </summary> private void procExportPend() { while (bKeepRunning || filaExportacao.Count > 0) { CMRocketProcessoInfo info = null; if (filaExportacao.TryDequeue(out info)) { // Segundo conversa com RSG em 2016-12-20 // Marcar a pendencia cadastral Rocket como resolvido if (info.AprovacaoAutomatica) { Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Info, String.Format("{0}: {1}", Gradual.Utils.MethodHelper.GetCurrentMethod(), String.Format("Capivara [{0}] do CPF [{1}] reprovado, removendo pendencia cadastral Rocket", info.IDCapivara, info.Cpf)), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }); PersistenciaDB db = new PersistenciaDB(); if (info.IDPendenciaCadastral > 0) { db.ResolverPendenciaCadastral(info.IDPendenciaCadastral); } Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Info, String.Format("{0}: {1}", Gradual.Utils.MethodHelper.GetCurrentMethod(), String.Format("Capivara [{0}] do CPF [{1}] eleito para exportacao automatica", info.IDCapivara, info.Cpf)), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }); } else { } continue; } Thread.Sleep(250); } }
private int incluirPendenciaCadastral(CMRocketProcessoInfo info) { int retorno = -1; try { if (ConfigurationManager.AppSettings["DescricaoPendenciaRocket"] == null || ConfigurationManager.AppSettings["IDPendenciaRocket"] == null) { return(retorno); } int idPendenciaRocket = Convert.ToInt32(ConfigurationManager.AppSettings["IDPendenciaRocket"].ToString()); string descPendenciaRocket = ConfigurationManager.AppSettings["DescricaoPendenciaRocket"].ToString(); PersistenciaDB db = new PersistenciaDB(); CMRocketFields campos = JsonConvert.DeserializeObject <CMRocketFields>(info.JsonInput); DateTime dataNascFund; if (DateTime.TryParseExact(campos.DATA_NASCIMENTO, "dd/MM/yyyy", CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out dataNascFund)) { Tuple <int, int> cliente = db.ObterIDCliente(info.Cpf, dataNascFund); retorno = db.InserirPendenciaCadastral(cliente.Item1, cliente.Item2, idPendenciaRocket, descPendenciaRocket); } } catch (Exception ex) { Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Error, Gradual.Utils.MethodHelper.GetCurrentMethod(), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }, ex); } return(retorno); }
/// <summary> /// /// </summary> /// <param name="request"></param> /// <returns></returns> public ValidarCadastroResponse ValidarCadastro(ValidarCadastroRequest request) { ValidarCadastroResponse response = new ValidarCadastroResponse(); try { OperationContext context = OperationContext.Current; MessageProperties prop = context.IncomingMessageProperties; RemoteEndpointMessageProperty endpoint = prop[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty; string ip = endpoint.Address; Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Info, String.Format("{0}: {1}", Gradual.Utils.MethodHelper.GetCurrentMethod(), String.Format("ValidarCadastro para CPF [{0}] IP[{1}]", request.CamposRocket.CPF, ip)), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }); CMRocketProcessoInfo info = new CMRocketProcessoInfo(); info.Cpf = request.CamposRocket.CPF; info.DataAtualizacao = DateTime.Now; info.DataSolicitacaoRocket = DateTime.Today; info.DataSolicitacaoIntranet = DateTime.Now; info.StatusProcesso = CMRocketProcessoInfo.STATUS_ROCKET_ESPERA; info.JsonInput = JsonConvert.SerializeObject(request.CamposRocket); info.IPOrigem = ip; PersistenciaDB db = new PersistenciaDB(); int idCapivara = db.InserirProcessoRocket(info); info.IDCapivara = idCapivara; response.IDCapivara = idCapivara; Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Info, String.Format("{0}: {1}", Gradual.Utils.MethodHelper.GetCurrentMethod(), String.Format("Processo do CPF [{0}] inserido na base com ID [{1}]", info.Cpf, info.IDCapivara)), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }); filaRequisicaoRocket.Enqueue(info); Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Info, String.Format("{0}: {1}", Gradual.Utils.MethodHelper.GetCurrentMethod(), String.Format("Processo do CPF [{0}] enfileirado, aguardando solicitacao de processamento", info.Cpf)), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }); } catch (Exception ex) { Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Error, Gradual.Utils.MethodHelper.GetCurrentMethod(), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }, ex); response.StatusResposta = MensagemResponseStatusEnum.ErroPrograma; response.DescricaoResposta = ex.Message; } response.StatusResposta = MensagemResponseStatusEnum.OK; return(response); }
/// <summary> /// /// </summary> /// <param name="info"></param> /// <returns></returns> private bool solicitarStatusRocket(ref CMRocketProcessoInfo info) { bool bRet = false; try { com.cmsw.wsrocket.statusProcess objRequisicaoRocket = new com.cmsw.wsrocket.statusProcess(); // Gambiarra master para preencher todos os campos // do car**** do SOAP, mesmo se nao viermos a utilizar foreach (PropertyInfo prop in objRequisicaoRocket.GetType().GetProperties()) { if (prop.PropertyType.Equals(typeof(String))) { prop.SetValue(objRequisicaoRocket, String.Empty, null); } } objRequisicaoRocket.hash = info.Hash; objRequisicaoRocket.ticket = info.Ticket; com.cmsw.wsrocket.RocketProcessWS rckCli = new com.cmsw.wsrocket.RocketProcessWS(); rckCli.AllowAutoRedirect = true; rckCli.Url = RocketURL; com.cmsw.wsrocket.statusProcessResponse rsp = rckCli.statusProcess(objRequisicaoRocket); info.StatusProcesso = rsp.status_processo; bRet = true; } catch (Exception ex) { Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Error, Gradual.Utils.MethodHelper.GetCurrentMethod(), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }, ex); } return(bRet); }
/// <summary> /// /// </summary> /// <param name="info"></param> /// <returns></returns> private bool solicitarProcessamentoRocket(ref CMRocketProcessoInfo info) { bool bRet = false; try { com.cmsw.wsrocket.WS_VALIDACAO_CADASTRAL_HOMOLOG objRequisicaoRocket = new com.cmsw.wsrocket.WS_VALIDACAO_CADASTRAL_HOMOLOG(); // Gambiarra master para preencher todos os campos // do car**** do SOAP, mesmo se nao viermos a utilizar foreach (PropertyInfo prop in objRequisicaoRocket.GetType().GetProperties()) { if (prop.PropertyType.Equals(typeof(String))) { prop.SetValue(objRequisicaoRocket, String.Empty, null); } } CMRocketFields camposRocket = JsonConvert.DeserializeObject <CMRocketFields>(info.JsonInput); Utilities.CopyPropertiesAsPossible(camposRocket, objRequisicaoRocket); com.cmsw.wsrocket.RocketProcessWS rckCli = new com.cmsw.wsrocket.RocketProcessWS(); rckCli.AllowAutoRedirect = true; rckCli.Url = RocketURL; //CMSoftware.Rocket.statusProcess stproc = new CMSoftware.Rocket.statusProcess(); //stproc.hash = "aaa"; //stproc.ticket = "ticket"; com.cmsw.wsrocket.ProcessHeaderVo xxx = new com.cmsw.wsrocket.ProcessHeaderVo(); xxx.empresa = RocketEmpresa; xxx.fluxo = RocketFluxo; xxx.senha = RocketSenha; xxx.usuario = RocketUsuario; xxx.hash = info.Hash; xxx.ticket = info.Ticket; objRequisicaoRocket.header = xxx; com.cmsw.wsrocket.WS_VALIDACAO_CADASTRAL_HOMOLOGResponse rsp = rckCli.WS_VALIDACAO_CADASTRAL_HOMOLOG(objRequisicaoRocket); com.cmsw.wsrocket.rocketWSReturn ret = rsp.retorno; com.cmsw.wsrocket.ProcessReturnVo retObj = ret.Item as com.cmsw.wsrocket.ProcessReturnVo; if (retObj != null) { info.Ticket = retObj.ticket; info.Hash = retObj.hash; } bRet = true; } catch (Exception ex) { Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Error, Gradual.Utils.MethodHelper.GetCurrentMethod(), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }, ex); } return(bRet); }
/// <summary> /// /// </summary> /// <param name="info"></param> /// <returns></returns> private bool solicitarRelatorioRocket(ref CMRocketProcessoInfo info) { bool bRet = false; try { com.cmsw.wsrocket.WS_VALIDACAO_CADASTRAL_HOMOLOG objRequisicaoRocket = new com.cmsw.wsrocket.WS_VALIDACAO_CADASTRAL_HOMOLOG(); // Gambiarra master para preencher todos os campos // do car**** do SOAP, mesmo se nao viermos a utilizar foreach (PropertyInfo prop in objRequisicaoRocket.GetType().GetProperties()) { if (prop.PropertyType.Equals(typeof(String))) { prop.SetValue(objRequisicaoRocket, String.Empty, null); } } CMRocketFields camposRocket = JsonConvert.DeserializeObject <CMRocketFields>(info.JsonInput); Utilities.CopyPropertiesAsPossible(camposRocket, objRequisicaoRocket); com.cmsw.wsrocket.RocketProcessWS rckCli = new com.cmsw.wsrocket.RocketProcessWS(); rckCli.AllowAutoRedirect = true; rckCli.Url = RocketURL;; //CMSoftware.Rocket.statusProcess stproc = new CMSoftware.Rocket.statusProcess(); //stproc.hash = "aaa"; //stproc.ticket = "ticket"; com.cmsw.wsrocket.ProcessHeaderVo xxx = new com.cmsw.wsrocket.ProcessHeaderVo(); xxx.empresa = RocketEmpresa; xxx.fluxo = RocketFluxo; xxx.senha = RocketSenha; xxx.usuario = RocketUsuario; xxx.hash = info.Hash; xxx.ticket = info.Ticket; objRequisicaoRocket.header = xxx; com.cmsw.wsrocket.WS_VALIDACAO_CADASTRAL_HOMOLOGResponse rsp = rckCli.WS_VALIDACAO_CADASTRAL_HOMOLOG(objRequisicaoRocket); com.cmsw.wsrocket.rocketWSReturn ret = rsp.retorno; com.cmsw.wsrocket.ProcessReturnVo retObj = ret.Item as com.cmsw.wsrocket.ProcessReturnVo; if (retObj != null) { info.Ticket = retObj.ticket; info.Hash = retObj.hash; CMRocketReport report = new CMRocketReport(); com.cmsw.wsrocket.variavel[] variaveisContexto = retObj.variaveisContexto; com.cmsw.wsrocket.provedor[] provedores = retObj.provedores; if (variaveisContexto != null) { foreach (com.cmsw.wsrocket.variavel variavel in variaveisContexto) { CMRocketContext varContx = new CMRocketContext(); varContx.IDOutput = Convert.ToInt32(variavel.idOutput); varContx.Nome = variavel.nome; varContx.TipoCampo = Convert.ToInt32(variavel.tipoCampo); varContx.Valor = variavel.valor; report.Contextos.Add(varContx); if (varContx.Nome.Equals("REGRA_APROVACAO_AUTOMATICA")) { Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Info, String.Format("{0}: {1}", Gradual.Utils.MethodHelper.GetCurrentMethod(), String.Format("Flag de aprovacao automatica para CPF [{0}] [{1}]", info.Cpf, varContx.Valor)), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }); if (!String.IsNullOrEmpty(varContx.Valor) && varContx.Valor.Equals("APROVADO")) { info.AprovacaoAutomatica = true; } } if (varContx.Nome.Equals("ID_PROCESSO")) { Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Info, String.Format("{0}: {1}", Gradual.Utils.MethodHelper.GetCurrentMethod(), String.Format("ID_PROCESSO para CPF [{0}] [{1}]", info.Cpf, varContx.Valor)), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }); info.IDProcessoRocket = Convert.ToInt32(varContx.Valor); } if (varContx.Nome.Equals("ID_WORK_PROCESSO")) { Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Info, String.Format("{0}: {1}", Gradual.Utils.MethodHelper.GetCurrentMethod(), String.Format("ID_WORK_PROCESSO para CPF [{0}] [{1}]", info.Cpf, varContx.Valor)), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }); info.IDWorkProcessoRocket = Convert.ToInt32(varContx.Valor); } } } if (provedores != null) { foreach (com.cmsw.wsrocket.provedor provedor in provedores) { CMRocketProvider provider = new CMRocketProvider(); provider.IDOutput = Convert.ToInt32(provedor.idOutput); provider.IDProvedor = Convert.ToInt32(provedor.idProvedor); provider.Key = provedor.key; provider.Nome = provedor.nome; if (provedor.variaveisOut != null && provedor.variaveisOut.Length > 0) { foreach (com.cmsw.wsrocket.variavel variavel in provedor.variaveisOut) { CMVariaveisOut varOut = new CMVariaveisOut(); varOut.IDOutput = Convert.ToInt32(variavel.idOutput); varOut.Nome = variavel.nome; varOut.TipoCampo = Convert.ToInt32(variavel.tipoCampo); varOut.Valor = variavel.valor; provider.VariaveisOut.Add(varOut); } } if (provedor.listas != null && provedor.listas.Length > 0) { foreach (com.cmsw.wsrocket.lista lista in provedor.listas) { CMListas list = new CMListas(); list.Chave = lista.chave; list.IDArray = Convert.ToInt32(lista.idArray); list.IDOutput = Convert.ToInt32(lista.idListOutput); foreach (com.cmsw.wsrocket.registro registro in lista.registros) { Dictionary <string, CMColunas> record = new Dictionary <string, CMColunas>(); foreach (com.cmsw.wsrocket.coluna coluna in registro.colunas) { CMColunas column = new CMColunas(); column.Chave = coluna.chave; column.IDCampo = Convert.ToInt32(coluna.idCampo); column.Desc = coluna.desc; record.Add(column.Chave, column); } list.Registros.Add(record); } } } } } info.JsonOutput = JsonConvert.SerializeObject(report); } bRet = true; } catch (Exception ex) { Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Error, Gradual.Utils.MethodHelper.GetCurrentMethod(), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }, ex); } return(bRet); }
/// <summary> /// /// </summary> private void monitorSolicitacoesRocket() { Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Info, String.Format("{0}: {1}", Gradual.Utils.MethodHelper.GetCurrentMethod(), "Iniciando monitorSolicitacoesRocket()"), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }); CMRocketProcessoInfo info = null; long lastLoop = 0; // O loop de processamento trata primeiro todas as solicitacoes de processamento, // entao todos os acompanhamentos de status, e por fim, em obter todos os processos // disponibilizados pelo rocket while (bKeepRunning) { try { TimeSpan sp = new TimeSpan(DateTime.Now.Ticks - lastLoop); if ((filaMonitoracaoRocket.Count == 0 && filaRequisicaoRocket.Count == 0 && filaRelatorioRocket.Count == 0) || sp.TotalSeconds < 15) { Thread.Sleep(250); continue; } lastLoop = DateTime.Now.Ticks; Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Info, String.Format("{0}: {1}", Gradual.Utils.MethodHelper.GetCurrentMethod(), String.Format("Fila de processos para enviar ao rocket com {0} itens", filaRequisicaoRocket.Count)), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }); for (int i = 0; i < filaRequisicaoRocket.Count; i++) { if (this.filaRequisicaoRocket.TryDequeue(out info)) { TimeSpan ts = new TimeSpan(DateTime.Now.Ticks - info.DataSolicitacaoRocket.Ticks); if (info.StatusProcesso.Equals(CMRocketProcessoInfo.STATUS_ROCKET_ESPERA) && ts.TotalMinutes > 3) { Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Info, String.Format("{0}: {1}", Gradual.Utils.MethodHelper.GetCurrentMethod(), String.Format("Solicitando processamento do CPF [{0}]", info.Cpf)), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }); DateTime dtEvolStart = DateTime.Now; if (solicitarProcessamentoRocket(ref info)) { Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Info, String.Format("{0}: {1}", Gradual.Utils.MethodHelper.GetCurrentMethod(), String.Format("Processamento solicitado com sucesso CPF [{0}] HASH [{1}] TICKET [{2}]", info.Cpf, info.Hash, info.Ticket)), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }); info.StatusProcesso = CMRocketProcessoInfo.STATUS_ROCKET_SOLICITADO; info.IDPendenciaCadastral = incluirPendenciaCadastral(info); } DateTime dtEvolStop = DateTime.Now; info.DataAtualizacao = DateTime.Now; info.DataSolicitacaoRocket = DateTime.Now; PersistenciaDB db = new PersistenciaDB(); db.AtualizarProcessoRocket(info); db.InserirEvolucaoProcessoRocket(info.IDCapivara, dtEvolStart, dtEvolStop, info.StatusProcesso); // Coloca o processo na fila de monitoracao do status se a solicitacao // foi feita com sucesso if (info.StatusProcesso.Equals(CMRocketProcessoInfo.STATUS_ROCKET_SOLICITADO)) { filaMonitoracaoRocket.Enqueue(info); continue; } } filaRequisicaoRocket.Enqueue(info); } } } catch (Exception ex) { Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Error, Gradual.Utils.MethodHelper.GetCurrentMethod(), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }, ex); } Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Info, String.Format("{0}: {1}", Gradual.Utils.MethodHelper.GetCurrentMethod(), String.Format("Fila de processos para pesquisar status com {0} itens", filaMonitoracaoRocket.Count)), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }); try { for (int i = 0; i < filaMonitoracaoRocket.Count; i++) { if (this.filaMonitoracaoRocket.TryDequeue(out info)) { TimeSpan ts = new TimeSpan(DateTime.Now.Ticks - info.DataAtualizacao.Ticks); if ((info.StatusProcesso.Equals(CMRocketProcessoInfo.STATUS_ROCKET_SOLICITADO) || info.StatusProcesso.Equals(CMRocketProcessoInfo.STATUS_ROCKET_EM_PROCESSAMENTO)) && ts.TotalMinutes > 1) { Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Info, String.Format("{0}: {1}", Gradual.Utils.MethodHelper.GetCurrentMethod(), String.Format("Solicitando status do processamento do CPF [{0}]", info.Cpf)), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }); DateTime dtEvolStart = DateTime.Now; if (solicitarStatusRocket(ref info)) { Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Info, String.Format("{0}: {1}", Gradual.Utils.MethodHelper.GetCurrentMethod(), String.Format("Status com sucesso CPF [{0}] HASH [{1}] TICKET [{2}] STATUS[{3}]", info.Cpf, info.Hash, info.Ticket, info.StatusProcesso)), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }); DateTime dtEvolStop = DateTime.Now; info.DataAtualizacao = DateTime.Now; PersistenciaDB db = new PersistenciaDB(); db.AtualizarProcessoRocket(info); db.InserirEvolucaoProcessoRocket(info.IDCapivara, dtEvolStart, dtEvolStop, info.StatusProcesso); //Se estiver disponivel, coloca na outra fila if (info.StatusProcesso.Equals(CMRocketProcessoInfo.STATUS_ROCKET_DISPONIVEL)) { filaRelatorioRocket.Enqueue(info); continue; } } } filaMonitoracaoRocket.Enqueue(info); } } } catch (Exception ex) { Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Error, Gradual.Utils.MethodHelper.GetCurrentMethod(), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }, ex); } Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Info, String.Format("{0}: {1}", Gradual.Utils.MethodHelper.GetCurrentMethod(), String.Format("Fila de processos disponibilizados com {0} itens", filaRelatorioRocket.Count)), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }); try { for (int i = 0; i < filaRelatorioRocket.Count; i++) { if (this.filaRelatorioRocket.TryDequeue(out info)) { TimeSpan ts = new TimeSpan(DateTime.Now.Ticks - info.DataAtualizacao.Ticks); if (info.StatusProcesso.Equals(CMRocketProcessoInfo.STATUS_ROCKET_DISPONIVEL) && ts.TotalMinutes > 1) { Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Info, String.Format("{0}: {1}", Gradual.Utils.MethodHelper.GetCurrentMethod(), String.Format("Solicitando relatorio do processamento do CPF [{0}]", info.Cpf)), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }); DateTime dtEvolStart = DateTime.Now; if (solicitarRelatorioRocket(ref info)) { Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Info, String.Format("{0}: {1}", Gradual.Utils.MethodHelper.GetCurrentMethod(), String.Format("Relatorio obtido com sucesso CPF [{0}] HASH [{1}] TICKET [{2}] STATUS[{3}]", info.Cpf, info.Hash, info.Ticket, info.StatusProcesso)), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }); info.StatusProcesso = CMRocketProcessoInfo.STATUS_ROCKET_RELATORIO_FINALIZADO; info.DataAtualizacao = DateTime.Now; PersistenciaDB db = new PersistenciaDB(); db.AtualizarProcessoRocket(info); db.InserirEvolucaoProcessoRocket(info.IDCapivara, dtEvolStart, DateTime.Now, info.StatusProcesso); //Exporta ou cadastra pendencia filaExportacao.Enqueue(info); continue; } } filaRelatorioRocket.Enqueue(info); } } } catch (Exception ex) { Gradual.Utils.Logger.Log("Servico", Gradual.Utils.LoggingLevel.Error, Gradual.Utils.MethodHelper.GetCurrentMethod(), new { User = Gradual.Utils.Settings.User, Environment = Gradual.Utils.Settings.Environment }, ex); } } }