コード例 #1
0
        public static DynamicCacheServiceBuilder <TKey, TAggregate> AddDynamicCacheService <TKey, TAggregate>(this IServiceCollection services, Action <DynamicCacheServiceBuilderOptions> cacheServiceConfiguration)
            where TAggregate : class, IAggregate <TKey>, new()
        {
            var options = new DynamicCacheServiceBuilderOptions(services);

            cacheServiceConfiguration(options);

            var builder = new DynamicCacheServiceBuilder <TKey, TAggregate>(options);

            builder.Initialize();

            return(builder);
        }
コード例 #2
0
        public static DynamicCacheServiceBuilder <TKey, TAggregate> AddProducer <TKey, TAggregate, TProducer, TConfiguration>(this DynamicCacheServiceBuilder <TKey, TAggregate> builder, Action <TConfiguration> producerConfigurationBuilder)
            where TAggregate : class, IAggregate <TKey>, new()
            where TProducer : class, IProducer <TKey, TAggregate>
            where TConfiguration : class, IProducerConfiguration, new()
        {
            var configuration = new TConfiguration();

            producerConfigurationBuilder(configuration);

            builder.Options.ServiceCollection.AddSingleton(configuration);

            builder.Options.ServiceCollection.AddSingleton <IProducer <TKey, TAggregate>, TProducer>();

            return(builder);
        }
コード例 #3
0
        public static DynamicCacheServiceBuilder <TKey, TAggregate> AddBroker <TKey, TAggregate>(this DynamicCacheServiceBuilder <TKey, TAggregate> builder, Action <IBrokerageServiceConfiguration> brokerConfigurationBuilder)
            where TAggregate : class, IAggregate <TKey>, new()
        {
            var configuration = new BrokerageServiceConfiguration();

            brokerConfigurationBuilder(configuration);

            builder.Options.ServiceCollection.AddSingleton <IBrokerageServiceConfiguration>(configuration);

            builder.Options.ServiceCollection.AddSingleton <IBrokerageService, BrokerageService>();

            return(builder);
        }