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