Index: DamClients/DamUI/trunk/src/Dam/Tests/DataPluginImporterTests.cs =================================================================== diff -u -r2420 -r2421 --- DamClients/DamUI/trunk/src/Dam/Tests/DataPluginImporterTests.cs (.../DataPluginImporterTests.cs) (revision 2420) +++ DamClients/DamUI/trunk/src/Dam/Tests/DataPluginImporterTests.cs (.../DataPluginImporterTests.cs) (revision 2421) @@ -193,22 +193,22 @@ Assert.AreEqual("-99", scenarioDetails.First(x => x.ParameterName.Equals("HeadPL3")).ParameterValue); } -// [Test] -// public void ValuesFromShapeFileAreCopiedToScenarioIfNotDefinedInScenariosCsv() -// { -// SetupInvoer1WithShapeFiles(); -// string dikeRingId = dataPluginImporter.GetDikeRingIdList().FirstOrDefault(); -// dataPluginImporter.ImportDataForDikeRings(new List { dikeRingId }, null); -// -// string scenarioId = dataPluginImporter.GetScenarioList(dikeRingId, Location1Id).FirstOrDefault(); -// IEnumerable scenarioDetails = dataPluginImporter.GetScenarioDetails(dikeRingId, Location1Id, scenarioId); -// var nameValueParameters = scenarioDetails as NameValueParameter[] ?? scenarioDetails.ToArray(); -// Assert.IsTrue(nameValueParameters.Any()); -// Assert.AreEqual("-3.651", nameValueParameters.FirstOrDefault(x => x.ParameterName.Equals("HeadPL3")).ParameterValue); -// -// scenarioDetails = dataPluginImporter.GetScenarioDetails(dikeRingId, Location2Id, scenarioId); -// Assert.AreEqual("-3.632", scenarioDetails.First(x => x.ParameterName.Equals("HeadPL3")).ParameterValue); -// } + [Test] + public void ValuesFromShapeFileAreCopiedToScenarioIfNotDefinedInScenariosCsv() + { + SetupInvoer1WithShapeFiles(); + string dikeRingId = dataPluginImporter.GetDikeRingIdList().FirstOrDefault(); + dataPluginImporter.ImportDataForDikeRings(new List { dikeRingId }, null); + + string scenarioId = dataPluginImporter.GetScenarioList(dikeRingId, Location1Id).FirstOrDefault(); + IEnumerable scenarioDetails = dataPluginImporter.GetScenarioDetails(dikeRingId, Location1Id, scenarioId); + var nameValueParameters = scenarioDetails as NameValueParameter[] ?? scenarioDetails.ToArray(); + Assert.IsTrue(nameValueParameters.Any()); + Assert.AreEqual("-3.651", nameValueParameters.FirstOrDefault(x => x.ParameterName.Equals("HeadPL3")).ParameterValue); + + scenarioDetails = dataPluginImporter.GetScenarioDetails(dikeRingId, Location2Id, scenarioId); + Assert.AreEqual("-3.632", scenarioDetails.First(x => x.ParameterName.Equals("HeadPL3")).ParameterValue); + } } } Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/IO/CombineImportedData.cs =================================================================== diff -u -r2420 -r2421 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/IO/CombineImportedData.cs (.../CombineImportedData.cs) (revision 2420) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/IO/CombineImportedData.cs (.../CombineImportedData.cs) (revision 2421) @@ -137,10 +137,14 @@ TranferSoilProfilesData(dike); TranferSegmentData(dike); // Use InvokeWithoutPublishingEvents for performance reasons after introducing SurfaceLine2 - DataEventPublisher.InvokeWithoutPublishingEvents(() => - { - TransferSurfaceLines(dike); - }); + DataEventPublisher.InvokeWithoutPublishingEvents(() => { TransferSurfaceLines(dike); }); + } + } + + public void AddScenarioDataToDikes() + { + foreach (var dike in waterBoard.Dikes) + { if (ScenarioRecords != null) { TransferScenarios(dike); Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DataPlugins/DataPluginImporter.cs =================================================================== diff -u -r2204 -r2421 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DataPlugins/DataPluginImporter.cs (.../DataPluginImporter.cs) (revision 2204) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DataPlugins/DataPluginImporter.cs (.../DataPluginImporter.cs) (revision 2421) @@ -1103,11 +1103,12 @@ { if (isDikeRingAndLocationDataImported || isAllDataImported) return; + CsvImporter csvImporter = null; foreach (var dataSource in DataSources) { - ImportDikeRingAndLocationData(dataSource); + ImportDikeRingAndLocationData(dataSource, ref csvImporter); } - + AddScenarioDataToDikes(csvImporter); isDikeRingAndLocationDataImported = true; } @@ -1132,16 +1133,17 @@ /// Imports the dike ring and location data. /// /// The data source. + /// /// - private void ImportDikeRingAndLocationData(DataSource dataSource) + private void ImportDikeRingAndLocationData(DataSource dataSource, ref CsvImporter csvImporter) { var dataLocation = GetDataLocation(dataSource); switch (dataSource.DataSourceType) { case DataSourceType.CsvFiles: // New importer - var csvImporter = ImportCsvFiles(dataLocation, ImportMode.DikeRingAndLocationData, null); + csvImporter = ImportCsvFiles(dataLocation, ImportMode.DikeRingAndLocationData, null); var combineImportedData = new CombineImportedData { WaterBoard = waterBoard, @@ -1287,19 +1289,38 @@ { ImportData2(dataSource, dikeRingIdList, importMode, progress, ref csvImporter); } - if (!csvDataAdded) { AddCsvDataToDikes(csvImporter); } - + AddScenarioDataToDikes(csvImporter); if (importMode == ImportMode.All) { CorrectSegmentAssignments(); } } /// + /// Adds the scenario data to dikes. + /// + /// The CSV importer. + private void AddScenarioDataToDikes(CsvImporter csvImporter) + { + if (csvImporter != null) + { + DataSourceManager.CurrentSource = DataSourceSystemType.Csv; + var combineImportedData = new CombineImportedData + { + WaterBoard = waterBoard, + ScenarioRecords = csvImporter.ScenariosRecords, + }; + combineImportedData.AddScenarioDataToDikes(); + Debug.Assert(ReferenceEquals(waterBoard, combineImportedData.WaterBoard)); + waterBoard = combineImportedData.WaterBoard; + } + } + + /// /// Adds the CSV data to dikes. /// /// The CSV importer.