public void AdicionarMgr(IMgrLocal mgr) { if (mgr != null && !_managersLocal.ContainsKey(mgr.NombreTabla)) { _managersLocal.Add(mgr.NombreTabla, mgr); } }
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); }