protected override void Context()
 {
    base.Context();
    _metaDataCategories = new List<MetaDataCategory>();
    _dataImporterSettings = new DataImporterSettings();
    _dataImporterSettings.AddNamingPatternMetaData("File");
 }
        public async Task Run_FileFormatError1()
        {
            // ARRANGE
            this.fixture.MoqElementRepository.Invocations.Clear();
            DataImporterSettings settings = new DataImporterSettings()
            {
                BlockSize = 100,
                FileURI   = nameof(FileResources.FileFormatError1),
            };

            int contador = 0;

            this.fixture.MoqElementRepository
            .Setup(a => a.SaveCollection(It.IsAny <List <Element> >()))
            .Callback((List <Element> lst) => contador += lst.Count);

            DataImporter sut = new DataImporter(
                new Mock <ILogger <DataImporter> >().Object,
                this.fixture.ServiceProvider.GetRequiredService <IFileImporterRepository>(),
                this.fixture.ServiceProvider.GetRequiredService <IElementRepository>(),
                settings);

            // ACT
            Func <Task> actTodo = () => sut.Run();

            // ASSERT
            await Assert.ThrowsAsync <FormatException>(actTodo);

            this.fixture.MoqElementRepository.Verify(a => a.Initialize(), Times.Once());
        }
示例#3
0
        protected override void Context()
        {
            base.Context();
            _dialogCreator         = A.Fake <IDialogCreator>();
            _importer              = IoC.Container.Resolve <IImporter>();
            _applicationController = A.Fake <ApplicationController>();

            sut = new DataImporter(_dialogCreator, _importer, _applicationController, _dimensionFactory);

            _importerConfiguration = new ImporterConfiguration {
                FileName = "IntegrationSample1.xlsx", NamingConventions = "{Source}.{Sheet}.{Organ}.{Molecule}"
            };
            _importerConfiguration.AddToLoadedSheets("Sheet1");
            _importerConfigurationMW = new ImporterConfiguration {
                FileName = "IntegrationSample1.xlsx", NamingConventions = "{Source}.{Sheet}.{Organ}.{Molecule}"
            };
            _importerConfigurationMW.AddToLoadedSheets("Sheet1");
            _metaDataCategories   = (IReadOnlyList <MetaDataCategory>)sut.DefaultMetaDataCategoriesForObservedData();
            _dataImporterSettings = new DataImporterSettings();
            _dataImporterSettings.NameOfMetaDataHoldingMoleculeInformation        = "Molecule";
            _dataImporterSettings.NameOfMetaDataHoldingMolecularWeightInformation = "Molecular Weight";
            _dataImporterSettings.IgnoreSheetNamesAtImport      = true;
            _dataImporterSettings.CheckMolWeightAgainstMolecule = false;
            _columnInfos = getDefaultColumnInfos();

            _metaDataCategories.First(md => md.Name == _dataImporterSettings.NameOfMetaDataHoldingMoleculeInformation).ListOfValues.Add("TestInputMolecule", "233");
        }
        public void ReloadWithPKSimSettings()
        {
            var dataImporterSettings = new DataImporterSettings();

            dataImporterSettings.AddNamingPatternMetaData(Constants.FILE, Constants.SHEET);
            dataImporterSettings.AddNamingPatternMetaData(Constants.FILE, Constants.SHEET, "Species");
            using (var serializationContext = SerializationTransaction.Create(_container))
            {
                var serializer = _modelingXmlSerializerRepository.SerializerFor <ImporterConfiguration>();

                var fileName = _dialogCreator.AskForFileToOpen("Save configuration", "xml files (*.xml)|*.xml|All files (*.*)|*.*",
                                                               Constants.DirectoryKey.PROJECT);

                if (fileName.IsNullOrEmpty())
                {
                    return;
                }

                var xel           = XElement.Load(fileName); // We have to correctly handle the case of cancellation
                var configuration = serializer.Deserialize <ImporterConfiguration>(xel, serializationContext);

                dataImporterSettings.NameOfMetaDataHoldingMoleculeInformation        = "Molecule";
                dataImporterSettings.NameOfMetaDataHoldingMolecularWeightInformation = "Molecular Weight";

                _dialogCreator.MessageBoxInfo(_dataImporter.ImportFromConfiguration
                                              (
                                                  configuration,
                                                  _dataImporter.DefaultMetaDataCategoriesForObservedData(),
                                                  _dataImporter.ColumnInfosForObservedData(),
                                                  dataImporterSettings,
                                                  _dialogCreator.AskForFileToOpen(Captions.Importer.OpenFile, Captions.Importer.ImportFileFilter, Constants.DirectoryKey.OBSERVED_DATA)
                                              )?.Count() + " data sets successfully imported");
            }
        }
        public async Task Run_FileOK1_BlockSize100()
        {
            await Task.Yield();

            // ARRANGE
            this.fixture.MoqElementRepository.Invocations.Clear();
            DataImporterSettings settings = new DataImporterSettings()
            {
                BlockSize = 100,
                FileURI   = nameof(FileResources.FileOk1),
            };

            int contador = 0;

            this.fixture.MoqElementRepository
            .Setup(a => a.SaveCollection(It.IsAny <List <Element> >()))
            .Callback((List <Element> lst) => contador += lst.Count);

            DataImporter sut = new DataImporter(
                new Mock <ILogger <DataImporter> >().Object,
                this.fixture.ServiceProvider.GetRequiredService <IFileImporterRepository>(),
                this.fixture.ServiceProvider.GetRequiredService <IElementRepository>(),
                settings);

            // ACT
            await sut.Run();

            // ASSERT
            Assert.Equal(28793, contador);
            this.fixture.MoqElementRepository.Verify(a => a.Initialize(), Times.Once());
        }
