Esempio n. 1
0
        public void PublishHelloEvent()
        {
            var @event = new HelloWorldEvent();

            var service = new HostedEventService(_eventBusMock.Object, _loggerMock.Object);

            service.PublishThroughEventBusAsync(@event);

            _eventBusMock.Verify(x => x.Publish(@event));
            _loggerMock.Verify(x => x.Information(It.IsAny <string>(), It.IsAny <Guid>(), It.IsAny <Event>()));
        }
Esempio n. 2
0
        public static void Main(string[] args)
        {
            var builder = new ContainerBuilder();

            builder.Register <IRedisClient>(c => new RedisClient("127.0.0.1", 6379)).InstancePerLifetimeScope();
            builder.RegisterType <RedisEventBus>().As <IEventBus>().InstancePerLifetimeScope();
            builder.RegisterType <NewtonsoftSerializer>().As <ISerializer>().InstancePerLifetimeScope();

            var container = builder.Build();

            using (var scope = container.BeginLifetimeScope())
            {
                var tasks = new List <Task>();
                while (_runs < 120)
                {
                    _runs++;
                    Console.WriteLine($"Run {_runs}");

                    var bus = scope.Resolve <IEventBus>();

                    var t = Task.Run(async() =>
                    {
                        var rnd    = new Random();
                        var factor = rnd.Next(1, 500);
                        Thread.Sleep(factor * 50);
                        var evt = new HelloWorldEvent($"factor {factor}");
                        Console.WriteLine(evt.Greeting);

                        await bus.Publish(evt);
                    });

                    tasks.Add(t);
                }
            }
            Console.WriteLine("Messages sent");
            Console.ReadLine();
        }