Exemple #1
0
 public static void AppInit_Repositories_SnapshotDomainRepository_MSMQ(object sender, AppInitEventArgs e)
 {
     UnityContainer c = e.ObjectContainer.GetWrappedContainer<UnityContainer>();
     c.RegisterType<IEventBus, MSMQEventBus>(new ContainerControlledLifetimeManager(), new InjectionConstructor(Helper.CreateMessageQueueName(EventBus_MessageQueue), false))
         .RegisterType<IStorageMappingResolver, XmlStorageMappingResolver>(new InjectionConstructor("SnapshotDomainRepository_StorageMappings.xml"))
         .RegisterType<IStorage, SqlStorage>(new InjectionConstructor(CQRSTestDB_SQLExpress_ConnectionString, new ResolvedParameter<IStorageMappingResolver>()))
         .RegisterType<IDomainRepository, SnapshotDomainRepository>(new InjectionConstructor(new ResolvedParameter<IStorage>(), new ResolvedParameter<IEventBus>()));
 }
Exemple #2
0
 public static void AppInit_Repositories_SnapshotDomainRepository_SaveButFailPubToMSMQ(object sender, AppInitEventArgs e)
 {
     UnityContainer c = e.ObjectContainer.GetWrappedContainer<UnityContainer>();
     c.RegisterType<IMessageDispatcher, MessageDispatcher>()
         .RegisterType<IEventBus, MSMQEventBus>(new ContainerControlledLifetimeManager(), new InjectionConstructor(EventBus_MessageQueue, false)) // register an invalid queue here
         .RegisterType<IStorageMappingResolver, XmlStorageMappingResolver>(new InjectionConstructor("SnapshotDomainRepository_StorageMappings.xml"))
         .RegisterType<IStorage, SqlStorage>(new InjectionConstructor(CQRSTestDB_SQLExpress_ConnectionString, new ResolvedParameter<IStorageMappingResolver>()))
         .RegisterType<IDomainRepository, SnapshotDomainRepository>(new InjectionConstructor(new ResolvedParameter<IStorage>(), new ResolvedParameter<IEventBus>()));
 }
Exemple #3
0
        public static void AppInit_Repositories_NHibernateRepository(object sender, AppInitEventArgs e)
        {
            UnityContainer c = e.ObjectContainer.GetWrappedContainer<UnityContainer>();
            NHibernate.Cfg.Configuration nhibernateCfg = new NHibernate.Cfg.Configuration();

            nhibernateCfg.Properties["connection.driver_class"] = "NHibernate.Driver.SqlClientDriver";
            nhibernateCfg.Properties["connection.provider"] = "NHibernate.Connection.DriverConnectionProvider";
            nhibernateCfg.Properties["connection.connection_string"] = ClassicTestDB_SQLExpress_ConnectionString;
            nhibernateCfg.Properties["dialect"] = "NHibernate.Dialect.MsSql2008Dialect";
            nhibernateCfg.Properties["proxyfactory.factory_class"] = "NHibernate.Bytecode.DefaultProxyFactoryFactory, NHibernate";
            //nhibernateCfg.Properties["linqtohql.generatorsregistry"] ="Apworks.Repositories.NHibernate.ExtendedLinqToHqlGeneratorsRegistry, Apworks.Repositories.NHibernate";
            nhibernateCfg.AddAssembly(typeof(Customer).Assembly);

            c.RegisterInstance<NHibernate.Cfg.Configuration>(nhibernateCfg)
                .RegisterType<IRepositoryContext, NHibernateContext>(new InjectionConstructor(new ResolvedParameter<NHibernate.Cfg.Configuration>()))
                //.RegisterType<IRepository<Customer>, NHibernateRepository<Customer>>(new InjectionConstructor(new ResolvedParameter<IRepositoryContext>()));
                .RegisterType<IRepository<Customer>, NHibernateRepository<Customer>>();
        }