示例#6
0
        private void addNamingPatterns(DataImporterSettings dataImporterSettings)
        {
            dataImporterSettings.AddNamingPatternMetaData(
                Constants.FILE
                );

            dataImporterSettings.AddNamingPatternMetaData(
                Constants.FILE,
                Constants.SHEET
                );

            dataImporterSettings.AddNamingPatternMetaData(
                Constants.ObservedData.MOLECULE,
                Constants.ObservedData.SPECIES,
                Constants.ObservedData.ORGAN,
                Constants.ObservedData.COMPARTMENT
                );

            dataImporterSettings.AddNamingPatternMetaData(
                Constants.ObservedData.MOLECULE,
                Constants.ObservedData.SPECIES,
                Constants.ObservedData.ORGAN,
                Constants.ObservedData.COMPARTMENT,
                Constants.ObservedData.STUDY_ID,
                Constants.ObservedData.GENDER,
                Constants.ObservedData.DOSE,
                Constants.ObservedData.ROUTE,
                Constants.ObservedData.SUBJECT_ID
                );
        }
        private void addNamingPatterns(DataImporterSettings dataImporterSettings)
        {
            dataImporterSettings.AddNamingPatternMetaData(
                FILE
                );

            dataImporterSettings.AddNamingPatternMetaData(
                FILE,
                SHEET
                );

            dataImporterSettings.AddNamingPatternMetaData(
                MOLECULE,
                SPECIES,
                ORGAN,
                COMPARTMENT
                );

            dataImporterSettings.AddNamingPatternMetaData(
                MOLECULE,
                SPECIES,
                ORGAN,
                COMPARTMENT,
                STUDY_ID,
                GENDER,
                DOSE,
                ROUTE,
                SUBJECT_ID
                );
        }
