Exemple #1
0
        public static IServiceCollection AddShardedEntities(this IServiceCollection serviceCollection,
                                                            Action <IShardedEntityRegistryBuilder> builderDelegate)
        {
            serviceCollection.AddSingleton(services =>
            {
                // TODO: this can just be registered and invoked on the other end...
                var actorSystem = services.GetService <ActorSystem>();
                // TODO: Clean up config so it's directed.
                var builder = new ShardedEntityRegistryBuilder(actorSystem, services.GetService <IConfiguration>(), services.GetService <Config>());

                builderDelegate.Invoke(builder);

                return(builder.Build(services));
            });

            return(serviceCollection);
        }
        public static IServiceCollection AddShardedEntities(this IServiceCollection services,
                                                            Action <IShardedEntityRegistryBuilder> builderDelegate)
        {
            if (WasCalled)
            {
                throw new Exception("ShardedEntitiesModule already called");
            }
            WasCalled = true;

            services.AddSingleton(x =>
            {
                // TODO: this can just be registered and invoked on the other end...
                var actorSystem = x.GetService <ActorSystem>();
                // TODO: Clean up config so it's directed.
                var builder = new ShardedEntityRegistryBuilder(actorSystem, x.GetService <IConfiguration>(), x.GetService <Config>());

                builderDelegate.Invoke(builder);

                return(builder.Build());
            });
            return(services);
        }