private void btnSendDatabaseSyncCommand_Click(object sender, EventArgs e) { DatabaseSyncCommand cmd = new DatabaseSyncCommand(); DatabaseSyncItem item1 = new DatabaseSyncItem() { Action = DatabaseSyncAction.Add, Table = "Customers", PrimaryKeyValue = "062B54F5-69AA-A108-09F8-39DB9C2F58C4" }; DatabaseSyncItem item2 = new DatabaseSyncItem() { Action = DatabaseSyncAction.Update, Table = "Customers", PrimaryKeyValue = "062B54F5-69AA-A108-09F8-39DB9C2F58C4" }; DatabaseSyncItem item3 = new DatabaseSyncItem() { Action = DatabaseSyncAction.Delete, Table = "Customers", PrimaryKeyValue = "062B54F5-69AA-A108-09F8-39DB9C2F58C4" }; cmd.SyncItemList.Add(item1); cmd.SyncItemList.Add(item2); cmd.SyncItemList.Add(item3); string json = JsonConvert.SerializeObject(cmd); _rabbitMQService.Send("exchangeName_A", "routingKey_A", json); MessageBox.Show("DatabaseSyncCommand 命令已发送。 Command 需要通过 CommandExecuterService 去解析和消费。"); }
private static int CreateDatabaseSyncTable(CreateDatabaseSyncTableOptions options) { try { var commands = DatabaseSyncItem.InitializeDatabase(options.TableName); using var connection = new ConnectionWrapper(CreatePostgresOptions(options).ConnectionString); using var command = connection.Command(commands); Log.Information("Initializing {TableName}...", options.TableName); command.Command.ExecuteNonQuery(); Log.Information("Done."); } catch (Exception e) { Log.Error(e, "Failed to create {TableName}", options.TableName); return(1); } return(0); }