Example #1
0
        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();
        }
Example #2
0
        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();
        }