예제 #1
0
        private static IContainer initializeContainer()
        {
            var container = new CastleWindsorContainer();

            IoC.InitializeWith(container);

            container.WindsorContainer.AddFacility <EventRegisterFacility>();
            container.WindsorContainer.AddFacility <SerializationFacility>();

            //required to used abstract factory pattern with container
            container.WindsorContainer.AddFacility <TypedFactoryFacility>();

            //Register container into container to avoid any reference to dependency in code
            container.RegisterImplementationOf(container.DowncastTo <IContainer>());
            return(container);
        }
예제 #2
0
        public static IRegister CreateRegister(string name)
        {
            switch (name.ToLower())
            {
            case LightInject:
                return(LightInjectContainer.Create());

            case Castle:
                return(CastleWindsorContainer.Create());

            case MsDi:
                return(MsDiRegister.Create());

            default:
                throw new ArgumentOutOfRangeException(nameof(name));
            }
        }
예제 #3
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            var container = new CastleWindsorContainer();

            IJobFactory jobFactory = new WindsorJobFactory(container);


            container.RegisterJobs(jobFactory);
            container.Register();

            var controllerFactory = new ControllerFactory(container);

            ControllerBuilder.Current.SetControllerFactory(controllerFactory);
        }
예제 #4
0
        public void InitializeForStartup(Action <IContainer> registrationAction)
        {
            Thread.CurrentThread.CurrentCulture   = new CultureInfo("en-US");
            Thread.CurrentThread.CurrentUICulture = new CultureInfo("en");

            updateGoDiagramKey();

            var container = new CastleWindsorContainer();

            IoC.InitializeWith(container);
            IoC.RegisterImplementationOf <IContainer>(container);
            initFacilities(container);

            container.RegisterImplementationOf(getCurrentContext());

            container.AddRegister(x => x.FromType <PresenterRegister>());
            container.AddRegister(x => x.FromType <UIRegister>());

            // Global Singleton Objects
            container.Register <IExceptionManager, ExceptionManager>(LifeStyle.Singleton);

            container.RegisterImplementationOf(this);

            container.Register <IEventPublisher, EventPublisher>(LifeStyle.Singleton);
            container.Register <IFileLocker, FileLocker>(LifeStyle.Singleton);
            container.Register <ILogger, MoBiLogger>(LifeStyle.Singleton);
            container.Register <ISplashScreen, SplashScreen>();
            container.Register <ISplashScreenPresenter, SplashScreenPresenter>();
            container.Register <IProgressUpdater, ProgressUpdater>();
            container.RegisterFactory <IProgressManager>();

            container.Register <IMoBiConfiguration, IApplicationConfiguration, MoBiConfiguration>(LifeStyle.Singleton);

            registerRunOptionsIn(container);

            EnvironmentHelper.ApplicationName = () => "mobi";

            registrationAction?.Invoke(container);
        }
예제 #5
0
        private static void initializeDependency()
        {
            var container = new CastleWindsorContainer();

            container.RegisterImplementationOf((IContainer)container);
            container.WindsorContainer.AddFacility <EventRegisterFacility>();
            container.WindsorContainer.AddFacility <TypedFactoryFacility>();

            container.Register <IObjectBaseFactory, ObjectBaseFactory>(LifeStyle.Singleton);
            container.AddRegister(x => x.FromType <PresenterRegister>());
            container.AddRegister(x => x.FromType <UIRegister>());
            container.AddRegister(x => x.FromType <CoreRegister>());
            container.AddRegister(x => x.FromType <TestRegister>());
            container.AddRegister(x => x.FromType <InfrastructureRegister>());
            container.AddRegister(x => x.FromType <InfrastructureExportRegister>());
            container.AddRegister(x => x.FromType <UIImporterRegister>());
            container.AddRegister(x => x.FromType <PresentationImporterRegister>());
            container.AddRegister(x => x.FromType <InfrastructureSerializationRegister>());

            container.Register <IDimensionFactory, DimensionFactory>(LifeStyle.Singleton);
            container.Register <IApplicationController, ApplicationController>(LifeStyle.Singleton);
            container.Register <ICompression, SharpLibCompression>();
            container.Register <IEventPublisher, EventPublisher>(LifeStyle.Singleton);
            container.Register <IStringCompression, StringCompression>(LifeStyle.Singleton);
            container.Register <ILogger, OSPLogger>(LifeStyle.Singleton);
            container.RegisterImplementationOf(getCurrentContext());

            container.Register(typeof(IRepository <>), typeof(ImplementationRepository <>));

            IoC.InitializeWith(container);

            var register = new CoreSerializerRegister();

            IoC.Container.AddRegister(x => x.FromInstance(register));
            register.PerformMappingForSerializerIn(IoC.Container);
        }