Exemple #4
0
        public static void AppInit_Repositories_RegularEventPublisherDomainRepository_MSMQ(object sender, AppInitEventArgs e)
        {
            UnityContainer c = e.ObjectContainer.GetWrappedContainer<UnityContainer>();

            NHibernate.Cfg.Configuration nhibernateCfg = new NHibernate.Cfg.Configuration();
            nhibernateCfg.Properties["connection.driver_class"] = "NHibernate.Driver.SqlClientDriver";
            nhibernateCfg.Properties["connection.provider"] = "NHibernate.Connection.DriverConnectionProvider";
            nhibernateCfg.Properties["connection.connection_string"] = CQRSTestDB_SQLExpress_ConnectionString;
            nhibernateCfg.Properties["dialect"] = "NHibernate.Dialect.MsSql2008Dialect";
            nhibernateCfg.Properties["proxyfactory.factory_class"] = "NHibernate.Bytecode.DefaultProxyFactoryFactory, NHibernate";
            //nhibernateCfg.Properties["linqtohql.generatorsregistry"] = "Apworks.Repositories.NHibernate.ExtendedLinqToHqlGeneratorsRegistry, Apworks.Repositories.NHibernate";
            nhibernateCfg.AddAssembly(typeof(SourcedCustomer).Assembly);

            c.RegisterInstance<NHibernate.Cfg.Configuration>(nhibernateCfg)
                .RegisterType<IEventBus, MSMQEventBus>(new ContainerControlledLifetimeManager(), new InjectionConstructor(Helper.CreateMessageQueueName(EventBus_MessageQueue), true))
                .RegisterType<IRepositoryContext, NHibernateContext>(new InjectionConstructor(new ResolvedParameter<NHibernate.Cfg.Configuration>()))
                .RegisterType<IRepository<SourcedCustomer>, NHibernateRepository<SourcedCustomer>>()
                .RegisterType<IDomainRepository, RegularEventPublisherDomainRepository>(new InjectionConstructor(new ResolvedParameter<IRepositoryContext>(), new ResolvedParameter<IEventBus>()));
        }
Exemple #5
0
 public static void AppInit_Repositories_EventSourcedDomainRepositoryWithDirectEventBusButWithoutSnapshotProvider(object sender, AppInitEventArgs e)
 {
     UnityContainer c = e.ObjectContainer.GetWrappedContainer<UnityContainer>();
     c.RegisterType<IMessageDispatcher, MessageDispatcher>()
         .RegisterType<IEventBus, DirectEventBus>(new ContainerControlledLifetimeManager(), new InjectionConstructor(new ResolvedParameter<IMessageDispatcher>()))
         .RegisterType<IStorageMappingResolver, XmlStorageMappingResolver>(new InjectionConstructor("EventSourcedRepository_StorageMappings.xml"))
         .RegisterType<IDomainEventStorage, SqlDomainEventStorage>(new InjectionConstructor(CQRSTestDB_SQLExpress_ConnectionString, new ResolvedParameter<IStorageMappingResolver>()))
         .RegisterType<ISnapshotProvider, SuppressedSnapshotProvider>()
         .RegisterType<IDomainRepository, EventSourcedDomainRepository>(new InjectionConstructor(new ResolvedParameter<IDomainEventStorage>(), new ResolvedParameter<IEventBus>(), new ResolvedParameter<ISnapshotProvider>()));
 }
