/// <summary> /// This method register global services provided to to the module. /// </summary> protected override void ConfigureContainer() { logger.Debug("Configure Prism Container"); base.ConfigureContainer(); try { Container.RegisterType <IRegionNavigationContentLoader, ScopedRegionNavigationContentLoader>(new ContainerControlledLifetimeManager()); /* * IUnityContainer unityContainer, IDataServices dataServices, IDialogService dialog, ISqlExecutor executor) */ string connParams = ConnectionString; object[] dbParams = new object[1]; dbParams[0] = connParams; InjectionConstructor injectionConstructorDb = new InjectionConstructor(dbParams); Container.RegisterType <ISqlExecutor, OleDbExecutor>(new ContainerControlledLifetimeManager(), injectionConstructorDb); object[] values = new object[1]; values[0] = Container.Resolve <ISqlExecutor>(); InjectionConstructor injectionConstructor = new InjectionConstructor(values); logger.Debug("Registering types in the dependency injection..."); Container.RegisterType <IDataServices, DataServiceImplementation>(new ContainerControlledLifetimeManager(), injectionConstructor); var currentValue = new object[3]; ISqlExecutor sqlExecutor = new OleDbExecutor(); IDataServices dataServices = new DataServiceImplementation(sqlExecutor); currentValue[0] = Container.Resolve <IUnityContainer>(); currentValue[1] = Container.Resolve <IDataServices>(); currentValue[2] = Container.Resolve <ISqlExecutor>(); var requestControllerInjected = new object[1]; requestControllerInjected[0] = Container; InjectionConstructor injectionContainer = new InjectionConstructor(requestControllerInjected); InjectionConstructor injectionIntoViewModel = new InjectionConstructor(currentValue); Container.RegisterType <RequestController>(new ContainerControlledLifetimeManager(), injectionContainer); Container.RegisterType <TestMainWindowViewModel>(injectionIntoViewModel); // The dal service is used to access to the database logger.Debug("Resolving configuration container"); } catch (Exception e) { logger.Error("Error during the container configuration. KarveWin cannot start! Reason:" + e.Message); MessageBox.Show(e.Message, "Error during the container configuration. KarveWin cannot start!", MessageBoxButton.OK); } }
/// <summary> /// Setup the query executor /// </summary> /// <returns>An instance of the query executor</returns> public ISqlExecutor SetupSqlQueryExecutor() { ISqlExecutor executor = new OleDbExecutor(TestConnectionString); return(executor); }