예제 #6
0
 private static void initFacilities(CastleWindsorContainer container)
 {
     container.WindsorContainer.AddFacility <EventRegisterFacility>();
     container.WindsorContainer.AddFacility <TypedFactoryFacility>();
 }
        public override void GlobalContext()
        {
            if (IoC.Container != null)
            {
                return;
            }

            base.GlobalContext();
            var container = new CastleWindsorContainer();

            IoC.InitializeWith(container);
            IoC.RegisterImplementationOf(IoC.Container);

            container.WindsorContainer.AddFacility <TypedFactoryFacility>();
            container.Register <IObjectBaseFactory, ObjectBaseFactory>(LifeStyle.Singleton);
            container.Register <IDimensionFactory, DimensionFactoryForIntegrationTests>(LifeStyle.Singleton);
            container.Register <IGroupRepository, GroupRepositoryForSpecs>(LifeStyle.Singleton);
            container.Register <IDisplayNameProvider, DisplayNameProvider>();
            container.Register <SimulationHelperForSpecs, SimulationHelperForSpecs>();
            container.Register <ModelHelperForSpecs, ModelHelperForSpecs>();
            container.Register <ConcentrationBaseModelHelperForSpecs, ConcentrationBaseModelHelperForSpecs>();
            container.Register <IReactionDimensionRetriever, ReactionDimensionRetrieverForSpecs>(LifeStyle.Singleton);
            container.Register(typeof(IRepository <>), typeof(ImplementationRepository <>));
            container.RegisterImplementationOf(A.Fake <IStartOptions>());

            var stringCompression = A.Fake <IStringCompression>();

            A.CallTo(() => stringCompression.Compress(A <string> ._)).ReturnsLazily(x => x.GetArgument <string>(0));
            A.CallTo(() => stringCompression.Decompress(A <string> ._)).ReturnsLazily(x => x.GetArgument <string>(0));
            container.RegisterImplementationOf(stringCompression);

            container.RegisterImplementationOf(A.Fake <IObjectTypeResolver>());
            container.RegisterImplementationOf(A.Fake <IDisplayUnitRetriever>());
            container.RegisterImplementationOf(A.Fake <IDataRepositoryTask>());
            container.RegisterImplementationOf(A.Fake <IOSPSuiteExecutionContext>());
            container.RegisterImplementationOf(A.Fake <IProjectRetriever>());
            container.RegisterImplementationOf(A.Fake <IApplicationDiscriminator>());
            container.RegisterImplementationOf(A.Fake <IRelatedItemDescriptionCreator>());
            container.RegisterImplementationOf(A.Fake <IJournalDiagramManagerFactory>());
            container.RegisterImplementationOf(A.Fake <ICoreUserSettings>());
            container.RegisterImplementationOf(A.Fake <ICoreSimulationFactory>());

            var applicationConfiguration = A.Fake <IApplicationConfiguration>();

            A.CallTo(() => applicationConfiguration.Product).Returns(Origins.Other);
            container.RegisterImplementationOf(applicationConfiguration);

            initGroupRepository();

            var progressMananager = A.Fake <IProgressManager>();

            A.CallTo(() => progressMananager.Create()).Returns(A.Fake <IProgressUpdater>());
            container.RegisterImplementationOf(progressMananager);

            using (container.OptimizeDependencyResolution())
            {
                container.AddRegister(x => x.FromType <CoreRegister>());
                container.AddRegister(x => x.FromType <InfrastructureRegister>());
                var register = new CoreSerializerRegister();
                container.AddRegister(x => x.FromInstance(register));
                register.PerformMappingForSerializerIn(container);
            }

            initializeDimensions();

            Environment.CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory;
        }
