//Retorno Erro REST - PriceId Nulo public void AlteraDestinoPriceIdNulo(int filaId, Model.Fila fila, string InformacaoAdicional) { var msgErro = ConfigurationManager.AppSettings["AlteraDestinoPriceIdNulo"].ToUpper(); var index = InformacaoAdicional.ToUpper().IndexOf(msgErro); if (index >= 0) { new Fila().AtualizarDestino(8, filaId); } }
private void ExecutaItemFila(Model.Integracao ent, Model.Fila fila, Selia.Integrador.Adapter.WebService.Config objConfig, List <Selia.Integrador.Adapter.Util.Mapeamento.Entidade> MapeamentoEntrada) { try { Selia.Integrador.Adapter.Resultado objResult = new Selia.Integrador.Adapter.WebService().Executar(objConfig, fila.Conteudo); Model.LogFila entLogFila = new Model.LogFila(); if (!string.IsNullOrEmpty(objResult.ParametrosEnvio)) { entLogFila.Conteudo = objResult.ParametrosEnvio; } entLogFila.Conteudo = objResult.ParametrosEnvio; entLogFila.ConteudoFila = fila.Conteudo; entLogFila.ChavePrimaria = fila.ChavePrimaria; entLogFila.ChaveSecundaria = fila.ChaveSecundaria; entLogFila.LogIntegracao.ID = fila.LogIntegracaoID; entLogFila.FilaID = fila.ID; entLogFila.IntegracaoID = ent.ID; if (!string.IsNullOrEmpty(objResult.Mensagem)) { entLogFila.ConteudoRetorno = objResult.Mensagem; } if (objResult.TipoMensagem == Selia.Integrador.Adapter.Resultado.Tipo.Sucesso) { new BS.Fila().Excluir(fila.ID); if (ent.Destino != null) { new BS.Fila().ProcessarFila(objResult, ent, MapeamentoEntrada); } } else { new BS.Fila().AtualizarStatus(Model.Fila.TipoStatus.Erro, fila.ID); if (!string.IsNullOrEmpty(ent.AcaoReturnoErro)) { } } new BS.LogFila().Inserir(entLogFila); } catch (Exception ex) { Model.LogIntegracao entLogIntegracao = new Model.LogIntegracao(); entLogIntegracao.Conteudo = ex.Message; entLogIntegracao.Integracao = ent; entLogIntegracao.Status = 1; new BS.LogIntegracao().Inserir(entLogIntegracao); //ServiceLog.LogError(String.Format("Erro: {0} - Message: {1} - StackTrace: {2}", ent.Nome, ex.Message, ex.StackTrace)); } }
public List <Model.Fila> Preencher(DataTable dt) { List <Model.Fila> lst = new List <Model.Fila>(); foreach (DataRow row in dt.Rows) { Model.Fila ent = new Model.Fila(); if (row["ID"] != DBNull.Value) { ent.ID = Convert.ToInt32(row["ID"].ToString()); } if (row["ChavePrimaria"] != DBNull.Value) { ent.ChavePrimaria = row["ChavePrimaria"].ToString(); } if (row["ChaveSecundaria"] != DBNull.Value) { ent.ChaveSecundaria = row["ChaveSecundaria"].ToString(); } if (row["Conteudo"] != DBNull.Value) { ent.Conteudo = row["Conteudo"].ToString(); } if (row["DataCriacao"] != DBNull.Value) { ent.DataCriacao = Convert.ToDateTime(row["DataCriacao"].ToString()); } if (row["StatusID"] != DBNull.Value) { if ((int)Model.Fila.TipoStatus.Erro == Convert.ToInt32(row["StatusID"].ToString())) { ent.Status = Model.Fila.TipoStatus.Erro; } else if ((int)Model.Fila.TipoStatus.Sucesso == Convert.ToInt32(row["StatusID"].ToString())) { ent.Status = Model.Fila.TipoStatus.Sucesso; } } if (row["LogIntegracaoID"] != DBNull.Value) { ent.LogIntegracaoID = Convert.ToInt32(row["LogIntegracaoID"].ToString()); } if (row["DestinoID"] != DBNull.Value) { ent.IntegracaoDestino.ID = Convert.ToInt32(row["DestinoID"].ToString()); } lst.Add(ent); } return(lst); }
public int Inserir(Model.Fila fila) { List <IDbDataParameter> lst = new List <IDbDataParameter>(); lst.Add((IDbDataParameter)database.CreateParameter("p_integracaoID", fila.Integracao.ID)); lst.Add((IDbDataParameter)database.CreateParameter("p_dataCriacao", DateTime.Now)); lst.Add((IDbDataParameter)database.CreateParameter("p_conteudo", fila.Conteudo)); lst.Add((IDbDataParameter)database.CreateParameter("p_chavePrimaria", fila.ChavePrimaria)); lst.Add((IDbDataParameter)database.CreateParameter("p_chaveSecundaria", fila.ChaveSecundaria)); lst.Add((IDbDataParameter)database.CreateParameter("p_statusID", (int)fila.Status)); lst.Add((IDbDataParameter)database.CreateParameter("p_logIntegracaoID", (int)fila.LogIntegracaoID)); lst.Add((IDbDataParameter)database.CreateParameter("p_destinoID", (int)fila.IntegracaoDestino.ID)); SQLHelper SQL = new SQLHelper(false, "SP_INT_INS_Fila", lst); return(SQL.NonQuery()); }
public void ProcessarFila(Selia.Integrador.Adapter.Resultado objResult, Model.Integracao ent, List <Selia.Integrador.Adapter.Util.Mapeamento.Entidade> Mapeamentos) { List <XmlElement> lste = new List <XmlElement>(); foreach (XmlElement xmle in objResult.RespostaXmlSeparada) { Selia.Integrador.Adapter.Util.Mapeamento web = new Selia.Integrador.Adapter.Util.Mapeamento(); XmlNode root = xmle; web.ExecutarMapeamentoDePara(Mapeamentos, root); XmlDocument doc = new XmlDocument(); if (!string.IsNullOrEmpty(web.XmlDeEntrada.ToString())) { doc.LoadXml(web.XmlDeEntrada.ToString()); } lste.Add((XmlElement)doc.DocumentElement); } objResult.RespostaXmlSeparada = lste; Model.LogIntegracao entLogIntegracao = new Model.LogIntegracao(); entLogIntegracao.Conteudo = objResult.RespostaXmlCompleta.InnerXml; entLogIntegracao.QtdRegistros = objResult.RespostaXmlSeparada.Count; entLogIntegracao.Integracao = ent; int LogIntegracaoID = new BS.LogIntegracao().Inserir(entLogIntegracao); if (objResult.TipoMensagem == Selia.Integrador.Adapter.Resultado.Tipo.Sucesso) { if (ent.Destino != null) { BS.Fila filaBS = new BS.Fila(); foreach (XmlElement xmle in objResult.RespostaXmlSeparada) { string primaryKey = filaBS.ConsultaPrimaryKey(ent, xmle); string secondaryKey = filaBS.ConsultaSecondaryKey(ent, xmle); if (!filaBS.VerificaDuplicidade(ent, primaryKey, secondaryKey)) { Model.Fila entFila = new Model.Fila(); entFila.Conteudo = (xmle).ParentNode.InnerXml; entFila.Integracao.ID = ent.ID; entFila.DataCriacao = DateTime.Now; entFila.Status = Model.Fila.TipoStatus.Sucesso; entFila.LogIntegracaoID = LogIntegracaoID; entFila.IntegracaoDestino.ID = ent.Destino.ID; entFila.ChavePrimaria = primaryKey; entFila.ChaveSecundaria = secondaryKey; if (!string.IsNullOrEmpty(ent.AcaoEnfileiramento)) { List <object> lst = new List <object>(); lst.Add(entFila); lst.Add(ent.Mapeamento); lst.Add(xmle); entFila = (Model.Fila) new Selia.Integrador.Utils.Generic.Invoke().Exec(ent.AcaoEnfileiramento.Split(';')[0], ent.AcaoEnfileiramento.Split(';')[1], lst, ent.ConnectionString); } if (entFila != null) { filaBS.Inserir(entFila); } } } //Pega o ultimo elemento da fila para o mapeamento de retorno if (objResult.RespostaXmlSeparada != null && objResult.RespostaXmlSeparada.Count > 0) { if (ent.MapeamentoRetorno != null && ent.MapeamentoRetorno.Count > 0) { var ultimoElementoFila = objResult.RespostaXmlSeparada.Last(); foreach (var mapeamentoRetorno in ent.MapeamentoRetorno) { var mapeamento = new Util.Mapeamento.Entidade() { De = mapeamentoRetorno.De, Valor = mapeamentoRetorno.Valor, Acao = mapeamentoRetorno.Acao, Para = mapeamentoRetorno.Para }; var valor = new Util.Mapeamento().ObterValorNodeXml(mapeamento, ultimoElementoFila); //atualiza o valor do pai new Selia.Integrador.DAL.Mapeamento().AtualizarValor(mapeamentoRetorno.PaiID, valor); } } } } } }
public int Inserir(Model.Fila entFila) { return(new Selia.Integrador.DAL.Fila().Inserir(entFila)); }
private void ExecutaItemFila(Model.Integracao integracao, Model.Fila fila, Selia.Integrador.Adapter.Rest.Config configuracao) { var integracaoID = integracao.ID; string conteudoFila = null; try { var xmlFila = new XmlDocument(); xmlFila.LoadXml(fila.Conteudo); conteudoFila = fila.Conteudo; Selia.Integrador.Adapter.Resultado objResult = new Selia.Integrador.Adapter.Rest().Executar(configuracao, xmlFila); Model.LogFila logFila = new Model.LogFila(); logFila.Conteudo = objResult.ParametrosEnvio; logFila.ConteudoFila = fila.Conteudo; logFila.ChavePrimaria = fila.ChavePrimaria; logFila.ChaveSecundaria = fila.ChaveSecundaria; logFila.LogIntegracao.ID = fila.LogIntegracaoID; logFila.RespostaSemTratamento = objResult.RespostaSemTratamento; logFila.FilaID = fila.ID; logFila.IntegracaoID = integracao.ID; if (objResult.RespostaXmlCompleta != null) { logFila.ConteudoRetorno = objResult.RespostaXmlCompleta.InnerXml; } if (objResult.TipoMensagem == Selia.Integrador.Adapter.Resultado.Tipo.Sucesso) { new BS.Fila().Excluir(fila.ID); if (integracao.Destino != null) { new BS.Fila().ProcessarFila(objResult, integracao, configuracao.Mapeamentos); } } else { new BS.Fila().AtualizarStatus(Model.Fila.TipoStatus.Erro, fila.ID); } new BS.LogFila().Inserir(logFila); } catch (Selia.Integrador.Utils.Exceptions.HttpRestRetornoException exIntegradoRetorno) { Model.LogFila logFila = new Model.LogFila(); logFila.ChavePrimaria = fila.ChavePrimaria; logFila.ChaveSecundaria = fila.ChaveSecundaria; logFila.LogIntegracao.ID = fila.LogIntegracaoID; logFila.FilaID = fila.ID; logFila.ConteudoFila = fila.Conteudo; logFila.Conteudo = exIntegradoRetorno.ParamentroEnvio; logFila.RespostaSemTratamento = "Connection: " + ConnectionMonitor.Monitor.Instance.GetStatus() + " ** " + exIntegradoRetorno.RetornoNaoTratado; logFila.ConteudoRetorno = exIntegradoRetorno.RetornoTratado; logFila.IntegracaoID = integracao.ID; new BS.LogFila().Inserir(logFila); new BS.Fila().AtualizarStatus(Model.Fila.TipoStatus.Erro, fila.ID); Model.LogIntegracao entLogIntegracao = new Model.LogIntegracao(); entLogIntegracao.Conteudo = string.Format("{0} - Valor de entrada:{1}", exIntegradoRetorno.ToString(), exIntegradoRetorno.InformacaoAdicional); entLogIntegracao.Integracao = integracao; entLogIntegracao.Status = 2; //1 Sucesso 2 Erro new BS.LogIntegracao().Inserir(entLogIntegracao); //ServiceLog.LogError(String.Format("Erro: {0} - Message: {1} - StackTrace: {2}", integracao.Nome, exIntegradoRetorno.Message, exIntegradoRetorno.ToString())); } catch (Selia.Integrador.Utils.Exceptions.HttpRestException exIntegrador) { new BS.Fila().AtualizarStatus(Model.Fila.TipoStatus.Erro, fila.ID); Model.LogFila logFila = new Model.LogFila(); logFila.ChavePrimaria = fila.ChavePrimaria; logFila.ChaveSecundaria = fila.ChaveSecundaria; logFila.LogIntegracao.ID = fila.LogIntegracaoID; logFila.FilaID = fila.ID; logFila.ConteudoFila = fila.Conteudo; logFila.Conteudo = exIntegrador.ParamentroEnvio; logFila.RespostaSemTratamento = "Connection: " + ConnectionMonitor.Monitor.Instance.GetStatus() + " ** " + exIntegrador.RetornoNaoTratado; logFila.ConteudoRetorno = exIntegrador.RetornoTratado; logFila.IntegracaoID = integracao.ID; new BS.LogFila().Inserir(logFila); new BS.Fila().AtualizarStatus(Model.Fila.TipoStatus.Erro, fila.ID); if (!string.IsNullOrEmpty(integracao.AcaoReturnoErro)) { List <object> parametros = new List <object>(); parametros.Add(fila.ID); parametros.Add(fila); parametros.Add(exIntegrador.InformacaoAdicional); new Selia.Integrador.Utils.Generic.Invoke().Exec(integracao.AcaoReturnoErro.Split(';')[0], integracao.AcaoReturnoErro.Split(';')[1], parametros); } else { Model.LogIntegracao entLogIntegracao = new Model.LogIntegracao(); entLogIntegracao.Conteudo = exIntegrador.Message; entLogIntegracao.Integracao = integracao; entLogIntegracao.Status = 2; //1 Sucesso 2 Erro new BS.LogIntegracao().Inserir(entLogIntegracao); //ServiceLog.LogError(String.Format("Erro: {0} - Message: {1} - StackTrace: {2}", integracao.Nome, exIntegrador.Message, exIntegrador.ToString())); } } }