/// <summary>
 /// Start configuration the application
 /// </summary>
 /// <param name="configure"><see cref="IConfigure">Configureation</see> to configure</param>
 /// <param name="name">Name of the application</param>
 /// <param name="builderCallback">Callback for building</param>
 /// <returns><see cref="IConfigure">Configuration</see> instance</returns>
 public static IConfigure    Application(this IConfigure configure, ApplicationName name, Func<IApplicationConfigurationBuilder, IApplicationConfigurationBuilder> builderCallback)
 {
     IApplicationConfigurationBuilder applicationConfigurationBuilder = new ApplicationConfigurationBuilder(name);
     applicationConfigurationBuilder = builderCallback(applicationConfigurationBuilder);
     var application = applicationConfigurationBuilder.Build();
     configure.Container.Bind(application);
     return configure;
 }
        public IConfiguration StartUp(IServiceCollection collection)
        {
            var builder   = new ApplicationConfigurationBuilder <ApplicationConfig>();
            var appConfig = builder.Build();

            collection.AddSingleton <IApplicationConfig>(appConfig);
            collection.AddSingleton <IAddMe, AddMe>();

            collection.AutoRegister(GetType().Assembly).AutoRegister(typeof(IAddMe).Assembly);
            return(builder.Configuration);
        }
        public IConfiguration StartUp(IServiceCollection collection)
        {
            Log.Logger = new LoggerConfiguration()
                         .WriteTo.Console(outputTemplate:
                                          "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj}{NewLine}{Exception}")
                         .CreateLogger();

            var builder   = new ApplicationConfigurationBuilder <ApplicationConfig>();
            var appConfig = builder.Build();

            collection.AddSingleton <IApplicationConfig>(appConfig);
            collection.AddSecretProvider(appConfig.SecretConfigurations);
            collection.AddSingleton <ICache>(new WaitToFinishMemoryCache(2, 10));
            collection.AutoRegister(GetType().Assembly);

            return(builder.Configuration);
        }
Exemple #4
0
        public IConfiguration StartUp(IServiceCollection collection)
        {
            Log.Information(Banner.Next());

            var builder   = new ApplicationConfigurationBuilder <ApplicationConfig>();
            var appConfig = builder.Build();

            collection.AddSingleton <IApplicationConfig>(appConfig);
            collection.AddDefaultAWSOptions(appConfig.AwsOptions);
            collection.AddAWSService <IAmazonDynamoDB>();
            collection.AddLazyProviderFor <IAmazonDynamoDB>();

            collection.AddSecretProvider(appConfig.SecretConfigurations);
            collection.AddSingleton <ICache>(new WaitToFinishMemoryCache(2, 10));
            collection.AutoRegister(GetType().Assembly);

            return(builder.Configuration);
        }
Exemple #5
0
        /// <inheritdoc/>
        public void Provide(IBindingProviderBuilder builder)
        {
            builder.Bind <IEventStore>().To <NullEventStore>().Singleton();
            builder.Bind <IEventSourceVersions>().To <NullEventSourceVersions>().Singleton();
            builder.Bind <IEventEnvelopes>().To <EventEnvelopes>();
            builder.Bind <IEventSequenceNumbers>().To <NullEventSequenceNumbers>();
            builder.Bind <IEventProcessors>().To <EventProcessors>();
            builder.Bind <IEventProcessorLog>().To <NullEventProcessorLog>();
            builder.Bind <IEventProcessorStates>().To <NullEventProcessorStates>();
            //builder.Bind<ICanSendCommittedEventStream>().To<NullCommittedEventStreamSender>().Singleton();

            var bridge = new CommittedEventStreamBridge();

            builder.Bind <ICommittedEventStreamBridge>().To(bridge);

            builder.Bind <ICanSendCommittedEventStream>().To <Kafka.BoundedContexts.CommittedEventStreamSender>().Singleton();

            var receiver = new CommittedEventStreamReceiver(bridge, new NullLogger());

            builder.Bind <ICanReceiveCommittedEventStream>().To(receiver);

            builder.Bind <ExecutionContextPopulator>().To((ExecutionContext, details) => { });
            builder.Bind <ClaimsPrincipal>().To(() => new ClaimsPrincipal(new ClaimsIdentity()));
            builder.Bind <CultureInfo>().To(() => CultureInfo.InvariantCulture);
            builder.Bind <ICallContext>().To(new DefaultCallContext());
            builder.Bind <ICanResolvePrincipal>().To(new DefaultPrincipalResolver());

            builder.Bind <BoundedContext>().To(Globals.BoundedContext);

            var applicationConfigurationBuilder = new ApplicationConfigurationBuilder("CBS")
                                                  .Application(applicationBuilder =>
                                                               applicationBuilder
                                                               .PrefixLocationsWith(Globals.BoundedContext)
                                                               .WithStructureStartingWith <BoundedContext>(_ => _
                                                                                                           .Required.WithChild <Feature>(f => f
                                                                                                                                         .WithChild <SubFeature>(c => c.Recursive)
                                                                                                                                         )
                                                                                                           )
                                                               )
                                                  .StructureMappedTo(_ => _
                                                                     .Domain("Infrastructure.Events.-^{Feature}.-^{SubFeature}*")
                                                                     .Domain("Domain.-^{Feature}.-^{SubFeature}*")
                                                                     .Domain("Domain.-^{Module}.-^{Feature}.-^{SubFeature}*")
                                                                     .Events("Events.-^{Feature}.-^{SubFeature}*")
                                                                     .Events("Events.-^{Module}.-^{Feature}.-^{SubFeature}*")
                                                                     .Read("Read.-^{Feature}.-^{SubFeature}*")
                                                                     .Read("Read.-^{Module}.-^{Feature}.-^{SubFeature}*")
                                                                     .Frontend("Web.-^{Feature}.-^{SubFeature}*")
                                                                     .Frontend("Web.-^{Module}.-^{Feature}.-^{SubFeature}*")
                                                                     );

            (IApplication application, IApplicationStructureMap structureMap)applicationConfiguration = applicationConfigurationBuilder.Build();

            builder.Bind <IApplication>().To(applicationConfiguration.application);
            builder.Bind <IApplicationStructureMap>().To(applicationConfiguration.structureMap);

            builder.Bind <Dolittle.ReadModels.MongoDB.Configuration>().To(new Dolittle.ReadModels.MongoDB.Configuration
            {
                Url             = "mongodb://localhost:27017",
                UseSSL          = false,
                DefaultDatabase = "Demo"
            });
            builder.Bind(typeof(IReadModelRepositoryFor <>)).To(typeof(ReadModelRepositoryFor <>));
        }
