private bool ValidarEstructuraTablas(AyudanteSincronizacion ayudante) { Console.WriteLine("2 sssssssssssss:::::::::::::::::::::::::::::::::::::::: "); bool tf = true; Dictionary <string, decimal> Local = ayudante.TablesColumns(); Dictionary <string, decimal> Servidor = MgrServidor.TablesColumns(); foreach (KeyValuePair <string, decimal> pair in Local) { if (Servidor.ContainsKey(pair.Key)) { PistaMgr.Instance.Debug("SincronizadorCliente", string.Format("Tabla:{0} Local:{1} - Servidor {2}", pair.Key, pair.Value, Servidor[pair.Key])); if (pair.Value != Servidor[pair.Key]) { tf = false; PistaMgr.Instance.Error("SincronizadorCliente", string.Format("La cantidad de columnas de la Tabla: {0}; en cliente es diferente a la de servidor| Cliente:{1} - Servidor {2}", pair.Key, pair.Value, Servidor[pair.Key])); } } else { tf = false; PistaMgr.Instance.Error("SincronizadorCliente", string.Format("Servidor no tiene la Tabla: {0}", pair.Key)); } } return(tf); }
/* * /* @jla: 27/Marzo/2014 Método que sincroniza informes de Falla */ public bool SincronizarInformesFalla() { Console.WriteLine("5 sssssssssssss:::::::::::::::::::::::::::::::::::::::: "); bool resultado = false; try { PistaMgr.Instance.Debug("SincronizacionInformesDeFalla", string.Format("Inicio Sincronizacion: {0}", DateTime.Now.ToString("HH:mm:ss"))); AyudanteSincronizacion ayudante = new AyudanteSincronizacion(Sesion.Instancia.Conexion); //ValidarEstructuraTablas(ayudante); DataTable sincLocal = ayudante.GetSincronizacionInformesFalla(); DataTable sincServer = MgrServidor.GetSincronizacionInformesFalla(); Console.WriteLine("sincronizarInformesFalla :::::::::::::::::::::::::::::::::::::::: local: " + sincLocal.Rows.Count + "; server: " + sincServer.Rows.Count); PistaMgr.Instance.EscribirLog("SincronizacionInformesDeFalla", "SincronizadorRegistroFallas.GetLista(sincLocal) ", TipoPista.Debug); List <SincronizadorRegistroFallas> listaLocal = SincronizadorRegistroFallas.GetLista(sincLocal); PistaMgr.Instance.EscribirLog("SincronizacionInformesDeFalla", " SincronizadorRegistroFallas.GetLista(sincServer); ", TipoPista.Debug); List <SincronizadorRegistroFallas> listaServer = SincronizadorRegistroFallas.GetLista(sincServer); PistaMgr.Instance.EscribirLog("SincronizacionInformesDeFalla", "new List<SincronizadorRegistroFallas>() ", TipoPista.Debug); List <SincronizadorRegistroFallas> lFallas = new List <SincronizadorRegistroFallas>(); OnSincronizando(0, 10, "Informes de falla"); PistaMgr.Instance.EscribirLog("SincronizacionInformesDeFalla", "listaServer: " + listaServer.Count.ToString(), TipoPista.Debug); foreach (SincronizadorRegistroFallas item in listaServer) { if (listaLocal.IndexOf(item) == -1) { PistaMgr.Instance.EscribirLog("SincronizacionInformesDeFalla", "Código de Falla: " + item.PkCodFalla.ToString(), TipoPista.Debug); lFallas.Add(item); resultado = true; } } PistaMgr.Instance.Debug("SincronizacionInformesDeFalla", string.Format("Fin Sincronizacion: {0}", DateTime.Now.ToString("HH:mm:ss"))); Actualizar = lFallas.OrderBy(o => o.PSincVer).ToList(); } catch (Exception ex) { PistaMgr.Instance.Error("Sincronizador", ex); } return(resultado); }
public ProveedorDatosMgr(ConnexionOracleMgr c) { _conexion = c; _dicProveedores = new Dictionary <string, IProveedorDatosSincronizacion>(); _ayudante = new AyudanteSincronizacion(_conexion); }
private bool SincronizarParametros() { Console.WriteLine("4 sssssssssssss:::::::::::::::::::::::::::::::::::::::: "); bool resultado = false; try { MensajeEmergenteMgr.Intancia.LimpiarMensaje(); if (Sesion.Instancia.ConfigConexion.TipoBD == CNDC.DAL.TipoBaseDatos.Centralizada) { return(false); } if (_error) { return(false); } PistaMgr.Instance.EscribirEnLocal("Sincronizador", "Iniciando Sincronizacion: " + DateTime.Now.ToString("HH:mm:ss")); AyudanteSincronizacion ayudante = new AyudanteSincronizacion(Sesion.Instancia.Conexion); //ValidarEstructuraTablas(ayudante); PistaMgr.Instance.EscribirEnLocal("Sincronizador", "Iniciando Sincronizacion: PASO1 " + DateTime.Now.ToString("HH:mm:ss")); Dictionary <string, decimal> sincVersionesLocal = ayudante.GetMaxSincVer(); PistaMgr.Instance.EscribirEnLocal("Sincronizador", "Iniciando Sincronizacion: PASO2 " + DateTime.Now.ToString("HH:mm:ss")); Console.WriteLine("0eeeeeeeeeeee:: "); Dictionary <string, decimal> sincVersionesServidor = MgrServidor.GetMaxSincVer(); Console.WriteLine("1eeeeeeeeeeee:: "); Console.WriteLine("2eeeeeeeeeeee:: " + sincVersionesLocal.Count + "; servidor: " + sincVersionesServidor.Count); PistaMgr.Instance.EscribirEnLocal("Sincronizador", "Iniciando Sincronizacion: PASO3 " + DateTime.Now.ToString("HH:mm:ss")); int contadorTablasSincronizadas = 0; Dictionary <IProveedorConfirmacionSinc, DataTable> dicProveedoresConfirmacion = new Dictionary <IProveedorConfirmacionSinc, DataTable>(); int c = 0; if (sincVersionesServidor == null || sincVersionesServidor.Count == 0) { _error = true; } try { PistaMgr.Instance.EscribirEnLocal("Sincronizador", "Iniciando Sincronizacion: PASO4 " + DateTime.Now.ToString("HH:mm:ss")); ConfirmarSincronizador(sincVersionesLocal, sincVersionesServidor); foreach (var kv in sincVersionesServidor) { if (sincVersionesLocal.ContainsKey(kv.Key)) { c++; PistaMgr.Instance.Debug("Sincronizador", kv.Key + " " + kv.Value); Console.WriteLine(c.ToString()); if (_managersLocal.ContainsKey(kv.Key) && sincVersionesLocal.ContainsKey(kv.Key)) { IMgrLocal mgrLocal = _managersLocal[kv.Key]; decimal maxSincVersion = sincVersionesLocal[mgrLocal.NombreTabla]; if (maxSincVersion < kv.Value) { PistaMgr.Instance.Debug("Sincronizador", string.Format("Nombre Tabla:{0}", mgrLocal.NombreTabla)); DataTable tabla = MgrServidor.GetRegistrosSincronizacion(mgrLocal.NombreTabla, maxSincVersion, Sesion.Instancia.EmpresaActual.PkCodPersona); List <DataRow> rowsNuevos = new List <DataRow>(); List <DataRow> rowsAntiguos = new List <DataRow>(); foreach (DataRow row in tabla.Rows) { if (mgrLocal.Existe(mgrLocal.NombreTabla, row)) { rowsAntiguos.Add(row); } else { rowsNuevos.Add(row); } resultado = true; } if (rowsNuevos.Count > 0) { mgrLocal.Insertar(rowsNuevos); } if (rowsAntiguos.Count > 0) { mgrLocal.Actualizar(rowsAntiguos); } if (mgrLocal is IProveedorConfirmacionSinc) { dicProveedoresConfirmacion.Add(mgrLocal as IProveedorConfirmacionSinc, tabla); } PistaMgr.Instance.Debug("Sincronizador", string.Format("{0}, NumRegistros={1}", mgrLocal.NombreTabla, tabla.Rows.Count)); } } contadorTablasSincronizadas++; OnSincronizando(contadorTablasSincronizadas, sincVersionesServidor.Count, "Sincronizando Parámetros..."); } } } catch (Exception ex) { PistaMgr.Instance.Error("Sincronizador", ex); } foreach (KeyValuePair <IProveedorConfirmacionSinc, DataTable> kv in dicProveedoresConfirmacion) { DataTable tabla = kv.Key.GetTablaConfirmacionSinc(kv.Value); if (tabla.Rows.Count > 0) { MgrServidor.ConfirmarSinc((kv.Key as IMgrLocal).NombreTabla, tabla); } } PistaMgr.Instance.EscribirEnLocal("Sincronizador", "Finalizando Sincronizacion: " + DateTime.Now.ToString("HH:mm:ss")); } catch (Exception ex2) { PistaMgr.Instance.Error("Sincronizador", ex2); } //resultado = resultado && SincronizacionInformesDeFalla(); return(resultado); }