示例#1
0
 private static void registerCoreComponents(IContainer container)
 {
     container.AddRegister(x => x.FromType <CoreRegister>());
     container.AddRegister(x => x.FromType <Core.CoreRegister>());
     container.AddRegister(x => x.FromType <InfrastructureRegister>());
     container.Register <IDimensionParser, DimensionParser>();
 }
示例#2
0
        private static void registerReporters(IContainer container)
        {
            container.AddRegister(x => x.FromType <ReportingRegister>());
            container.AddRegister(x => x.FromType <OSPSuite.Infrastructure.Reporting.ReportingRegister>());

            container.AddScanner(scan =>
            {
                scan.AssemblyContainingType <CoreRegister>();
                scan.IncludeNamespaceContainingType <ProjectReporter>();
                scan.WithConvention <ReporterRegistrationConvention>();
            });
        }
示例#3
0
        private static void registerSerializationDependencies(IContainer container)
        {
            //create serializer repository for xml persisentence and register all available serializer
            var register = new SerializerRegister();

            container.AddRegister(x => x.FromInstance(register));
            register.PerformMappingForSerializerIn(container);
        }
示例#4
0
        private static void registerImport(IContainer container)
        {
            var mobiDataImprterSettings = new DataImporterSettings {
                Icon = ApplicationIcons.MoBi, Caption = "MoBi Data Import"
            };

            container.RegisterImplementationOf(mobiDataImprterSettings);
            container.AddRegister(x => x.FromType <SBMLImportRegister>());
        }
示例#5
0
        public static void RegisterSerializationDependencies(IContainer container)
        {
            container.Register <ISerializationManager, XmlSerializationManager>();
            container.Register <IStringSerializer, StringSerializer>();
            container.Register <IStringSerializer, CompressedStringSerializer>(CoreConstants.Serialization.Compressed);
            container.Register <IPKSimXmlSerializerRepository, PKSimXmlSerializerRepository>(LifeStyle.Singleton);

            container.Register(typeof(IXmlReader <>), typeof(XmlReader <>));
            container.Register(typeof(IXmlWriter <>), typeof(XmlWriter <>));

            //Core serialization to serialize to pkml compatible with core
            container.AddRegister(x => x.FromType <CoreSerializerRegister>());
        }
示例#6
0
        public override void RegisterInContainer(IContainer container)
        {
            container.AddRegister(x => x.FromInstance(new OSPSuite.Core.CoreRegister {
                RegisterParameter = false
            }));

            //Register PKSim.Core
            container.AddScanner(scan =>
            {
                scan.AssemblyContainingType <CoreRegister>();

                //Exclude type that should be register as singleton because of caching
                scan.ExcludeType <FormulationValuesRetriever>();
                scan.ExcludeType <ObjectTypeResolver>();
                scan.ExcludeType <PKSimDimensionFactory>();
                scan.ExcludeType <PKSimObjectBaseFactory>();
                scan.ExcludeType <DistributionFormulaFactory>();
                scan.ExcludeType <ApplicationSettings>();
                scan.ExcludeType <ProjectChangedNotifier>();
                scan.ExcludeType <IndividualSimulationEngine>();
                scan.ExcludeType <DefaultIndividualRetriever>();
                scan.ExcludeType <IPopulationSimulationEngine>();

                //Do not register the InteractiveSimulationRunner as it should be registered only if needed
                scan.ExcludeType <InteractiveSimulationRunner>();
                scan.ExcludeType <SnapshotMapper>();

                scan.ExcludeNamespaceContainingType <IndividualDiffBuilder>();
                scan.WithConvention <PKSimRegistrationConvention>();
            });

            //Register singletons explicitly
            container.AddScanner(scan =>
            {
                scan.AssemblyContainingType <CoreRegister>();
                scan.IncludeType <FormulationValuesRetriever>();
                scan.IncludeType <ObjectTypeResolver>();
                scan.IncludeType <DistributionFormulaFactory>();
                scan.IncludeType <ProjectChangedNotifier>();
                scan.IncludeType <SnapshotMapper>();
                scan.IncludeType <DefaultIndividualRetriever>();

                scan.RegisterAs(LifeStyle.Singleton);
                scan.WithConvention <PKSimRegistrationConvention>();
            });

            container.Register <ICoreSimulationFactory, SimulationFactory>();
            container.Register <ISetParameterTask, ParameterTask>(LifeStyle.Transient);
            container.Register <ITransferOptimizedParametersToSimulationsTask, TransferOptimizedParametersToSimulationsTask <IExecutionContext> >();
            container.Register <IIndividualSimulationEngine, ISimulationEngine <IndividualSimulation, SimulationRunResults>, IndividualSimulationEngine>(LifeStyle.Transient);
            container.Register <IPopulationSimulationEngine, ISimulationEngine <PopulationSimulation, PopulationRunResults>, PopulationSimulationEngine>(LifeStyle.Transient);

            //other singleton external to application
            container.Register <ICloneManager, Cloner>(LifeStyle.Singleton);

            //Register special type for parameters so that core methods in the context of pksim creates a PKSimParameter
            container.Register <IParameter, PKSimParameter>();
            container.Register <IDistributedParameter, PKSimDistributedParameter>();

            //specific PKSim Implementations
            container.Register <IPathToPathElementsMapper, PKSimPathToPathElementsMapper>();
            container.Register <IDataColumnToPathElementsMapper, PKSimDataColumnToPathElementsMapper>();
            container.Register <IQuantityPathToQuantityDisplayPathMapper, PKSimQuantityPathToQuantityDisplayPathMapper>();

            //Register Factories
            container.RegisterFactory <ISimulationEngineFactory>();
            container.RegisterFactory <IChartDataToTableMapperFactory>();

            container.Register <IPKSimObjectBaseFactory, IObjectBaseFactory, PKSimObjectBaseFactory>(LifeStyle.Singleton);
            container.Register <IPKSimDimensionFactory, IDimensionFactory, PKSimDimensionFactory>(LifeStyle.Singleton);
            container.Register <IApplicationSettings, OSPSuite.Core.IApplicationSettings, ApplicationSettings>(LifeStyle.Singleton);

            //Register opened types generics
            container.Register <IInterpolation, LinearInterpolation>();
            container.Register <IPivoter, Pivoter>();

            container.Register <ISimulationSubject, Individual>();
            container.Register <Protocol, SimpleProtocol>();
            container.Register <Simulation, IndividualSimulation>();
            container.Register <Population, RandomPopulation>();
            container.Register <SchemaItem, SchemaItem>();

            //generic command registration
            container.Register <IOSPSuiteExecutionContext, ExecutionContext>();

            registerMoleculeFactories(container);
            registerComparers(container);
        }
