Exemplo n.º 1
0
            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));
                }
            }
Exemplo n.º 2
0
        public int Inserir(Model.LogFila entLogFila)
        {
            List <IDbDataParameter> lst = new List <IDbDataParameter>();

            lst.Add((IDbDataParameter)database.CreateParameter("p_logIntegracaoID", entLogFila.LogIntegracao.ID));
            lst.Add((IDbDataParameter)database.CreateParameter("p_dataCriacao", DateTime.Now));
            lst.Add((IDbDataParameter)database.CreateParameter("p_conteudo", entLogFila.Conteudo));
            lst.Add((IDbDataParameter)database.CreateParameter("p_conteudofila", entLogFila.ConteudoFila));
            lst.Add((IDbDataParameter)database.CreateParameter("p_chavePrimaria", entLogFila.ChavePrimaria));
            lst.Add((IDbDataParameter)database.CreateParameter("p_chaveSecundaria", entLogFila.ChaveSecundaria));
            lst.Add((IDbDataParameter)database.CreateParameter("p_conteudoRetorno", entLogFila.ConteudoRetorno));
            lst.Add((IDbDataParameter)database.CreateParameter("p_conteudoRetornoSemTratamento", entLogFila.RespostaSemTratamento));
            lst.Add((IDbDataParameter)database.CreateParameter("p_integracaoID", entLogFila.IntegracaoID));
            lst.Add((IDbDataParameter)database.CreateParameter("p_FilaID", entLogFila.FilaID));

            return(new SQLHelper(false, "SP_INT_INS_LogFila", lst).NonQuery());
        }
Exemplo n.º 3
0
 public int Inserir(Model.LogFila entLogFila)
 {
     return(new Selia.Integrador.DAL.LogFila().Inserir(entLogFila));
 }
Exemplo n.º 4
0
            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()));
                    }
                }
            }
Exemplo n.º 5
0
            public void Executar(Model.Integracao ent)
            {
                Selia.Integrador.Adapter.DB.Config objConfig = new Selia.Integrador.Adapter.DB.Config();
                var item = ((Model.Interface.DB)ent.Interface.Item);

                objConfig.StoredProcedure        = item.StoredProcedure;
                objConfig.ConnectionString       = item.ConnectionString;
                objConfig.ElementoSeparador      = ent.ElementoRegistro;
                objConfig.ExecucaoFinal          = ent.AcaoFinal;
                objConfig.Mapeamentos            = MapearParaAdapter(ent.Mapeamento);
                objConfig.ExecucaoInicial        = ent.AcaoInicial;
                objConfig.ExecucaoEnfileiramento = ent.AcaoEnfileiramento;
                objConfig.DataBaseNameFactory    = item.DataBaseNameFactory;

                if (ent.Consumidor)
                {
                    foreach (Model.Fila fila in ent.Fila)
                    {
                        try
                        {
                            Selia.Integrador.Adapter.Resultado objResult = new Selia.Integrador.Adapter.DB().Executar(objConfig, fila.Conteudo, ent.Destino != null);

                            Model.LogFila entLogFila = new Model.LogFila();
                            entLogFila.ConteudoFila = fila.Conteudo;

                            entLogFila.Conteudo = 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;
                            }

                            new BS.LogFila().Inserir(entLogFila);

                            if (objResult.TipoMensagem == Selia.Integrador.Adapter.Resultado.Tipo.Sucesso)
                            {
                                if (objResult.RespostaXmlCompleta != null && objResult.RespostaXmlSeparada != null && objResult.RespostaXmlSeparada.Count > 0)
                                {
                                    new BS.Fila().ProcessarFila(objResult, ent, null);
                                }

                                new BS.Fila().Excluir(fila.ID);
                            }
                            else
                            {
                                new BS.Fila().AtualizarStatus(Model.Fila.TipoStatus.Erro, fila.ID);
                            }
                        }
                        catch (Exception ex)
                        {
                            //ServiceLog.LogError(String.Format("Erro: {0} - Message: {1} - StackTrace: {2}", ent.Nome, ex.Message, ex.StackTrace));
                        }
                    }

                    if (ent.Destino != null)
                    {
                        new BS.Integracao().Executar(ent.Destino.ID);
                    }
                }
                else
                {
                    try
                    {
                        List <Selia.Integrador.Adapter.Util.Mapeamento.Entidade> maps = MapearParaAdapter(ent.Mapeamento);

                        foreach (Model.Interface.DB.ParametroDB Param in item.Parametros)
                        {
                            objConfig.Mapeamentos.Add(new Selia.Integrador.Adapter.Util.Mapeamento.Entidade()
                            {
                                Para = Param.De, Valor = Param.Para
                            });
                        }

                        Selia.Integrador.Adapter.Resultado objResult = new Selia.Integrador.Adapter.DB().Executar(objConfig);
                        new BS.Fila().ProcessarFila(objResult, ent, maps);
                    }
                    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));
                    }
                }

                //if (ent.DestinoID > 0)
                //{
                //    new IntegracaoNova().Executar(ent.DestinoID, true);
                //}
            }