示例#8
0
        public ICommand LoadOntogenyForMolecule(IndividualMolecule molecule, TSimulationSubject simulationSubject)
        {
            var dataImporterSettings = new DataImporterSettings
            {
                Caption = $"{CoreConstants.ProductDisplayName} - {PKSimConstants.UI.ImportOntogeny}",
                Icon    = ApplicationIcons.Excel
            };

            var data = _dataImporter.ImportDataSet(new List <MetaDataCategory>(), getColumnInfos(), dataImporterSettings);

            if (data == null)
            {
                return(null);
            }

            var ontogeny = new UserDefinedOntogeny {
                Table = formulaFrom(data), Name = data.Name
            };

            //only first formulation will be imported
            if (_ontogenyRepository.AllNames().Contains(ontogeny.Name))
            {
                var name = _entityTask.NewNameFor(ontogeny, _ontogenyRepository.AllNames());
                if (string.IsNullOrEmpty(name))
                {
                    return(null);
                }

                ontogeny.Name = name;
            }

            return(SetOntogenyForMolecule(molecule, ontogeny, simulationSubject));
        }
示例#9
0
        private static void registerImport(IContainer container)
        {
            var mobiDataImprterSettings = new DataImporterSettings {
                Icon = ApplicationIcons.MoBi, Caption = "MoBi Data Import"
            };

            container.RegisterImplementationOf(mobiDataImprterSettings);
        }
示例#10
0
 public override (IReadOnlyList <DataRepository> DataRepositories, ImporterConfiguration Configuration) ImportDataSets(
     IReadOnlyList <MetaDataCategory> metaDataCategories,
     IReadOnlyList <ColumnInfo> columnInfos,
     DataImporterSettings dataImporterSettings,
     string dataFileName)
 {
     throw new NotImplementedException();
 }
示例#11
0
 public void SetSettings(IReadOnlyList <MetaDataCategory> metaDataCategories, ColumnInfoCache columnInfos,
                         DataImporterSettings dataImporterSettings)
 {
     _columnInfos = columnInfos;
     _columnMappingPresenter.SetSettings(metaDataCategories, columnInfos);
     _importerDataPresenter.SetSettings(metaDataCategories, columnInfos);
     _dataImporterSettings = dataImporterSettings;
     _metaDataCategories   = metaDataCategories;
 }
示例#12
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>());
        }
 protected override void Context()
 {
    base.Context();
    _metaDataCategories = new List<MetaDataCategory>
    {
       new MetaDataCategory {Name = "Species", IsMandatory = true},
       new MetaDataCategory {Name = "StudyId", IsMandatory = false}
    };
    _dataImporterSettings = new DataImporterSettings();
 }
        public void StartWithOntogenySettings()
        {
            var dataImporterSettings = new DataImporterSettings
            {
                Caption = "PK-Sim - Import Ontogeny"
            };

            var dataSets = _importer.ImportDataSets(new List <MetaDataCategory>(), _dataGenerator.GetOntogenyColumnInfo(), dataImporterSettings);

            promptForImports(dataSets.ToList());
        }
示例#15
0
        public TableFormula ImportTableFormula()
        {
            var dataImporterSettings = new DataImporterSettings
            {
                Caption  = $"{CoreConstants.ProductDisplayName} - {PKSimConstants.UI.ImportFormulation}",
                IconName = ApplicationIcons.Formulation.IconName
            };

            var importedFormula = _dataImporter.ImportDataSet(new List <MetaDataCategory>(), getColumnInfos(), dataImporterSettings);

            return(importedFormula == null ? null : formulaFrom(importedFormula));
        }
        public void StartWithOntogenySettings()
        {
            var dataImporterSettings = new DataImporterSettings
            {
                Caption = "PK-Sim - LoadCurrentSheet Ontogeny"
            };

            StartImporterExcelView(
                new List <MetaDataCategory>(),
                _dataGenerator.GetOntogenyColumnInfo(),
                dataImporterSettings
                );
        }