示例#7
0
        public override void RegisterInContainer(IContainer container)
        {
            container.AddScanner(scan =>
            {
                scan.AssemblyContainingType <InfrastructureRegister>();

                //ORM Repository should be registered as singleton
                scan.ExcludeNamespaceContainingType <SpeciesRepository>();

                //this type will be registered using another convention
                scan.ExcludeNamespaceContainingType <IObjectConverter>();             //Converter
                scan.ExcludeNamespaceContainingType <IReportBuilder>();               //report builder
                scan.ExcludeNamespaceContainingType <SimulationReporter>();           //tex reporter
                scan.ExcludeNamespaceContainingType <IndividualTeXBuilder>();         //tex builder
                scan.ExcludeNamespaceContainingType <PKSimXmlSerializerRepository>(); //Serializer

                scan.ExcludeType <CommandMetaDataRepository>();
                scan.ExcludeType <DefaultIndividualRetriever>();
                scan.ExcludeType <SessionManager>();
                scan.ExcludeType <TemplateDatabase>();
                scan.ExcludeType <ProteinExpressionDatabase>();
                scan.ExcludeType <ProteinExpressionQueries>();
                scan.ExcludeType <ModelDatabase>();
                scan.ExcludeType <VersionChecker>();
                scan.ExcludeType <Workspace>();

                //already registered
                scan.ExcludeType <PKSimXmlSerializerRepository>();
                scan.ExcludeType <PKSimConfiguration>();
                scan.ExcludeType <SerializationContext>();

                scan.WithConvention <PKSimRegistrationConvention>();
            });

            container.AddScanner(scan =>
            {
                scan.AssemblyContainingType <InfrastructureRegister>();
                scan.IncludeNamespaceContainingType <SpeciesRepository>(); //Repository

                scan.IncludeType <CommandMetaDataRepository>();
                scan.IncludeType <DefaultIndividualRetriever>();
                scan.IncludeType <SessionManager>();
                scan.IncludeType <TemplateDatabase>();
                scan.IncludeType <ProteinExpressionDatabase>();
                scan.IncludeType <ProteinExpressionQueries>();
                scan.IncludeType <ModelDatabase>();

                scan.IncludeType <VersionChecker>();

                scan.RegisterAs(LifeStyle.Singleton);
                scan.WithConvention <OSPSuiteRegistrationConvention>();
            });

            container.Register <IWorkspace, Workspace>(LifeStyle.Singleton);

            registerConverters(container);

            registerReportBuilders(container);

            registerTexReporters(container);

            container.Register <ICompression, SharpLibCompression>();
            container.Register <IStringCompression, StringCompression>();
            container.Register <IProjectRetriever, PKSimProjectRetriever>();
            container.Register <IObservedDataConfiguration, ImportObservedDataTask>();
            container.Register <IFlatContainerIdToContainerMapperSpecification, FlatContainerIdToFormulationMapper>();
            container.Register <IFileLocker, FileLocker>(LifeStyle.Singleton);

            registerORMDependencies();

            var xmlRegister = new CoreSerializerRegister();

            container.AddRegister(x => x.FromInstance(xmlRegister));
            var sbsuiteSerializerRepository = container.Resolve <IOSPSuiteXmlSerializerRepository>();

            sbsuiteSerializerRepository.AddPresentationSerializers();
            xmlRegister.PerformMappingForSerializerIn(container);

            container.AddRegister(x => x.FromType <ReportingRegister>());
            container.AddRegister(x => x.FromType <OSPSuite.TeXReporting.ReportingRegister>());
            container.AddRegister(x => x.FromType <OSPSuite.Infrastructure.InfrastructureRegister>());

            //register factory also as IObjectBaseFactoryIBuildTrackerFactory
            var factory = container.Resolve <IPKSimObjectBaseFactory>() as IObjectBaseFactory;

            container.RegisterImplementationOf(factory);

            var configuration  = container.Resolve <IPKSimConfiguration>();
            var versionChecker = container.Resolve <IVersionChecker>();

            versionChecker.VersionFileUrl = CoreConstants.VERSION_FILE_URL;
            versionChecker.CurrentVersion = configuration.Version;
            versionChecker.ProductName    = CoreConstants.PRODUCT_NAME;
        }