Exemplo n.º 6
0
            public void Executar(Model.Integracao ent)
            {
                Selia.Integrador.Adapter.ArquivoTexto.Config objConfig = new Selia.Integrador.Adapter.ArquivoTexto.Config();
                var item = ((Model.Interface.ArquivoTexto)ent.Interface.Item);

                objConfig.FTP                = item.FTP;
                objConfig.Login              = item.Login;
                objConfig.Senha              = item.Senha;
                objConfig.Url                = item.Url;
                objConfig.Delimitador        = item.Delimitador;
                objConfig.Diretorio          = item.Diretorio;
                objConfig.Encoding           = item.Encoding;
                objConfig.ElementoSeparador  = ent.ElementoRegistro;
                objConfig.AcaoInicial        = ent.AcaoInicial;
                objConfig.AcaoFinal          = ent.AcaoFinal;
                objConfig.AcaoEnfileiramento = ent.AcaoEnfileiramento;
                objConfig.Mapeamentos        = MapearParaAdapter(ent.Mapeamento);
                objConfig.ConnectionString   = ent.ConnectionString;

                if (ent.Consumidor)
                {
                    foreach (Model.Fila fila in ent.Fila)
                    {
                        try
                        {
                            Selia.Integrador.Adapter.Resultado objResult = new Selia.Integrador.Adapter.ArquivoTexto().Executar(objConfig, fila.Conteudo, ent.ID);

                            Model.LogFila entLogFila = new Model.LogFila();
                            entLogFila.ConteudoFila     = fila.Conteudo;
                            entLogFila.ChavePrimaria    = fila.ChavePrimaria;
                            entLogFila.ChaveSecundaria  = fila.ChaveSecundaria;
                            entLogFila.LogIntegracao.ID = fila.LogIntegracaoID;
                            entLogFila.IntegracaoID     = ent.ID;
                            entLogFila.FilaID           = fila.ID;

                            if (!string.IsNullOrEmpty(objResult.Mensagem))
                            {
                                entLogFila.ConteudoRetorno = objResult.Mensagem;
                            }

                            new BS.LogFila().Inserir(entLogFila);

                            if (objResult.TipoMensagem == Selia.Integrador.Adapter.Resultado.Tipo.Sucesso)
                            {
                                new BS.Fila().Excluir(fila.ID);

                                if (ent.Destino != null)
                                {
                                    ent.AcaoInicial             = ent.Destino.AcaoInicial;
                                    ent.AcaoFinal               = ent.Destino.AcaoFinal;
                                    ent.AcaoEnfileiramento      = ent.Destino.AcaoEnfileiramento;
                                    ent.ElementoRegistro        = ent.Destino.ElementoRegistro;
                                    ent.PKPrimaria              = ent.Destino.PKPrimaria;
                                    objResult.ElementoSeparador = ent.Destino.ElementoRegistro;
                                    objConfig.Mapeamentos       = MapearParaAdapter(ent.Mapeamento);

                                    new BS.Fila().ProcessarFila(objResult, ent, null);
                                }
                            }
                            else
                            {
                                new BS.Fila().AtualizarStatus(Model.Fila.TipoStatus.Erro, fila.ID);
                            }
                        }
                        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));
                        }
                    }
                }
                else
                {
                    try
                    {
                        Selia.Integrador.Adapter.Resultado objResult = new Selia.Integrador.Adapter.ArquivoTexto().Executar(objConfig);
                        if (!string.IsNullOrEmpty(objResult.Mensagem))
                        {
                            if (objResult.TipoMensagem == Selia.Integrador.Adapter.Resultado.Tipo.Sucesso)
                            {
                                if (ent.Destino != null)
                                {
                                    ent.AcaoInicial             = ent.Destino.AcaoInicial;
                                    ent.AcaoFinal               = ent.Destino.AcaoFinal;
                                    ent.AcaoEnfileiramento      = ent.Destino.AcaoEnfileiramento;
                                    ent.ElementoRegistro        = ent.Destino.ElementoRegistro;
                                    ent.PKPrimaria              = ent.Destino.PKPrimaria;
                                    objResult.ElementoSeparador = ent.Destino.ElementoRegistro;
                                    objConfig.Mapeamentos       = MapearParaAdapter(ent.Mapeamento);

                                    new BS.Fila().ProcessarFila(objResult, ent, null);
                                }
                            }
                            else
                            {
                                Model.LogIntegracao entLogIntegracao = new Model.LogIntegracao();
                                entLogIntegracao.Conteudo   = objResult.Mensagem;
                                entLogIntegracao.Integracao = ent;
                                entLogIntegracao.Status     = 1;
                                new BS.LogIntegracao().Inserir(entLogIntegracao);
                                //ServiceLog.LogError(String.Format("Erro: {0} - Message: {1}", ent.Nome, objResult.Mensagem));
                            }
                        }
                    }
                    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));
                    }
                }
            }