示例#17
0
        public DataRepository ImportObservedData()
        {
            var dataImporterSettings = new DataImporterSettings();

            dataImporterSettings.AddNamingPatternMetaData(Constants.FILE, Constants.SHEET);
            dataImporterSettings.AddNamingPatternMetaData(Constants.FILE, Constants.SHEET, "Species");
            var dataSet = _dataImporter.ImportDataSet(
                _dataGenerator.DefaultMoBiMetaDataCategories(),
                _dataGenerator.DefaultMoBiConcentrationImportConfiguration(),
                dataImporterSettings);

            return(dataSet);
        }
        public void StartWithPKSimSettings()
        {
            var dataImporterSettings = new DataImporterSettings();

            dataImporterSettings.AddNamingPatternMetaData(Constants.FILE, Constants.SHEET);
            dataImporterSettings.AddNamingPatternMetaData(Constants.FILE, Constants.SHEET, "Species");
            var dataSets = _importer.ImportDataSets(
                _dataGenerator.DefaultPKSimMetaDataCategories(),
                _dataGenerator.DefaultPKSimConcentrationImportConfiguration(),
                dataImporterSettings).ToList();

            promptForImports(dataSets);
        }
        public void StartWithMoBiSettings()
        {
            var dataImporterSettings = new DataImporterSettings();

            dataImporterSettings.AddNamingPatternMetaData(Constants.FILE);

            StartImporterExcelView(
                _dataGenerator.DefaultMoBiMetaDataCategories(),
                _dataImporter.ColumnInfosForObservedData(),
                dataImporterSettings
                );

            //promptForImports(dataSets);
        }
示例#20
0
        /// <summary>
        /// Initializes a new instance of the <see cref="DataImporter"/> class.
        /// </summary>
        /// <param name="logger">The logger.</param>
        /// <param name="fileImporterRepository">The file importer repository.</param>
        /// <param name="elementRepository">The element repository.</param>
        /// <param name="dataImporterSettings">The data importer settings.</param>
        public DataImporter(
            ILogger <DataImporter> logger,
            IFileImporterRepository fileImporterRepository,
            IElementRepository elementRepository,
            DataImporterSettings dataImporterSettings)
        {
            this.logger = logger;
            this.fileImporterRepository = fileImporterRepository;
            this.elementRepository      = elementRepository;
            this.dataImporterSettings   = dataImporterSettings;

            this.contents       = new List <string>();
            this.contentsLocker = new object();
        }
        public void StartPKSimSingleMode()
        {
            var dataImporterSettings = new DataImporterSettings();

            dataImporterSettings.AddNamingPatternMetaData(Constants.FILE, Constants.SHEET);
            dataImporterSettings.AddNamingPatternMetaData(Constants.FILE, Constants.SHEET, "Species");
            var metaDataCategories = _dataImporter.DefaultMetaDataCategoriesForObservedData().ToList();

            _dataGenerator.AddMoleculeValuesToMetaDataList(metaDataCategories);
            StartImporterExcelView(
                metaDataCategories,
                _dataImporter.ColumnInfosForObservedData(),
                dataImporterSettings
                );
        }
        public void StartPKSimSingleMode()
        {
            var dataImporterSettings = new DataImporterSettings();

            dataImporterSettings.AddNamingPatternMetaData(Constants.FILE, Constants.SHEET);
            dataImporterSettings.AddNamingPatternMetaData(Constants.FILE, Constants.SHEET, "Species");
            var dataSet = _importer.ImportDataSet(
                _dataGenerator.DefaultPKSimMetaDataCategories(),
                _dataGenerator.DefaultPKSimConcentrationImportConfiguration(),
                dataImporterSettings);

            promptForImports(new List <DataRepository> {
                dataSet
            });
        }
