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)); } }
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); } }