public void DispatchSpotCreated() { using (IEventDispatcher dispatcher = new RabbitMQEventDispatcher.RabbitMQEventDispatcher( host: rabbitConfig.host, exchangeName: rabbitConfig.exchange, username: rabbitConfig.username, password: rabbitConfig.password, vhost: rabbitConfig.vhost, port: rabbitConfig.port )) { var spotCreated = new SpotCharterCreated(new SpotCharterId(Guid.NewGuid()), new BaseDomainObjects.Entities.Login("stefano"), DateTime.Now, new CounterpartyId(Guid.NewGuid()), "Counterparty", new VesselId(Guid.NewGuid()), "Vessel", new CargoQuantity("MT", 5000)); var freight = new FreightRateChanged(new SpotCharterId(Guid.NewGuid()), new BaseDomainObjects.Entities.Login("stefano"), 1, new SpotCharterDomain.ValueObjects.FreightRate(100000)); BaseDomainObjects.IEvent <SpotCharterId> @event = spotCreated; var dispatchEvent = new DispatchEvent() { EventName = @event.EventName, Id = @event.Id, Source = @event.Source, Version = @event.Version, Timestamp = spotCreated.CharterpartyDate, Payload = JsonConvert.SerializeObject(spotCreated), }; dispatcher.Publish(dispatchEvent); @event = freight; dispatcher.Publish(new DispatchEvent() { EventName = @event.EventName, Id = @event.Id, Source = @event.Source, Version = @event.Version, Timestamp = DateTime.Now, Payload = JsonConvert.SerializeObject(freight), }); } }
public static void Main(string[] args) { IEventDispatcherRepository repository = new SpotCharterEventSourceRepository("SpotCharters", "spot_user", "spot_user", applicationName: "EventDispatcher", host: "sql-db"); using (IEventDispatcher dispatcher = new RabbitMQEventDispatcher.RabbitMQEventDispatcher("message-broker", "/test", username: "******", password: "******", exchangeName: "chartering.spot")) { Guid eventId = Guid.Empty; DispatchEvent eventToDispatch = null; try { while (repository.GetNextEventToDispatch(out eventId, out eventToDispatch)) { dispatcher.Publish(eventToDispatch); repository.CommitDispatchedEvent(eventId); } } catch (Exception ex) { System.Console.Error.WriteLine(ex); } } }