示例#8
0
 private static void registerView(IContainer container)
 {
     container.AddRegister(x => x.FromType <UserInterfaceRegister>());
 }
示例#9
0
 private static void registerPresenter(IContainer container)
 {
     container.AddRegister(x => x.FromType <PresentationRegister>());
 }
示例#10
0
 private static void registerUIComponents(IContainer container)
 {
     container.AddRegister(x => x.FromType <DiagramRegister>());
 }
 private void registerSerializers(IContainer container)
 {
     container.AddRegister(x => x.FromType <OSPSuite.Infrastructure.Serialization.InfrastructureSerializationRegister>());
 }
 private void registerImporter(IContainer container)
 {
     container.AddRegister(x => x.FromType <InfrastructureImportRegister>());
 }
示例#13
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;
        }
示例#14
0
        public override void RegisterInContainer(IContainer container)
        {
            container.AddScanner(scan =>
            {
                scan.AssemblyContainingType <InfrastructureRegister>();

                //ORM Repository should be registered as singleton
                scan.ExcludeNamespaceContainingType <SpeciesRepository>();

                //this type will be registered using another convention
                scan.ExcludeNamespaceContainingType <IObjectConverter>();             //Converter
                scan.ExcludeNamespaceContainingType <IReportBuilder>();               //report builder
                scan.ExcludeNamespaceContainingType <IMarkdownBuilder>();             //Markdown builder
                scan.ExcludeNamespaceContainingType <SimulationReporter>();           //tex reporter
                scan.ExcludeNamespaceContainingType <IndividualTeXBuilder>();         //tex builder
                scan.ExcludeNamespaceContainingType <PKSimXmlSerializerRepository>(); //Serializer

                scan.ExcludeType <CommandMetaDataRepository>();
                scan.ExcludeType <DefaultIndividualRetriever>();
                scan.ExcludeType <SessionManager>();
                scan.ExcludeType <TemplateDatabase>();
                scan.ExcludeType <GeneExpressionDatabase>();
                scan.ExcludeType <GeneExpressionQueries>();
                scan.ExcludeType <ModelDatabase>();
                scan.ExcludeType <VersionChecker>();
                scan.ExcludeType <Workspace>();
                scan.ExcludeType <PKSimLogger>();
                scan.ExcludeType <StringSerializer>();
                scan.ExcludeType <CompressedStringSerializer>();

                //already registered
                scan.ExcludeType <PKSimXmlSerializerRepository>();
                scan.ExcludeType <PKSimConfiguration>();
                scan.ExcludeType <SerializationContext>();

                scan.WithConvention <PKSimRegistrationConvention>();
            });

            container.AddScanner(scan =>
            {
                scan.AssemblyContainingType <InfrastructureRegister>();
                scan.IncludeNamespaceContainingType <SpeciesRepository>(); //Repository

                scan.IncludeType <CommandMetaDataRepository>();
                scan.IncludeType <DefaultIndividualRetriever>();
                scan.IncludeType <SessionManager>();
                scan.IncludeType <TemplateDatabase>();
                scan.IncludeType <GeneExpressionDatabase>();
                scan.IncludeType <GeneExpressionQueries>();
                scan.IncludeType <ModelDatabase>();

                scan.IncludeType <VersionChecker>();

                scan.RegisterAs(LifeStyle.Singleton);
                scan.WithConvention <OSPSuiteRegistrationConvention>();
            });


            registerConverters(container);

            registerReportBuilders(container);

            registerTexReporters(container);

            registerMarkdownBuilders(container);

            container.Register <IProjectRetriever, PKSimProjectRetriever>();
            container.Register <IObservedDataConfiguration, ImportObservedDataTask>();
            container.Register <IFlatContainerIdToContainerMapperSpecification, FlatContainerIdToFormulationMapper>();
            container.Register <IFileLocker, FileLocker>(LifeStyle.Singleton);

            registerORMDependencies(container);

            container.AddRegister(x => x.FromType <ReportingRegister>());
            container.AddRegister(x => x.FromType <InfrastructureSerializationRegister>());
            container.AddRegister(x => x.FromType <InfrastructureReportingRegister>());
            container.AddRegister(x => x.FromType <InfrastructureExportRegister>());
            container.AddRegister(x => x.FromType <InfrastructureImportRegister>());

            var configuration  = container.Resolve <IPKSimConfiguration>();
            var versionChecker = container.Resolve <IVersionChecker>();

            versionChecker.VersionFileUrl = CoreConstants.VERSION_FILE_URL;
            versionChecker.CurrentVersion = configuration.Version;
            versionChecker.ProductName    = CoreConstants.PRODUCT_NAME;
        }
