main
 1using System;
 2using gorilla.infrastructure.container;
 3using gorilla.utility;
 4
 5namespace solidware.financials.infrastructure
 6{
 7    public class InMemoryServiceBus : ServiceBus
 8    {
 9        DependencyRegistry registry;
10
11        public InMemoryServiceBus(DependencyRegistry registry)
12        {
13            this.registry = registry;
14        }
15
16        public void publish<Message>() where Message : new()
17        {
18            publish(new Message());
19        }
20
21        public void publish<Message>(Message item) where Message : new()
22        {
23            registry.get_all<Handles<Message>>().each(x => x.handle(item));
24        }
25
26        public void publish<Message>(Action<Message> configure) where Message : new()
27        {
28            var message = new Message();
29            configure(message);
30            publish(message);
31        }
32    }
33}