Line data Source code
1 : #region Copyright
2 : // // -----------------------------------------------------------------------
3 : // // <copyright company="cdmdotnet Limited">
4 : // // Copyright cdmdotnet Limited. All rights reserved.
5 : // // </copyright>
6 : // // -----------------------------------------------------------------------
7 : #endregion
8 :
9 : using System.Linq;
10 : using Cqrs.Azure.DocumentDb;
11 : using Cqrs.Azure.DocumentDb.Events;
12 : using Cqrs.Events;
13 : using Cqrs.Ninject.Azure.DocumentDb.Events;
14 : using Ninject.Modules;
15 :
16 : namespace Cqrs.Ninject.Azure.DocumentDb.Configuration
17 : {
18 : /// <summary>
19 : /// The <see cref="INinjectModule"/> for use with the Cqrs package.
20 : /// </summary>
21 : public class TestAzureDocumentDbEventStoreModule<TAuthenticationToken> : NinjectModule
22 1 : {
23 : #region Overrides of NinjectModule
24 :
25 : /// <summary>
26 : /// Loads the module into the kernel.
27 : /// </summary>
28 1 : public override void Load()
29 : {
30 : RegisterFactories();
31 : RegisterServices();
32 : RegisterCqrsRequirements();
33 : RegisterAzureHelpers();
34 : }
35 :
36 : #endregion
37 :
38 : /// <summary>
39 : /// Register the all factories
40 : /// </summary>
41 1 : public virtual void RegisterFactories()
42 : {
43 : Bind<IEventBuilder<TAuthenticationToken>>()
44 : .To<AzureDocumentDbEventBuilder<TAuthenticationToken>>()
45 : .InSingletonScope();
46 : Bind<IEventDeserialiser<TAuthenticationToken>>()
47 : .To<AzureDocumentDbEventDeserialiser<TAuthenticationToken>>()
48 : .InSingletonScope();
49 : }
50 :
51 : /// <summary>
52 : /// Register the all services
53 : /// </summary>
54 1 : public virtual void RegisterServices()
55 : {
56 : }
57 :
58 0 : public virtual void RegisterAzureHelpers()
59 : {
60 : if (!Kernel.GetBindings(typeof(IAzureDocumentDbHelper)).Any())
61 : {
62 : Bind<IAzureDocumentDbHelper>()
63 : .To<AzureDocumentDbHelper>()
64 : .InSingletonScope();
65 : }
66 : }
67 :
68 : /// <summary>
69 : /// Register the all Cqrs command handlers
70 : /// </summary>
71 1 : public virtual void RegisterCqrsRequirements()
72 : {
73 : Bind<IAzureDocumentDbEventStoreConnectionStringFactory>()
74 : .To<TestAzureDocumentDbEventStoreConnectionStringFactory>()
75 : .InSingletonScope();
76 :
77 : Bind<IEventStore<TAuthenticationToken>>()
78 : .To<AzureDocumentDbEventStore<TAuthenticationToken>>()
79 : .InSingletonScope();
80 : }
81 : }
82 : }
|