public async Task Send_message_to_test_consumer() { // add migrations by calling // dotnet ef migrations add --context auditdbcontext --output-dir Migrations\\Audit audit_init DbContextOptionsBuilder <AuditDbContext> optionsBuilder = new DbContextOptionsBuilder <AuditDbContext>(). UseSqlServer(LocalDbConnectionStringProvider.GetLocalDbConnectionString(), m => { var executingAssembly = typeof(ContextFactory).GetTypeInfo().Assembly; m.MigrationsAssembly(executingAssembly.GetName().Name); m.MigrationsHistoryTable("__AuditEFMigrationHistoryAudit"); }); _store = new EntityFrameworkAuditStore(optionsBuilder.Options, "EfCoreAudit"); using (var dbContext = _store.AuditContext) { await dbContext.Database.MigrateAsync(); await dbContext.Database.ExecuteSqlCommandAsync("TRUNCATE TABLE EfCoreAudit"); } _harness = new InMemoryTestHarness(); _harness.OnConnectObservers += bus => { bus.ConnectSendAuditObservers(_store); bus.ConnectConsumeAuditObserver(_store); }; _harness.Consumer <TestConsumer>(); await _harness.Start(); await _harness.InputQueueSendEndpoint.Send(new A()); }
static void ConfigureAuditStore(IBusFactoryConfigurator configurator, DbContextOptionsBuilder dbContextOptions, string auditTableName, Action <IMessageFilterConfigurator> configureFilter = default) { var auditStore = new EntityFrameworkAuditStore(dbContextOptions.Options, auditTableName); configurator.ConnectSendAuditObservers(auditStore, configureFilter); configurator.ConnectConsumeAuditObserver(auditStore, configureFilter); }
public async Task Send_message_to_test_consumer() { _store = new EntityFrameworkAuditStore( LocalDbConnectionStringProvider.GetLocalDbConnectionString(), "audit"); using (var dbContext = _store.AuditContext) await dbContext.Database.ExecuteSqlCommandAsync("TRUNCATE TABLE audit"); _harness = new InMemoryTestHarness(); _harness.OnConnectObservers += bus => { bus.ConnectSendAuditObservers(_store); bus.ConnectConsumeAuditObserver(_store); }; _consumer = _harness.Consumer <TestConsumer>(); await _harness.Start(); await _harness.InputQueueSendEndpoint.Send(new A()); }
public async Task SetUp() { var contextFactory = new AuditContextFactory(); await using (var context = contextFactory.CreateDbContext(DbContextOptionsBuilder)) { await context.Database.MigrateAsync(); } _store = new EntityFrameworkAuditStore(DbContextOptionsBuilder.Options, "EfCoreAudit"); _harness = new InMemoryTestHarness(); _harness.OnConnectObservers += bus => { bus.ConnectSendAuditObservers(_store); bus.ConnectConsumeAuditObserver(_store); }; _harness.Consumer <TestConsumer>(); await _harness.Start(); await _harness.InputQueueSendEndpoint.Send(new A()); }
public async Task Send_message_to_test_consumer() { Database.SetInitializer(new DropCreateDatabaseAlways <AuditDbContext>()); _store = new EntityFrameworkAuditStore( LocalDbConnectionStringProvider.GetLocalDbConnectionString(), "audit"); using (var dbContext = _store.AuditContext) { dbContext.Database.Initialize(true); await dbContext.Database.ExecuteSqlCommandAsync("TRUNCATE TABLE audit"); } _harness = new InMemoryTestHarness(); _harness.OnConfigureInMemoryBus += configurator => { configurator.ConnectSendAuditObservers(_store); configurator.ConnectConsumeAuditObserver(_store); }; _consumer = _harness.Consumer <TestConsumer>(); await _harness.Start(); await _harness.InputQueueSendEndpoint.Send(new A()); }
// be sure to set the C# language version to 7.3 or later public static async Task Main() { const string cons = @"Server=.\SQLEXPRESS;Database=Cv;Trusted_Connection=true"; LoggerFactory f = new LoggerFactory(); f.AddProvider(new ConsoleLoggerProvider(new MCalss())); var busControl = Bus.Factory.CreateUsingRabbitMq(cfg => { cfg.Host(Config.Host, x => { x.Password(Config.Password); x.Username(Config.Username); }); //cfg.Host().Settings cfg.SetLoggerFactory(f); }); DbContextOptionsBuilder <AuditDbContext> builder = new DbContextOptionsBuilder <AuditDbContext>(); builder.UseSqlServer(cons); var auditStore = new EntityFrameworkAuditStore(builder.Options, "rabbitAudit"); //https://dev.to/etnicholson/developing-a-crudapi-with-asp-net-core-mongodb-docker-swagger-cf4 busControl.ConnectSendAuditObservers(auditStore); //busControl.ConnectConsumeAuditObserver(auditStore); // Important! The bus must be started before using it! await busControl.StartAsync(); try { do { string value = await Task.Run(() => { Console.WriteLine("Enter message (or quit to exit)"); Console.Write("> "); return(Console.ReadLine()); }); if ("quit".Equals(value, StringComparison.OrdinalIgnoreCase)) { break; } await busControl.Publish <MyMessage>(new MyMessage { Text = value }, ctx => { ctx.Headers.Set("kaspersheader", "1234"); }); }while (true); } finally { await busControl.StopAsync(); } }