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}