Exemple #6
0
        /// <inheritdoc/>
        public void Provide(IBindingProviderBuilder builder)
        {
            builder.Bind <IEventStore>().To <NullEventStore>().Singleton();
            builder.Bind <IEventSourceVersions>().To <NullEventSourceVersions>().Singleton();
            builder.Bind <IEventEnvelopes>().To <EventEnvelopes>();
            builder.Bind <IEventSequenceNumbers>().To <NullEventSequenceNumbers>();
            builder.Bind <IEventProcessors>().To <EventProcessors>();
            builder.Bind <IEventProcessorLog>().To <NullEventProcessorLog>();
            builder.Bind <IEventProcessorStates>().To <NullEventProcessorStates>();
            //builder.Bind<ICanSendCommittedEventStream>().To<NullCommittedEventStreamSender>().Singleton();

            var bridge = new CommittedEventStreamBridge();

            builder.Bind <ICommittedEventStreamBridge>().To(bridge);

            builder.Bind <ICanSendCommittedEventStream>().To <Infrastructure.Kafka.BoundedContexts.CommittedEventStreamSender>().Singleton();

            var receiver = new CommittedEventStreamReceiver(bridge, new NullLogger());

            builder.Bind <ICanReceiveCommittedEventStream>().To(receiver);

            builder.Bind <ExecutionContextPopulator>().To((ExecutionContext, details) => { });
            builder.Bind <ClaimsPrincipal>().To(() => new ClaimsPrincipal(new ClaimsIdentity()));
            builder.Bind <CultureInfo>().To(() => CultureInfo.InvariantCulture);
            builder.Bind <ICallContext>().To(new DefaultCallContext());
            builder.Bind <ICanResolvePrincipal>().To(new DefaultPrincipalResolver());

            var boundedContext = new BoundedContext("visualization");

            builder.Bind <BoundedContext>().To(boundedContext);

            var applicationConfigurationBuilder = new ApplicationConfigurationBuilder("OCFEV")
                                                  .Application(applicationBuilder =>
                                                               applicationBuilder
                                                               .PrefixLocationsWith(boundedContext)
                                                               .WithStructureStartingWith <BoundedContext>(_ => _
                                                                                                           .Required.WithChild <Feature>(f => f
                                                                                                                                         .WithChild <SubFeature>(c => c.Recursive)
                                                                                                                                         )
                                                                                                           )
                                                               )
                                                  .StructureMappedTo(_ => _
                                                                     .Domain("Infrastructure.Events.-^{Feature}.-^{SubFeature}*")
                                                                     .Domain("Domain.-^{Feature}.-^{SubFeature}*")
                                                                     .Domain("Domain.-^{Module}.-^{Feature}.-^{SubFeature}*")
                                                                     .Events("Events.-^{Feature}.-^{SubFeature}*")
                                                                     .Events("Events.-^{Module}.-^{Feature}.-^{SubFeature}*")
                                                                     .Events("ExternalEvents.-^{Feature}.-^{SubFeature}*")
                                                                     .Events("ExternalEvents.-^{Module}.-^{Feature}.-^{SubFeature}*")
                                                                     .Read("Read.-^{Feature}.-^{SubFeature}*")
                                                                     .Read("Read.-^{Module}.-^{Feature}.-^{SubFeature}*")
                                                                     .Frontend("Web.-^{Feature}.-^{SubFeature}*")
                                                                     .Frontend("Web.-^{Module}.-^{Feature}.-^{SubFeature}*")
                                                                     );

            (IApplication application, IApplicationStructureMap structureMap)applicationConfiguration = applicationConfigurationBuilder.Build();

            builder.Bind <IApplication>().To(applicationConfiguration.application);
            builder.Bind <IApplicationStructureMap>().To(applicationConfiguration.structureMap);
        }