IUnityContainer RegisterCommon( IUnityContainer container, IDictionary <RegistrationLookup, ContainerRegistration> registrations, bool isTest) { container //.RegisterTypeIfNot<IDatabaseInitializer<TestRepository>, MigrateDatabaseToLatestVersion<TestRepository, Configuration>>(registrations) .RegisterTypeIfNot <IDatabaseInitializer <TestRepository>, DropCreateDatabaseAlways <TestRepository> >(registrations) .UnsafeRegister(EFRepositoryBase.Registrar <TestRepository>(), registrations, isTest) // repositories registration // the repository used by the services .RegisterTypeIfNot <IRepository, TestRepository>( registrations, new HierarchicalLifetimeManager(), new InjectionProperty( nameof(IRepository.OptimisticConcurrencyStrategy), Program.OptimisticConcurrencyStrategy)) // a transient repository used by tests and anything else. .RegisterTypeIfNot <IRepository, TestRepository>( registrations, "transient", new InjectionProperty( nameof(IRepository.OptimisticConcurrencyStrategy), Program.OptimisticConcurrencyStrategy)) ; return(container); }
protected override void DoRegister( IUnityContainer container, IDictionary <RegistrationLookup, ContainerRegistration> registrations) { if (container == null) { throw new ArgumentNullException(nameof(container)); } if (registrations == null) { throw new ArgumentNullException(nameof(registrations)); } container .Register(EFRepositoryBase.Registrar <TestEFRepository>(), true) //.RegisterTypeIfNot<IDatabaseInitializer<TestEFRepository>, MigrateDatabaseToLatestVersion<TestEFRepository, Configuration>>(registrations, new InjectionConstructor(true)) //.RegisterTypeIfNot<IStoreIdProvider, SqlStoreIdProvider>(registrations, new ContainerControlledLifetimeManager()) .RegisterTypeIfNot <IDatabaseInitializer <TestEFRepository>, DropCreateDatabaseAlways <TestEFRepository> >(registrations) .RegisterTypeIfNot <IStoreIdProvider, HiLoStoreIdProvider>(registrations, new ContainerControlledLifetimeManager()) // the repository used by the HiLo generator .RegisterTypeIfNot <IRepository, TestEFRepository>(registrations, HiLoStoreIdProvider.HiLoGeneratorsRepositoryResolveName, new InjectionConstructor(new InjectionParameter <string>(ConnectionString))) // the repository used by the rest of the tests .RegisterTypeIfNot <IRepository, TestEFRepository>(registrations, new InjectionConstructor(new InjectionParameter <string>(ConnectionString))) ; }