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); }
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); }