示例#23
0
        protected override void Context()
        {
            _settings = new DataImporterSettings();
            var repository = new DataRepository {
                Name = "OldName"
            };

            repository.ExtendedProperties.Add(new ExtendedProperty <string> {
                Name = "Species", Value = "Pig"
            });
            repository.ExtendedProperties.Add(new ExtendedProperty <string> {
                Name = "Organ", Value = "Liver"
            });
            _repositories = new List <DataRepository> {
                repository
            };

            repository = new DataRepository {
                Name = "OldName"
            };
            repository.ExtendedProperties.Add(new ExtendedProperty <string> {
                Name = "DefaultConvention", Value = "DefaultName"
            });
            repository.ExtendedProperties.Add(new ExtendedProperty <string> {
                Name = "StudyID", Value = "99"
            });
            _repositories.Add(repository);

            repository = new DataRepository {
                Name = "OldName"
            };
            repository.ExtendedProperties.Add(new ExtendedProperty <string> {
                Name = "Species", Value = "Pig"
            });
            repository.ExtendedProperties.Add(new ExtendedProperty <string> {
                Name = "StudyID", Value = "99"
            });
            _repositories.Add(repository);

            repository = new DataRepository {
                Name = "OldName"
            };
            _repositories.Add(repository);
            sut = new NamingPatternToRepositoryNameMapper();
        }
示例#24
0
        private (IReadOnlyList <MetaDataCategory>, DataImporterSettings) initializeSettings(Compound compound = null, bool allowCompoundNameEdit = false)
        {
            var dataImporterSettings = new DataImporterSettings
            {
                Caption  = $"{CoreConstants.ProductDisplayName} - {PKSimConstants.UI.ImportObservedData}",
                IconName = ApplicationIcons.ObservedData.IconName,
                // CheckMolWeightAgainstMolecule = true
            };

            addNamingPatterns(dataImporterSettings);
            dataImporterSettings.NameOfMetaDataHoldingMoleculeInformation        = Constants.ObservedData.MOLECULE;
            dataImporterSettings.NameOfMetaDataHoldingMolecularWeightInformation = Constants.ObservedData.MOLECULAR_WEIGHT;

            var metaDataCategories = _dataImporter.DefaultMetaDataCategoriesForObservedData().ToList();

            populateMetaDataLists(metaDataCategories, compound, allowCompoundNameEdit);

            return(metaDataCategories, dataImporterSettings);
        }
        private (IReadOnlyList <MetaDataCategory>, DataImporterSettings) initializeSettings()
        {
            var dataImporterSettings = new DataImporterSettings
            {
                IconName = ApplicationIcons.MoBi.IconName,
                Caption  = $"{AppConstants.PRODUCT_NAME} - {AppConstants.Captions.ImportObservedData}",
                CheckMolWeightAgainstMolecule = false
            };

            addNamingPatterns(dataImporterSettings);
            dataImporterSettings.NameOfMetaDataHoldingMoleculeInformation        = MOLECULE;
            dataImporterSettings.NameOfMetaDataHoldingMolecularWeightInformation = MOLECULAR_WEIGHT;

            var metaDataCategories = _dataImporter.DefaultMetaDataCategoriesForObservedData().ToList();

            populateMetaDataLists(metaDataCategories);

            return(metaDataCategories, dataImporterSettings);
        }
        public TableFormula ImportSolubilityTableFormula()
        {
            var dataImporterSettings = new DataImporterSettings
            {
                Caption  = $"{CoreConstants.ProductDisplayName} - {PKSimConstants.UI.ImportSolubilityTable}",
                IconName = ApplicationIcons.Compound.IconName
            };

            dataImporterSettings.AddNamingPatternMetaData(Constants.FILE);

            var importedFormula = _dataImporter.ImportDataSets(
                new List <MetaDataCategory>(),
                getColumnInfos(),
                dataImporterSettings,
                _dialogCreator.AskForFileToOpen(Captions.Importer.OpenFile, Captions.Importer.ImportFileFilter, Constants.DirectoryKey.OBSERVED_DATA)
                ).DataRepositories.FirstOrDefault();

            return(importedFormula == null ? null : formulaFrom(importedFormula));
        }