예제 #8
0
 protected override void Context()
 {
     _underlyingContainer = new WindsorContainer();
     sut = new CastleWindsorContainer(_underlyingContainer);
 }
예제 #9
0
 protected override void Context()
 {
     _underlyingContainer = new WindsorContainer();
     sut = new CastleWindsorContainer(_underlyingContainer);
     sut.Register <IAnInterface, AnImplementation>();
 }
예제 #10
0
        public override void GlobalContext()
        {
            base.GlobalContext();

            var        windsorContainer = new CastleWindsorContainer();
            IContainer container        = windsorContainer;

            windsorContainer.WindsorContainer.AddFacility <TypedFactoryFacility>();
            IoC.InitializeWith(container);
            IoC.RegisterImplementationOf(container);

            //need to register these services for which the default implementation is in the UI
            using (container.OptimizeDependencyResolution())
            {
                container.RegisterImplementationOf(new SynchronizationContext());
                container.Register <IExceptionManager, ExceptionManagerForSpecs>(LifeStyle.Singleton);
                container.RegisterImplementationOf(A.Fake <IUserSettings>());
                container.RegisterImplementationOf(A.Fake <IDialogCreator>());
                container.RegisterImplementationOf(A.Fake <IProgressUpdater>());
                container.RegisterImplementationOf(A.Fake <IMoBiHistoryManager>());
                container.RegisterImplementationOf(A.Fake <IXmlContentSelector>());
                container.RegisterImplementationOf(A.Fake <IDiagramModel>());
                container.RegisterImplementationOf(A.Fake <IDiagramTask>());
                container.RegisterImplementationOf(A.Fake <IMRUProvider>());
                container.RegisterImplementationOf(A.Fake <IFileLocker>());
                container.RegisterImplementationOf(A.Fake <IDisplayUnitRetriever>());
                container.RegisterImplementationOf(A.Fake <IJournalDiagramManagerFactory>());
                container.RegisterImplementationOf(A.Fake <ISimulationDiagramManager>());
                container.RegisterImplementationOf(A.Fake <ISpatialStructureDiagramManager>());
                container.RegisterImplementationOf(A.Fake <IMoBiReactionDiagramManager>());
                container.RegisterImplementationOf(A.Fake <ISimulationDiagramView>());
                container.RegisterImplementationOf(A.Fake <IContainerBaseLayouter>());
                container.RegisterImplementationOf(A.Fake <ILayerLayouter>());

                container.Register <IDiagramModelToXmlMapper, BatchDiagramModelToXmlMapper>();
                container.Register <IMoBiConfiguration, MoBiConfiguration>(LifeStyle.Singleton);
                container.Register <IEventPublisher, EventPublisher>(LifeStyle.Singleton);
                IHeavyWorkManager heavyWorkManager = new HeavyWorkManagerForSpecs();
                container.RegisterImplementationOf(heavyWorkManager);
                container.RegisterImplementationOf(A.Fake <IProgressManager>());
                var config = container.Resolve <IMoBiConfiguration>();
                container.RegisterImplementationOf((IApplicationConfiguration)config);

                var register = new SerializerRegister();
                container.AddRegister(x =>
                {
                    x.FromType <CoreRegister>();
                    x.FromType <Core.CoreRegister>();
                    x.FromInstance(new PresentationRegister(false));
                    x.FromType <SBMLImportRegister>();
                    x.FromType <InfrastructureRegister>();
                    x.FromInstance(register);
                });
                register.PerformMappingForSerializerIn(container);

                container.RegisterImplementationOf(A.Fake <IMoBiMainViewPresenter>());

                setupDimensions(container);
                setupCalculationMethods(container);

                var context = container.Resolve <IMoBiContext>();
                container.RegisterImplementationOf <IWorkspace>(context);
            }
            //Required for usage with nunit 3
            Environment.CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory;
        }
