private static void RegisterCommandHandlers(IDependencyContainerBuilder builder)
        {
            var commonDecorators = new[]
            {
                // typeof(LogCommandDecorator<>),
                // typeof(AuthorizationCommandDecorator<>),
                typeof(ValidationCommandDecorator <>),
                // typeof(ReadCommittedTransactionCommandDecorator<>)
            };

            builder.RegisterCommandHandlerWithDecorators <CreateTest, CreateTestHandler>(commonDecorators);
            builder.RegisterCommandHandlerWithDecorators <UpdateTest, UpdateTestHandler>(commonDecorators);
            builder.RegisterCommandHandlerWithDecorators <DeleteTest, DeleteTestHandler>(commonDecorators);
        }
        public void Initialize(IDependencyContainerBuilder builder)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            Uri            endpoint = new Uri(ConfigurationManager.AppSettings["DocumentDbEndpoint"]);
            string         key      = ConfigurationManager.AppSettings["DocumentDbKey"];
            DocumentClient client   = new DocumentClient(endpoint, key);

            builder.RegisterInstance(typeof(DocumentClient), client);

            builder.RegisterExecutionContextScope <ITestStore, TestStore>();
        }
        private void RegisterQueryHandlers(IDependencyContainerBuilder builder)
        {
            var commonDecorators = new[]
            {
                typeof(LogQueryDecorator <,>),
                // typeof(AuthorizationQueryDecorator<,>),
                typeof(ValidationQueryDecorator <,>)
            };

            builder
            .RegisterQueryHandlerWithDecorators
            <QueryTests, QueryTestsResponse, QueryTestsHandler>(commonDecorators);

            builder
            .RegisterQueryHandlerWithDecorators
            <GetTest, GetTestResponse, GetTestHandler>(commonDecorators);
        }
 private void RegisterEventHandlers(IDependencyContainerBuilder builder)
 {
     builder.RegisterDomainEventHandler <TestCreated, TestCreatedHandler>();
     builder.RegisterDomainEventHandler <TestUpdated, TestUpdatedHandler>();
     builder.RegisterDomainEventHandler <TestDeleted, TestDeletedHandler>();
 }
 private static void RegisterDataContext(IDependencyContainerBuilder builder)
 {
     builder.RegisterExecutionContextScope <ReadModelDataContext>();
 }
 public void Initialize(IDependencyContainerBuilder builder)
 {
     RegisterDataContext(builder);
     RegisterQueryHandlers(builder);
     RegisterEventHandlers(builder);
 }
 public void Initialize(IDependencyContainerBuilder builder)
 {
     RegisterCommandHandlers(builder);
 }