Example #1
0
        private void pPostLocal(Int64 ID, DataTable datos, string strSpi, string strSpu)
        {
            clsParametros clsParametros          = new clsParametros();
            string        StringDeConexion       = clsParametros.StringDeConexion;
            string        StringDeConexionRemoto = clsParametros.StringDeConexionRemoto;

            Data.clsSincronizar objDal      = new Data.clsSincronizar(StringDeConexion);
            Data.clsSincronizar obDalRemoto = new Data.clsSincronizar(StringDeConexionRemoto);


            foreach (DataRow dr in datos.Rows)
            {
                List <OleDbParameter> Parametros = new List <OleDbParameter>();

                foreach (DataColumn dc in datos.Columns)
                {
                    //var field1 = dtRow[dc].ToString();
                    string tipoDato    = dc.DataType.Name.ToString().ToUpper();
                    string nombreParam = dc.ColumnName;

                    OleDbParameter item = new OleDbParameter();

                    if ((nombreParam.ToUpper() != "ID_SINC_PROC") && (nombreParam.ToUpper() != "ID_SINC"))
                    {
                        item.ParameterName = "@" + nombreParam;
                        switch (tipoDato)
                        {
                        case "DECIMAL":
                            item.OleDbType = OleDbType.Decimal;
                            break;

                        case "STRING":
                            item.OleDbType = OleDbType.VarChar;
                            break;

                        case "DATETIME":
                            item.OleDbType = OleDbType.DBTimeStamp;
                            break;

                        default:
                            break;
                        }

                        item.Value = dr[nombreParam];
                        Parametros.Add(item);
                    }
                }

                //graba datos genericos
                if (objDal.fnSetDatosGenericos(strSpi, Parametros))
                {
                    obDalRemoto.fnSet(strSpu, ID, Convert.ToInt64(dr["id_sinc_proc"]), Convert.ToInt64(dr["id_sinc"]));
                    funciones.Mensaje(" Sincronizado id remoto = " + Convert.ToInt64(dr["id_sinc"]).ToString());
                }
            }
        }
Example #2
0
        private void pPostEndPoint(DataTable datos, string llave, string node, Data.clsSincronizar objDal, string strSpu, Int64 idTablaSincronizada)
        {
            string        JSon     = "";
            string        EndPoint = "";
            clsParametros param    = new clsParametros();

            try
            {
                //OBTIENE LOS DATOS DEL NODO
                EndPoint = param.FireBaseDb + "/" + param.FireBaseCoreData;
                FirebaseDB firebaseDBGet = new FirebaseDB(EndPoint);

                // se recorre
                foreach (DataRow row in datos.Rows)
                {
                    try
                    {
                        DataTable dtRow = datos.Clone();
                        dtRow.LoadDataRow(row.ItemArray, true);

                        FirebaseDB       firebaseDBGetNode = firebaseDBGet.NodePath(node + "/" + row[llave].ToString());
                        FirebaseResponse getResponse       = firebaseDBGetNode.Get();

                        if (getResponse.JSONContent != "null")
                        {
                            // el contenido trae datos del GET
                            // elimina el nodo
                            FirebaseResponse delResponse = firebaseDBGetNode.Delete();

                            if (delResponse.Success)
                            {
                                funciones.Mensaje("response delete existing :" + row[llave].ToString());
                            }
                        }

                        JSon = JsonConvert.SerializeObject(funciones.DatatableToDictionary(dtRow, llave), Newtonsoft.Json.Formatting.Indented);

                        ////post
                        FirebaseDB firebaseDB     = new FirebaseDB(EndPoint);
                        FirebaseDB firebaseDBNode = firebaseDB.NodePath(node);

                        FirebaseResponse patchResponse = firebaseDBNode.Patch(JSon);

                        if (patchResponse.Success)
                        {
                            funciones.Mensaje("datos grabados :" + row[llave].ToString());

                            //marcar la fila en la base de datos para no volver a sincronizar
                            //marca la tabla para no volverla a sincronizar
                            Boolean actulizado = objDal.fnSet(strSpu, idTablaSincronizada, Convert.ToInt64(row["id_sinc_proc"].ToString()));
                        }
                        else
                        {
                            funciones.Mensaje("response failed :" + patchResponse.ErrorMessage.ToString());
                        }
                    }
                    catch (Exception ex)
                    {
                        string lStrMethodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
                        funciones.Mensaje("ERR: " + lStrMethodName + ' ' + ex.ToString());
                    }
                }
            }
            catch (Exception ex)
            {
                string lStrMethodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
                funciones.Mensaje("ERR: " + lStrMethodName + ' ' + ex.ToString());
            }
        }