protected override void ConfigureIoc()
        {
            var actorSystemFactory = new ShardedActorSystemFactory(AkkaHostingPort, ActorSystemName, PersistenceSectionName, AkkaSeedNodes);
            var actorSystem        = actorSystemFactory.GetActorSystem();

            var subscriptionManager   = new ShardedSubscriptionManager(actorSystem);
            var eventPublisher        = new DistributedPubSubEventPublisher(actorSystem);
            var loggingEventPublisher = new LoggingEventPublisherDecorator(eventPublisher);

            var atomDocumentFactory = new ShardedAtomDocumentFactory(actorSystem);
            var atomFeedFactory     = new ShardedAtomFeedFactory(actorSystem, atomDocumentFactory, new ConfigurableAtomDocumentSettings(EntriesPerDocument));

            var settings = new AtomNotificationSettings(atomFeedFactory);

            var atomRetriever        = new AtomDocumentRetriever(atomFeedFactory, atomDocumentFactory);
            var loggingAtomRetriever = new LoggingAtomDocumentRetrieverDecorator(atomRetriever);

            IocContainer.Register <ISubscriptionManager>(subscriptionManager);
            IocContainer.Register <IEventPublisher>(loggingEventPublisher);
            IocContainer.Register <ShardedAtomDocumentFactory>(atomDocumentFactory);
            IocContainer.Register <ShardedAtomFeedFactory>(atomFeedFactory);
            IocContainer.Register <IAtomDocumentRetriever>(loggingAtomRetriever);

            IocContainer.RegisterMultiple <IOwinConfiguration, WebApiOwinConfiguration>(IocLifecycle.PerRequest);
        }
Beispiel #2
0
        protected override void ConfigureIoc()
        {
            var actorSystemFactory = new ShardedActorSystemFactory(AkkaHostingPort, ActorSystemName, PersistenceSectionName, AkkaSeedNodes);
            var actorSystem        = actorSystemFactory.GetActorSystem();
            var atomSettings       = new ConfigurableAtomDocumentSettings(EntriesPerDocument);

            var subscriptionManager   = new SubscriptionManager(actorSystem, atomSettings);
            var eventPublisher        = new EventPublisher(actorSystem);
            var loggingEventPublisher = new LoggingEventPublisherDecorator(eventPublisher);

            IocContainer.Register <IEventPublisher>(loggingEventPublisher);

            IocContainer.Register <ISubscriptionManager>(subscriptionManager);

            var documentRetriever = new LoggingAtomDocumentRetrieverDecorator(new AtomDocumentRetriever(subscriptionManager, actorSystem.Log, new InMemoryAtomDocumentRepository()));

            IocContainer.Register <IAtomDocumentRetriever>(documentRetriever);

            IocContainer.RegisterMultiple <IOwinConfiguration, WebApiOwinConfiguration>(IocLifecycle.PerRequest);
        }