Exemple #6
0
 public static void AppInit_Repositories_EventSourcedDomainRepositoryWithMSMQBusAndSnapshotProvider(object sender, AppInitEventArgs e)
 {
     UnityContainer c = e.ObjectContainer.GetWrappedContainer<UnityContainer>();
     c.RegisterType<IStorageMappingResolver, XmlStorageMappingResolver>(new InjectionConstructor("EventSourcedRepository_StorageMappings.xml"))
         .RegisterType<IStorage, SqlStorage>("eventStore", new InjectionConstructor(CQRSTestDB_SQLExpress_ConnectionString, new ResolvedParameter<IStorageMappingResolver>()))
         .RegisterType<IStorage, SqlStorage>("snapshotStore", new InjectionConstructor(CQRSTestDB_SQLExpress_ConnectionString, new ResolvedParameter<IStorageMappingResolver>()))
         .RegisterType<IEventBus, MSMQEventBus>(new ContainerControlledLifetimeManager(), new InjectionConstructor(Helper.CreateMessageQueueName(EventBus_MessageQueue), true))
         .RegisterType<IDomainEventStorage, SqlDomainEventStorage>(new InjectionConstructor(CQRSTestDB_SQLExpress_ConnectionString, new ResolvedParameter<IStorageMappingResolver>()))
         .RegisterType<ISnapshotProvider, EventNumberSnapshotProvider>(new InjectionConstructor(new ResolvedParameter<IStorage>("eventStore"), new ResolvedParameter<IStorage>("snapshotStore"), new InjectionParameter<SnapshotProviderOption>(SnapshotProviderOption.Immediate), new InjectionParameter<int>(5)))
         .RegisterType<IDomainRepository, EventSourcedDomainRepository>(new InjectionConstructor(new ResolvedParameter<IDomainEventStorage>(), new ResolvedParameter<IEventBus>(), new ResolvedParameter<ISnapshotProvider>()));
 }
Exemple #7
0
 public static void AppInit_MongoDBRepository(object sender, AppInitEventArgs e)
 {
     UnityContainer c = e.ObjectContainer.GetWrappedContainer<UnityContainer>();
     c.RegisterType<IMongoDBRepositoryContextSettings, MongoDBRepositoryContextSettings>(new ContainerControlledLifetimeManager())
         .RegisterType<IRepositoryContext, MongoDBRepositoryContext>()
         .RegisterType<IRepository<Customer>, MongoDBRepository<Customer>>();
     MongoDBRepositoryContext.RegisterConventions();
 }
Exemple #8
0
 public static void AppInit_MessageDispatcher(object sender, AppInitEventArgs e)
 {
     UnityContainer c = e.ObjectContainer.GetWrappedContainer<UnityContainer>();
     c.RegisterType<IMessageDispatcher, Apworks.Bus.MessageDispatcher>();
 }
Exemple #9
0
 public static void AppInit_ExceptionHandling_InvalidStorage(object sender, AppInitEventArgs e)
 {
     UnityContainer c = e.ObjectContainer.GetWrappedContainer<UnityContainer>();
     c.RegisterType<IStorageMappingResolver, XmlStorageMappingResolver>(new InjectionConstructor("ExceptionHandlingInvalidStorage.xml"))
         .RegisterType<IStorage, SqlStorage>(new InjectionConstructor(CQRSTestDB_SQLExpress_ConnectionString, new ResolvedParameter<IStorageMappingResolver>()));
 }
Exemple #10
0
 public static void AppInit_EventStore_SqlExpress(object sender, AppInitEventArgs e)
 {
     UnityContainer c = e.ObjectContainer.GetWrappedContainer<UnityContainer>();
     c.RegisterType<IStorageMappingResolver, XmlStorageMappingResolver>("DomainEventStorageMappingResolver", new InjectionConstructor("StorageMappings.xml"))
         .RegisterType<IDomainEventStorage, SqlDomainEventStorage>(new InjectionConstructor(CQRSTestDB_SQLExpress_ConnectionString, new ResolvedParameter<IStorageMappingResolver>("DomainEventStorageMappingResolver")));
 }
Exemple #11
0
 public static void AppInit_EFRepository(object sender, AppInitEventArgs e)
 {
     UnityContainer c = e.ObjectContainer.GetWrappedContainer<UnityContainer>();
     c.RegisterType<DbContext, EFTestContext>()
         .RegisterType<IRepositoryContext, EntityFrameworkRepositoryContext>()
         .RegisterType<IRepository<EFCustomer>, EntityFrameworkRepository<EFCustomer>>()
         .RegisterType<IRepository<EFCustomerNote>, EntityFrameworkRepository<EFCustomerNote>>();
 }