Exemplo n.º 7
0
        public List <Model.LogFila> Preencher(DataTable dt)
        {
            List <Model.LogFila> lst = new List <Model.LogFila>();

            foreach (DataRow row in dt.Rows)
            {
                Model.LogFila ent = new Model.LogFila();

                if (row["ID"] != DBNull.Value)
                {
                    ent.ID = Convert.ToInt32(row["ID"].ToString());
                }
                if (row["Conteudo"] != DBNull.Value)
                {
                    ent.Conteudo = row["Conteudo"].ToString();
                }
                if (row["ConteudoFila"] != DBNull.Value)
                {
                    ent.ConteudoFila = row["ConteudoFila"].ToString();
                }
                if (row["DataCriacao"] != DBNull.Value)
                {
                    ent.DataCriacao = Convert.ToDateTime(row["DataCriacao"]);
                }
                if (row["ChavePrimaria"] != DBNull.Value)
                {
                    ent.ChavePrimaria = row["ChavePrimaria"].ToString();
                }
                if (row["ChaveSecundaria"] != DBNull.Value)
                {
                    ent.ChaveSecundaria = row["ChaveSecundaria"].ToString();
                }
                if (row["LogIntegracaoID"] != DBNull.Value)
                {
                    ent.LogIntegracao.ID = Convert.ToInt32(row["LogIntegracaoID"].ToString());
                }
                if (row["ConteudoRetorno"] != DBNull.Value)
                {
                    ent.ConteudoRetorno = row["ConteudoRetorno"].ToString();
                }
                if (row["FilaID"] != DBNull.Value)
                {
                    ent.FilaID = Convert.ToInt32(row["FilaID"].ToString());
                }

                lst.Add(ent);
            }

            var agrupado = from lista in lst
                           group lista by new
            {
                Conteudo        = lista.Conteudo,
                ChavePrimaria   = lista.ChavePrimaria,
                ChaveSecundaria = lista.ChaveSecundaria,
                ConteudoRetorno = lista.ConteudoRetorno,
                ConteudoFila    = lista.ConteudoFila,
                FilaID          = lista.FilaID
            }
            into resultado
                select new
            {
                resultado.Key.ChavePrimaria,
                resultado.Key.ChaveSecundaria,
                resultado.Key.Conteudo,
                resultado.Key.ConteudoFila,
                resultado.Key.ConteudoRetorno,
                resultado.Key.FilaID,
                ID          = resultado.Max(a => a.ID),
                DataCriacao = resultado.Max(b => b.DataCriacao)
            };

            lst = new List <Model.LogFila>();

            foreach (var item in agrupado.ToList())
            {
                lst.Add(new Model.LogFila
                {
                    ChavePrimaria   = item.ChavePrimaria,
                    ChaveSecundaria = item.ChaveSecundaria,
                    Conteudo        = item.Conteudo,
                    ConteudoFila    = item.ConteudoFila,
                    ConteudoRetorno = item.ConteudoRetorno,
                    DataCriacao     = item.DataCriacao,
                    FilaID          = item.FilaID,
                    ID = item.ID
                });
            }

            return(lst);
        }