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); }
public EventSystemFactory(ActorSystem actorSystem, IEnumerable<ISubsytemConfiguration> subsystemConfigurations) { this.actorSystem = actorSystem; shardedSubscriptionManager = new ShardedSubscriptionManager(actorSystem); distributedPubSubEventPublisher = new DistributedPubSubEventPublisher(actorSystem); foreach (var subsytemConfiguration in subsystemConfigurations) { subsytemConfiguration.Configure(actorSystem); } }