Example #1
0
        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),
                });
            }
        }
Example #2
0
        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);
                }
            }
        }