/// <summary> /// Constructo. Este metodo se llama cuando se lanza la apliación. /// </summary> public Form1() { InitializeComponent(); //Contador usado para el envio y recepción de tramas. count = 0; //Crea el modelo de datos. CreateDataModel(); //------------------------------------ //Carga de los conectores y protocolos //------------------------------------ //Se cargan los conectores (Se usa el primero de la lista) listaConectores = ConectionConfig.LoadConfig("config.xml", "conector"); //Se cargan los protocolos listaProtocolos = ConectionConfig.LoadConfig("config.xml", "protocol"); //CONEXION try { //Se cargan los conectores conexionEstablecida = (IConector)listaConectores[0].getInstance(); //Se establece la conexión. //Inicialización de la lista de peticiones listaPeticiones = new ListaPeticiones(conexionEstablecida); //Se cargan los protocolos (Se usa el primero de la lista) protocoloEnUso = (IIOProtocolInterface)listaProtocolos[0].getInstance(); //Se prepara la lista de peticiones RellenarPeticiones(listaPeticiones); //Se enciende el timer. conexionEstablecida.Connect(listaConectores[0].Config); listaPeticiones.Start(); tm = new Timer(); tm.Interval = 50; tm.Tick += new EventHandler(ActualizaInterfaz); tm.Start(); } catch (Exception ex) { //Si ha habido algún error en la conexión se cierra y se muestra el mensaje. if (conexionEstablecida != null) { conexionEstablecida.Close(); conexionEstablecida = null; } MessageBox.Show("Error..... " + ex.Message); } }
public EntidadBaseDAL(IConector connector, IBuilder <T> builder, string nombreEntidad) { _connector = connector; _builder = builder; _nombreEntidad = nombreEntidad; GenerarNombresSP(); }
public ListaPeticiones(IConector con) { //Inicialización de la lista de peticiones listaPeticiones = new Dictionary <byte[], StatePeticion>(); conector = con; //Inicialización del timer tm_envio = new Timer(); //Configuración del timer tm_envio.Interval = 50; //intervalo de tiempo (cada 50 ms se hace un tick) tm_envio.Elapsed += new ElapsedEventHandler(Envio); // new EventHandler(Envio); //Se ajusta para que se llame a la función Envio. //Establece una función que será llamada cuando lleguen datos al conector. conector.SetReceiveEventHandler(RecepcionDeDatos); }
public IConector GetConector(string nomeBanco) { IConector conector = null; switch (nomeBanco) { case Banco.SQLSERVER: conector = new ConectorSQLService(_conexaoConf, _log); break; case Banco.MYSQL: conector = new ConectorMySql(_conexaoConf, _log); break; case Banco.SYBASE: conector = new ConectorSyBase(_conexaoConf, _log); break; } return(conector); }
public void SincronizarTabelas() { _log.TraceMethodStart(); _log.Information($"Iniciando Sincronização de tabelas para a conexão: {_configConexao.NomeConexao}"); IConector conectorDe = _factory.GetConector(_configConexao.NomeBancoDe); IConector conectorPara = _factory.GetConector(_configConexao.NomeBancoPara); foreach (var tabela in _configConexao.ListaTabelas) { try { DataTable data = conectorDe.BuscarDadosTabela(tabela); if (data.Rows.Count > 0) { _log.Information("Encontrado dados para Sincronização"); } foreach (DataRow row in data.Rows) { string guid = row[ColunasConfiguracao.CHAVEINTEGRACAO].Equals(DBNull.Value) ? Guid.NewGuid().ToString() : row[ColunasConfiguracao.CHAVEINTEGRACAO].ToString(); int qtdeTentativas = row[ColunasConfiguracao.QTDETENTATIVA].Equals(DBNull.Value) ? 0 : (int)row[ColunasConfiguracao.QTDETENTATIVA]; string statusIntegracao = string.Empty; _log.Trace($"Iniciando sincronização com o GUID: {guid} "); _log.SetIdentificador(guid); qtdeTentativas++; conectorDe.IniciarSincronizacao(guid, tabela, data, row); statusIntegracao = StatusIntegracao.Atualizando; try { conectorPara.EnviarComandosTabela(guid, tabela, data, row); statusIntegracao = StatusIntegracao.Finalizado; } catch (Exception ex) { _log.Error("Erro no processo de envio ao banco de dados de destino: ", ex); } if (statusIntegracao.Equals(StatusIntegracao.Atualizando)) { if (qtdeTentativas >= _configConexao.QuantidadeMaximaTentativas) { statusIntegracao = StatusIntegracao.Erro; } } conectorDe.AtualizarSincronizacao(guid, tabela, data, row, qtdeTentativas, statusIntegracao); _log.SetIdentificador(string.Empty); } } catch (Exception ex) { _log.Error("Erro no processo de busca ao banco de dados de envio: ", ex); } } _log.Information($"Finalizando Sincronização de tabelas para a conexão: {_configConexao.NomeConexao}"); _log.TraceMethodEnd(); }