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()); } } }
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()); } }