Line data Source code
1 : using Cqrs.EventStore;
2 : using Cqrs.Events;
3 : using Ninject.Modules;
4 :
5 : namespace Cqrs.Ninject.Configuration
6 : {
7 : /// <summary>
8 : /// The <see cref="INinjectModule"/> for use with the Cqrs package.
9 : /// </summary>
10 : public class EventStoreModule<TAuthenticationToken> : NinjectModule
11 1 : {
12 : #region Overrides of NinjectModule
13 :
14 : /// <summary>
15 : /// Loads the module into the kernel.
16 : /// </summary>
17 1 : public override void Load()
18 : {
19 : RegisterFactories();
20 : RegisterServices();
21 : RegisterCqrsRequirements();
22 : }
23 :
24 : #endregion
25 :
26 : /// <summary>
27 : /// Register the all factories
28 : /// </summary>
29 1 : public virtual void RegisterFactories()
30 : {
31 : Bind<EventStore.IEventBuilder<TAuthenticationToken>>()
32 : .To<EventFactory<TAuthenticationToken>>()
33 : .InSingletonScope();
34 : Bind<EventStore.IEventDeserialiser<TAuthenticationToken>>()
35 : .To<EventFactory<TAuthenticationToken>>()
36 : .InSingletonScope();
37 : }
38 :
39 : /// <summary>
40 : /// Register the all services
41 : /// </summary>
42 1 : public virtual void RegisterServices()
43 : {
44 : }
45 :
46 : /// <summary>
47 : /// Register the all Cqrs command handlers
48 : /// </summary>
49 1 : public virtual void RegisterCqrsRequirements()
50 : {
51 : Bind<IEventStoreConnectionHelper>()
52 : .To<EventStoreConnectionHelper<TAuthenticationToken>>()
53 : .InSingletonScope();
54 :
55 : Bind<IEventStore<TAuthenticationToken>>()
56 : .To<EventStore.EventStore<TAuthenticationToken>>()
57 : .InSingletonScope();
58 : }
59 : }
60 : }
|