示例#15
0
        public override void RegisterInContainer(IContainer container)
        {
            container.AddRegister(x => x.FromInstance(new OSPSuite.Core.CoreRegister {
                RegisterParameter = false
            }));

            //Register PKSim.Core
            container.AddScanner(scan =>
            {
                scan.AssemblyContainingType <CoreRegister>();

                //Exclude type that should be register as singleton because of caching
                scan.ExcludeType <FormulationValuesRetriever>();
                scan.ExcludeType <ObjectTypeResolver>();
                scan.ExcludeType <PKSimDimensionFactory>();
                scan.ExcludeType <PKSimObjectBaseFactory>();
                scan.ExcludeType <DistributionFormulaFactory>();
                scan.ExcludeType <ApplicationSettings>();
                scan.ExcludeType <ProjectChangedNotifier>();
                scan.ExcludeType <BatchLogger>();
                scan.ExcludeType <SimulationRunner>();

                scan.ExcludeNamespaceContainingType <IndividualDiffBuilder>();
                scan.WithConvention <PKSimRegistrationConvention>();
            });

            //Register singletons explicitely
            container.AddScanner(scan =>
            {
                scan.AssemblyContainingType <CoreRegister>();
                scan.IncludeType <FormulationValuesRetriever>();
                scan.IncludeType <ObjectTypeResolver>();
                scan.IncludeType <PKSimObjectBaseFactory>();
                scan.IncludeType <DistributionFormulaFactory>();
                scan.IncludeType <ApplicationSettings>();
                scan.IncludeType <ProjectChangedNotifier>();
                scan.IncludeType <BatchLogger>();
                scan.IncludeType <SimulationRunner>();

                scan.RegisterAs(LifeStyle.Singleton);
                scan.WithConvention <PKSimRegistrationConvention>();
            });

            container.Register <ICoreSimulationFactory, SimulationFactory>();
            container.Register <ISetParameterTask, ParameterTask>();
            container.Register <ITransferOptimizedParametersToSimulationsTask, TransferOptimizedParametersToSimulationsTask <IExecutionContext> >();

            //other singleton external to application
            container.Register <ICloneManager, Cloner>(LifeStyle.Singleton);

            //Register special type for parameters so that core methods in the context of pksim creates a PKSimParameter
            container.Register <IParameter, PKSimParameter>();
            container.Register <IDistributedParameter, PKSimDistributedParameter>();

            //Register Factories
            container.RegisterFactory <ISimulationEngineFactory>();
            container.RegisterFactory <IChartDataToTableMapperFactory>();

            container.Register <IPKSimDimensionFactory, IDimensionFactory, PKSimDimensionFactory>(LifeStyle.Singleton);

            //Register opened types generics
            container.Register(typeof(IRepository <>), typeof(ImplementationRepository <>));

            container.Register <IInterpolation, LinearInterpolation>();
            container.Register <IPivoter, Pivoter>();

            container.Register <ISimulationSubject, Individual>();
            container.Register <Protocol, SimpleProtocol>();
            container.Register <Simulation, IndividualSimulation>();
            container.Register <Population, RandomPopulation>();

            //generic command registration
            container.Register <IOSPSuiteExecutionContext, ExecutionContext>();

            registerMoleculeFactories(container);
            registerComparers(container);
        }