Пример #1
0
        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 去解析和消费。");
        }
Пример #2
0
        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);
        }