/// <summary> /// Entrypoint /// </summary> static void Main(string[] args) { /** * Logging is important, so first set up a logger factory */ using var loggerFactory = LoggerFactory.Create(configure => { configure.AddConsole().SetMinimumLevel(LogLevel.Information); }); /** * Set up a context using environment variables */ using var context = new RabbitMqContextBuilder() .ReadFromEnvironmentVariables() .CreateContext(); /** * Build a host using the loggerfactory, context and register any event listeners in the package. */ using var hostBuilder = new MicroserviceReplayHostBuilder() .SetLoggerFactory(loggerFactory) .WithBusContext(context) .UseConventions(); /** * Now create the host and start it */ using IMicroserviceReplayHost host = (MicroserviceReplayHost)hostBuilder.CreateHost(); host.Start(); /** * Start spamming events to the auditlogger as a demonstration */ StartSpammingEvents(context); /** * Now let's start replaying, first create a replay command */ Guid processId = Guid.NewGuid(); ReplayEventsCommand replayEventsCommand = new ReplayEventsCommand(DateTime.Now.ToFileTimeUtc(), processId) { Types = new List <string> { "AnimalAddedEvent" } }; /** * Create the publishers */ ICommandPublisher publisher = new CommandPublisher(context); IReplayCommandPublisher replayCommandPublisher = new ReplayCommandPublisher(host, publisher, loggerFactory); /** * Commence a replay! */ replayCommandPublisher.Initiate(replayEventsCommand); }
public void CreateHostReturnsReplayHost() { // Arrange using MicroserviceReplayHostBuilder hostBuilder = new MicroserviceReplayHostBuilder(); // Act IMicroserviceHost host = hostBuilder.CreateHost(); // Assert Assert.IsInstanceOfType(host, typeof(MicroserviceReplayHost)); }