Пример #1
0
        public void AddAndReplaceObservedDataFromConfigurationToProject(ImporterConfiguration configuration, IEnumerable <DataRepository> observedDataFromSameFile)
        {
            var importedObservedData = getObservedDataFromImporter(configuration, null, false, false);
            var reloadDataSets       = _dataImporter.CalculateReloadDataSetsFromConfiguration(importedObservedData.ToList(), observedDataFromSameFile.ToList());

            if (reloadDataSets == null)
            {
                return;
            }

            foreach (var dataSet in reloadDataSets.NewDataSets)
            {
                adjustMolWeight(dataSet);
                _observedDataTask.AddObservedDataToProject(dataSet);
                updateQuantityInfoInImportedColumns(dataSet);
            }

            foreach (var dataSet in reloadDataSets.DataSetsToBeDeleted.ToArray()) //toDo it should be checked if to array solves the deleting problem
            {
                _observedDataTask.Delete(dataSet);
            }

            foreach (var dataSet in reloadDataSets.OverwrittenDataSets)
            {
                //TODO this here should be tested
                var existingDataSet = findDataRepositoryInList(observedDataFromSameFile, dataSet);

                foreach (var column in dataSet.Columns)
                {
                    var datacolumn = new DataColumn(column.Id, column.Name, column.Dimension, column.BaseGrid)
                    {
                        QuantityInfo = column.QuantityInfo,
                        DataInfo     = column.DataInfo,
                        IsInternal   = column.IsInternal,
                        Values       = column.Values
                    };

                    if (column.IsBaseGrid())
                    {
                        existingDataSet.BaseGrid.Values = datacolumn.Values;
                    }
                    else
                    {
                        var existingColumn = existingDataSet.FirstOrDefault(x => x.Name == column.Name);
                        if (existingColumn == null)
                        {
                            existingDataSet.Add(column);
                        }
                        else
                        {
                            existingColumn.Values = column.Values;
                        }
                    }
                }

                _eventPublisher.PublishEvent(new ObservedDataValueChangedEvent(existingDataSet));
            }
        }
Пример #2
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);
            }
        }