private DataTable OrdenarParametrosYGrabar(List <OleDbParameter> Parametros , string LlaveNivel1 , string LlaveNivel2 , string strOrdenParametros , Data.clsSincronizar objDal , string strSpi , string node) { DataTable dtResultado = new DataTable(); //ordena los parametros que se insertaran y los graba a la base de datos //graba las llaves que siempre tienen que ir Parametros.Add(new OleDbParameter("@PARAM_LLAVE_NIVEL1", LlaveNivel1)); Parametros.Add(new OleDbParameter("@PARAM_LLAVE_NIVEL2", LlaveNivel2)); //Ordena los parametros para que sean enviados a la base de datos como los espera el sp string[] OrdenParametros = strOrdenParametros.Split(','); List <OleDbParameter> ParametrosOrdenados = new List <OleDbParameter>(); foreach (string nombreparam in OrdenParametros) { //busca el parametro en los parametros ya armados foreach (OleDbParameter NoOrdenado in Parametros) { if (nombreparam.ToString().ToUpper().Trim() == NoOrdenado.ParameterName.ToString().ToUpper().Trim().Replace("@", "")) { OleDbParameter itemParam = new OleDbParameter(); itemParam.ParameterName = NoOrdenado.ParameterName; itemParam.OleDbType = NoOrdenado.OleDbType; itemParam.Value = NoOrdenado.Value; ParametrosOrdenados.Add(itemParam); } } } //Manda a grabar a la base de datos dtResultado = objDal.fnGetDatosGenericos(strSpi, ParametrosOrdenados); return(dtResultado); }
public void CoreData() { try { funciones.Mensaje("SYNC_CORE_DATA Sincronizando a CORE_DATA"); //leer las tablas que necesitan actualizarse clsParametros clsParametros = new clsParametros(); string StringDeConexion = clsParametros.StringDeConexion; DataTable dtResultado = new DataTable(); Data.clsSincronizar objDal = new Data.clsSincronizar(StringDeConexion); dtResultado = objDal.fnGetTablasSincronizar(); if (dtResultado != null && dtResultado.Rows.Count > 0) { //recorre la tabla para llamar cada sp y enviar a sincronizar a firebase foreach (DataRow row in dtResultado.Rows) { Int64 id = row["id"] != DBNull.Value ? Convert.ToInt64(row["id"]) : 0; string strSpc = row["nombre_spc"] != DBNull.Value ? Convert.ToString(row["nombre_spc"]) : ""; string strSpu = row["nombre_spu"] != DBNull.Value ? Convert.ToString(row["nombre_spu"]) : ""; string strTbl = row["objeto"] != DBNull.Value ? Convert.ToString(row["objeto"]) : ""; string strLlave = row["llave"] != DBNull.Value ? Convert.ToString(row["llave"]) : ""; string strNode = row["node_destino"] != DBNull.Value ? Convert.ToString(row["node_destino"]) : ""; if (strSpc == "" || strTbl == "" || strLlave == "" || strNode == "" || strSpu == "") { funciones.Mensaje("No se especifico nombre de tabla, SPC, llave o Node verifique "); } else { funciones.Mensaje("Leyendo datos de: " + strTbl + ' ' + strSpc); //se manda a llamar el spc DataTable dtDatos = new DataTable(); dtDatos = objDal.fnGetDatosGenericos(strSpc); if (dtDatos != null && dtDatos.Rows.Count > 0) { //tiene datos los manda a EndPoint //dtDatos -- lleva en conjunto de datos pendiente de sincronizar, lo que devuelve el spc //strLlave -- lo que usara para grabar los datos en firebase como llave, es lo mismo que esta en el Db2 //obDal -- servira para llamar el spu //strSpu -- spu de actualización de la tupla sincronizada //id -- id del proceso o tabla que se esta sincronizando corresponde a app_tbl_tablas_sinc pPostEndPoint(dtDatos, strLlave, strNode, objDal, strSpu, id); } else { funciones.Mensaje("Sin datos en " + strSpc); } } } } else { funciones.Mensaje("Sin datos que sincronizar"); } } catch (Exception ex) { string lStrMethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; funciones.Mensaje("ERR: " + lStrMethodName + ' ' + ex.ToString()); //throw new Exception(lStrMethodName, ex); } //Console.ReadLine(); }
public void RemoteToLocal() { try { funciones.Mensaje("SYNC_REMOTE_LOCAL Sincronizando de REMOTE a LOCAL"); //leer las tablas que necesitan actualizarse clsParametros clsParametros = new clsParametros(); string StringDeConexionRemoto = clsParametros.StringDeConexionRemoto; DataTable dtResultado = new DataTable(); Data.clsSincronizar objDal = new Data.clsSincronizar(StringDeConexionRemoto); dtResultado = objDal.fnGetTablasSincronizar(); if (dtResultado != null && dtResultado.Rows.Count > 0) { //recorre la tabla para llamar cada sp y enviar a sincronizar a firebase foreach (DataRow row in dtResultado.Rows) { Int64 id = row["id"] != DBNull.Value ? Convert.ToInt64(row["id"]) : 0; string strSpc = row["nombre_spc"] != DBNull.Value ? Convert.ToString(row["nombre_spc"]) : ""; string strSpu = row["nombre_spu"] != DBNull.Value ? Convert.ToString(row["nombre_spu"]) : ""; string strTbl = row["objeto"] != DBNull.Value ? Convert.ToString(row["objeto"]) : ""; string strSpi = row["nombre_spi_destino"] != DBNull.Value ? Convert.ToString(row["nombre_spi_destino"]) : ""; if (strSpc == "" || strTbl == "" || strSpi == "" || strSpu == "") { funciones.Mensaje("No se especifico nombre de tabla, SPC, spi, spu en tabla sincronizacion remota "); } else { funciones.Mensaje("Leyendo datos remotos de: " + strTbl + ' ' + strSpc); //se manda a llamar el spc DataTable dtDatos = new DataTable(); dtDatos = objDal.fnGetDatosGenericos(strSpc); if (dtDatos != null && dtDatos.Rows.Count > 0) { //pega los datos en el servidor local pPostLocal(id, dtDatos, strSpi, strSpu); } else { funciones.Mensaje("Sin datos en " + strSpc); } } } } else { funciones.Mensaje("Sin datos que sincronizar"); } } catch (Exception ex) { string lStrMethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; funciones.Mensaje("ERR: " + lStrMethodName + ' ' + ex.ToString()); //throw new Exception(lStrMethodName, ex); } funciones.Mensaje("Fin de la sincronizacion "); //Console.ReadLine(); }