Esempio n. 1
0
        //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));
                }
            }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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());
        }
Esempio n. 5
0
        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);
                            }
                        }
                    }
                }
            }
        }
Esempio n. 6
0
 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()));
                    }
                }
            }