예제 #11
0
        public override void GlobalContext()
        {
            if (IoC.Container != null)
            {
                return;
            }

            base.GlobalContext();
            var container = new CastleWindsorContainer();

            IoC.InitializeWith(container);
            IoC.RegisterImplementationOf(IoC.Container);

            container.WindsorContainer.AddFacility <TypedFactoryFacility>();
            container.Register <IObjectBaseFactory, ObjectBaseFactory>(LifeStyle.Singleton);
            container.Register <IDimensionFactory, DimensionFactoryForIntegrationTests>(LifeStyle.Singleton);
            container.Register <IGroupRepository, GroupRepositoryForSpecs>(LifeStyle.Singleton);
            container.Register <IDataRepositoryTask, DataRepositoryTask>();
            container.Register <IImporter, Importer>();
            container.Register <IDataSourceFileParser, DataSourceFileParser>();
            container.Register <ICsvDataSourceFile, CsvDataSourceFile>();
            container.Register <IImportLogger, ImportLogger>();
            container.Register <IExcelDataSourceFile, ExcelDataSourceFile>();
            container.Register <IDataSetToDataRepositoryMapper, DataSetToDataRepositoryMapper>();
            container.Register <IDataFormat, MixColumnsDataFormat>();

            container.Register <SimulationHelperForSpecs, SimulationHelperForSpecs>();
            container.Register <ModelHelperForSpecs, ModelHelperForSpecs>();
            container.Register <IDisplayNameProvider, DisplayNameProvider>();
            container.Register <ConcentrationBaseModelHelperForSpecs, ConcentrationBaseModelHelperForSpecs>();
            container.Register <IReactionDimensionRetriever, ReactionDimensionRetrieverForSpecs>(LifeStyle.Singleton);
            container.RegisterImplementationOf(A.Fake <IStartOptions>());

            container.RegisterImplementationOf(A.Fake <IApplicationController>());
            container.RegisterImplementationOf(A.Fake <IObjectTypeResolver>());
            container.RegisterImplementationOf(A.Fake <IDisplayUnitRetriever>());
            container.RegisterImplementationOf(A.Fake <IOSPSuiteExecutionContext>());
            container.RegisterImplementationOf(A.Fake <IProjectRetriever>());
            container.RegisterImplementationOf(A.Fake <IApplicationDiscriminator>());
            container.RegisterImplementationOf(A.Fake <IRelatedItemDescriptionCreator>());
            container.RegisterImplementationOf(A.Fake <IJournalDiagramManagerFactory>());
            container.RegisterImplementationOf(A.Fake <ICoreUserSettings>());
            container.RegisterImplementationOf(A.Fake <ICoreSimulationFactory>());

            var applicationConfiguration = A.Fake <IApplicationConfiguration>();

            A.CallTo(() => applicationConfiguration.Product).Returns(Origins.Other);
            container.RegisterImplementationOf(applicationConfiguration);

            initGroupRepository();

            var progressManager = A.Fake <IProgressManager>();

            A.CallTo(() => progressManager.Create()).Returns(A.Fake <IProgressUpdater>());
            container.RegisterImplementationOf(progressManager);

            var csvSeparatorSelector = A.Fake <ICsvSeparatorSelector>();

            A.CallTo(() => csvSeparatorSelector.GetCsvSeparator(A <string> .Ignored)).Returns(';');
            container.RegisterImplementationOf(csvSeparatorSelector);


            using (container.OptimizeDependencyResolution())
            {
                container.AddRegister(x => x.FromType <CoreRegister>());
                container.AddRegister(x => x.FromType <InfrastructureRegister>());
                var register = new CoreSerializerRegister();
                container.AddRegister(x => x.FromInstance(register));
                register.PerformMappingForSerializerIn(container);
            }


            initializeDimensions();
            initPKParameters();

            Environment.CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory;
        }