Line data Source code
1 : using System.Linq;
2 : using Cqrs.Azure.ServiceBus;
3 : using Cqrs.Events;
4 : using Ninject.Modules;
5 :
6 : namespace Cqrs.Azure.EventHub.EventBus.Configuration
7 : {
8 : /// <summary>
9 : /// The <see cref="INinjectModule"/> for use with the Cqrs package.
10 : /// </summary>
11 : public class AzureEventPublisherModule<TAuthenticationToken> : NinjectModule
12 1 : {
13 : #region Overrides of NinjectModule
14 :
15 : /// <summary>
16 : /// Loads the module into the kernel.
17 : /// </summary>
18 1 : public override void Load()
19 : {
20 : bool isMessageSerialiserBound = Kernel.GetBindings(typeof(IAzureBusHelper<TAuthenticationToken>)).Any();
21 : if (!isMessageSerialiserBound)
22 : {
23 : Bind<IAzureBusHelper<TAuthenticationToken>>()
24 : .To<AzureBusHelper<TAuthenticationToken>>()
25 : .InSingletonScope();
26 : }
27 :
28 : RegisterEventPublisher();
29 : RegisterEventMessageSerialiser();
30 : }
31 :
32 : #endregion
33 :
34 : /// <summary>
35 : /// Register the Cqrs event publisher
36 : /// </summary>
37 1 : public virtual void RegisterEventPublisher()
38 : {
39 : Bind<IEventPublisher<TAuthenticationToken>>()
40 : .To<AzureEventBusPublisher<TAuthenticationToken>>()
41 : .InSingletonScope();
42 : }
43 :
44 : /// <summary>
45 : /// Register the Cqrs event handler message serialiser
46 : /// </summary>
47 1 : public virtual void RegisterEventMessageSerialiser()
48 : {
49 : bool isMessageSerialiserBound = Kernel.GetBindings(typeof(IMessageSerialiser<TAuthenticationToken>)).Any();
50 : if (!isMessageSerialiserBound)
51 : {
52 : Bind<IMessageSerialiser<TAuthenticationToken>>()
53 : .To<MessageSerialiser<TAuthenticationToken>>()
54 : .InSingletonScope();
55 : }
56 : }
57 : }
58 : }
|