示例#27
0
        public override (IReadOnlyList <DataRepository> DataRepositories, ImporterConfiguration Configuration) ImportDataSets(
            IReadOnlyList <MetaDataCategory> metaDataCategories,
            IReadOnlyList <ColumnInfo> columnInfos,
            DataImporterSettings dataImporterSettings,
            string dataFileName
            )
        {
            if (string.IsNullOrEmpty(dataFileName) || !System.IO.File.Exists(dataFileName))
            {
                return(Array.Empty <DataRepository>(), null);
            }

            var columnInfoCache = new ColumnInfoCache(columnInfos);

            using (var importerModalPresenter = _applicationController.Start <IModalImporterPresenter>())
            {
                importerModalPresenter.SetCaption(dataImporterSettings.Caption);
                return(importerModalPresenter.ImportDataSets(metaDataCategories, columnInfoCache, dataImporterSettings, dataFileName));
            }
        }
示例#28
0
 public DataImporterTask(
     IDataImporter dataImporter,
     ICsvDynamicSeparatorSelector csvSeparatorSelector,
     IDimensionFactory dimensionFactory,
     IPKMLPersistor pkmlPersistor
     )
 {
     _dataImporter         = dataImporter;
     _dimensionFactory     = dimensionFactory;
     _pkmlPersistor        = pkmlPersistor;
     _metaDataCategories   = _dataImporter.DefaultMetaDataCategoriesForObservedData();
     _dataImporterSettings = new DataImporterSettings
     {
         NameOfMetaDataHoldingMoleculeInformation        = Constants.ObservedData.MOLECULE,
         NameOfMetaDataHoldingMolecularWeightInformation = Constants.ObservedData.MOLECULAR_WEIGHT,
         IgnoreSheetNamesAtImport = true
     };
     _columnInfos          = _dataImporter.ColumnInfosForObservedData();
     _columnInfoCache      = new ColumnInfoCache(_columnInfos);
     _csvSeparatorSelector = csvSeparatorSelector;
 }
示例#29
0
        public override IReadOnlyList <DataRepository> ImportFromConfiguration(
            ImporterConfiguration configuration,
            IReadOnlyList <MetaDataCategory> metaDataCategories,
            IReadOnlyList <ColumnInfo> columnInfos,
            DataImporterSettings dataImporterSettings,
            string dataFileName)
        {
            if (string.IsNullOrEmpty(dataFileName) || !File.Exists(dataFileName))
            {
                throw new OSPSuiteException(Error.InvalidFile);
            }

            var columnInfoCache = new ColumnInfoCache(columnInfos);
            var importedData    = _importer.ImportFromConfiguration(configuration, columnInfoCache, dataFileName, metaDataCategories, dataImporterSettings);

            if (importedData.MissingSheets.Count != 0)
            {
                _logger.AddWarning(Captions.Importer.SheetsNotFound(importedData.MissingSheets));
            }
            return(importedData.DataRepositories.Select(drm => drm.DataRepository).ToList());
        }
示例#30
0
        private void addObservedData(Func <IReadOnlyList <ColumnInfo> > importConfiguration, Compound compound = null, bool allowCompoundNameEdit = false)
        {
            var dataImporterSettings = new DataImporterSettings {
                Caption = $"{CoreConstants.ProductDisplayName} - {PKSimConstants.UI.ImportObservedData}", Icon = ApplicationIcons.ObservedData
            };

            dataImporterSettings.AddNamingPatternMetaData(Constants.FILE);

            var metaDataCategories = defaultMetaDataCategories().ToList();

            metaDataCategories.Insert(0, compoundNameCategory(compound, allowCompoundNameEdit));

            var importedObservedData = _dataImporter.ImportDataSets(metaDataCategories, importConfiguration(), dataImporterSettings);

            foreach (var observedData in importedObservedData)
            {
                adjustMolWeight(observedData);
                _observedDataTask.AddObservedDataToProject(observedData);
                updateQuantityInfoInImportedColumns(observedData);
            }
        }