public void ChangesSelected(object proxy, DbChangesSelectedEventArgs args) { if (null != _progressForm) { _progressForm.ChangesSelected(args); } }
private void from_ChangesSelected(object sender, DbChangesSelectedEventArgs e) { foreach (var table in TablesToIgnoreAddingFilter.Keys) { DoPerTableRow(e.Context.DataSet.Tables, table, (dataTable, row) => { if (row.RowState == DataRowState.Added) { if (TablesToIgnoreAddingFilter[table](row)) { dataTable.Rows.Remove(row); } } }); } foreach (var table in TableToIdsForSync.Keys) { DoPerTableRow(e.Context.DataSet.Tables, table, (dataTable, row) => { if (!TableToIdsForSync[table].Contains(row["Id"])) { dataTable.Rows.Remove(row); } }); } foreach (var table in TableRowsShaper.Keys) { DoPerTableRow(e.Context.DataSet.Tables, table, (dataTable, row) => { TableRowsShaper[table](row); }); } }
protected void proveedor_ChangesSelected(object sender, DbChangesSelectedEventArgs e) { String mensaje = string.Format( "{0}:{1}\n\r{2}:{3}\n\r{4}:{5}\n\r{6}:{7}\n\r{8}:{9}\n\r", "\tSource Database :", e.Connection.Database, "\tContexto :", e.Context, "\tBatch count :", e.ScopeMetadata.BatchCount, "\tSession Id :", e.Session.SessionId, "\tTransaccion :", e.Transaction.ToString()); Loguear("proveedor_ChangesSelected", mensaje); }
private void ServerSyncProviderOnChangesSelected(object sender, DbChangesSelectedEventArgs e) { for (var i = 0; i < e.Context.DataSet.Tables.Count; i++) { var dataTable = e.Context.DataSet.Tables[i]; for (var j = 0; j < dataTable.Rows.Count; j++) { var row = dataTable.Rows[j]; Console.WriteLine("Server Change selected: "); Console.WriteLine("-Table: " + dataTable.TableName); Console.WriteLine("-Row " + row.ItemArray[0] + ": " + row.RowState); } } }
private void ClientSyncProviderOnChangesSelected(object sender, DbChangesSelectedEventArgs e) { Console.WriteLine("Client Change selected: "); for (var i = 0; i < e.Context.DataSet.Tables.Count; i++) { var dataTable = e.Context.DataSet.Tables[i]; for (var j = 0; j < dataTable.Rows.Count; j++) { var row = dataTable.Rows[j]; Console.WriteLine(dataTable.TableName + "[" + j + "]: " + row.RowState); } } }
public void ChangesSelected(DbChangesSelectedEventArgs args) { DbSyncScopeProgress progress = args.Context.ScopeProgress; string message = ""; listSyncProgress.Items.Add(message); foreach (DbSyncTableProgress tableProgress in args.Context.ScopeProgress.TablesProgress) { message = "Enumerated changes for table: " + tableProgress.TableName; message += "[Inserts:" + tableProgress.Inserts.ToString() + "/Updates :" + tableProgress.Updates.ToString() + "/Deletes :" + tableProgress.Deletes.ToString() + "]"; listSyncProgress.Items.Add(message); } message = "Total Changes Enumerated: " + progress.TotalChanges.ToString() + " Inserts :" + progress.TotalInserts.ToString(); message += " Updates :" + progress.TotalUpdates.ToString() + " Deletes :" + progress.TotalDeletes.ToString(); listSyncProgress.Items.Add(message); Application.DoEvents(); }
//CLIENT! -> SERVER (COLUMNS) private void localProvider_ChangesSelected(object sender, DbChangesSelectedEventArgs e) { foreach (var table in tables) { if (e.Context.DataSet.Tables.Contains(table.ServerTableName)) { var dataTable = e.Context.DataSet.Tables[table.ServerTableName]; var tableColumns = columns.Where(c => c.MatchingTableNameID == table.ID).ToList(); foreach (var tableColumn in tableColumns) { dataTable.Columns[tableColumn.ClientColumnName].ColumnName = tableColumn.ServerColumnName; } var serverNullColumns = tableColumns.Where(t => t.ServerColumnNullCheck == 1).ToList(); if (serverNullColumns.Any()) { for (int j = 0; j < dataTable.Rows.Count; j++) { DataRow row = dataTable.Rows[j]; if (row.RowState != DataRowState.Deleted) { foreach (var serverNullColumn in serverNullColumns) //Передаем на сервер вместо пустых значений null (NULL на сервере) { if ((serverNullColumn.ServerColumnFieldType == 1 || serverNullColumn.ServerColumnFieldType == 2) && Convert.ToInt32(row[serverNullColumn.ServerColumnName]) == 0) { row[serverNullColumn.ServerColumnName] = DBNull.Value; } else if ((serverNullColumn.ServerColumnFieldType == 3 || serverNullColumn.ServerColumnFieldType == 8) && String.IsNullOrEmpty(row[serverNullColumn.ServerColumnName].ToString())) { row[serverNullColumn.ServerColumnName] = DBNull.Value; } } } } } } } }
//SERVER! -> CLIENT (COLUMNS) private void remoteProvider_ChangesSelected(object sender, DbChangesSelectedEventArgs e) { foreach (var table in tables) { if (e.Context.DataSet.Tables.Contains(table.ServerTableName)) { var dataTable = e.Context.DataSet.Tables[table.ServerTableName]; var tableColumns = columns.Where(c => c.MatchingTableNameID == table.ID).ToList(); foreach (var tableColumn in tableColumns) { dataTable.Columns[tableColumn.ServerColumnName].ColumnName = tableColumn.ClientColumnName; } var serverNullColumns = tableColumns.Where(t => t.ServerColumnNullCheck == 1).ToList(); if (serverNullColumns.Any()) { for (int j = 0; j < dataTable.Rows.Count; j++) { DataRow row = dataTable.Rows[j]; if (row.RowState != DataRowState.Deleted) { foreach (var serverNullColumn in serverNullColumns) //Передаем на клиент вместо null значения по умолчанию (NULL на сервере) { if ((serverNullColumn.ServerColumnFieldType == 1 || serverNullColumn.ServerColumnFieldType == 2) && row[serverNullColumn.ClientColumnName] == DBNull.Value) { row[serverNullColumn.ClientColumnName] = 0; } else if ((serverNullColumn.ServerColumnFieldType == 3 || serverNullColumn.ServerColumnFieldType == 8) && row[serverNullColumn.ClientColumnName] == DBNull.Value) { row[serverNullColumn.ClientColumnName] = ""; } } } } } } } }
/// <summary> /// Client processing - collating changes to send to the server /// Fires before anything is "done", perfect spot to apply obscure business rules /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private static void Program_ChangesSelected(object sender, DbChangesSelectedEventArgs e) { //let's check if we're synching the table we're interested if (e.Context.DataSet.Tables.Contains("Invoices")) { var dataTable = e.Context.DataSet.Tables["Invoices"]; for (var j = 0; j < dataTable.Rows.Count; j++) { var row = dataTable.Rows[j]; // we're only interested in updates if (row.RowState == DataRowState.Modified) { // check if the status is Completed if (Convert.ToInt64(row["Quantity"]) < 0) { // let's delete the row so it gets applied as a delete instead of applying it as an update dataTable.Rows[j].Delete(); } } } } }
private void DbSynchronizer_ChangesSelected(object sender, DbChangesSelectedEventArgs e) { Log("Start Time: "); Log(string.Empty); }
protected abstract void SyncProviderOnChangesSelected(object sender, DbChangesSelectedEventArgs dbChangesSelectedEventArgs);
protected void proveedor_ChangesSelected(object sender, DbChangesSelectedEventArgs e) { String mensaje = string.Format( "{0}:{1}\n\r{2}:{3}\n\r{4}:{5}\n\r{6}:{7}\n\r{8}:{9}\n\r", "\tSource Database :", e.Connection.Database, "\tContexto :", e.Context, "\tBatch count :", e.ScopeMetadata.BatchCount, "\tSession Id :", e.Session.SessionId, "\tTransaccion :", e.Transaction.ToString()); this.loguear( "proveedor_ChangesSelected",mensaje); }
private void DbSynchronizer_ChangesSelected(object sender, DbChangesSelectedEventArgs e) { Log("Извлечены изменения: " + DateTime.Now.ToLongTimeString()); }
protected override void SyncProviderOnChangesSelected(object sender, DbChangesSelectedEventArgs dbChangesSelectedEventArgs) { ShowMessage("Local"); }
public void SynchronizeServer_ChangesSelected(object sender, DbChangesSelectedEventArgs args) { LogChanges(args.Context.ScopeProgress.TablesProgress, "Server Changes Selected"); }