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)); } }
public void AddAndReplaceObservedDataFromConfigurationToProject(ImporterConfiguration configuration, IReadOnlyList <DataRepository> observedDataFromSameFile) { var importedObservedData = getObservedDataFromImporter(configuration); var reloadDataSets = _dataImporter.CalculateReloadDataSetsFromConfiguration(importedObservedData.ToList(), observedDataFromSameFile.ToList()); foreach (var dataSet in reloadDataSets.NewDataSets) { AddObservedDataToProject(dataSet); adjustRepositoryPaths(dataSet); } foreach (var dataSet in reloadDataSets.DataSetsToBeDeleted.ToArray()) //toDo it should be checked if to array solves the deleting problem { 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; } } } } }