Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/IO/CombineImportedData.cs =================================================================== diff -u -r2785 -r2795 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/IO/CombineImportedData.cs (.../CombineImportedData.cs) (revision 2785) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/IO/CombineImportedData.cs (.../CombineImportedData.cs) (revision 2795) @@ -687,6 +687,7 @@ scenario.HeadPl3 = scenarioRecord.HeadPl3 ?? locationRecord.HeadPl3; scenario.HeadPl4 = scenarioRecord.HeadPl4 ?? locationRecord.HeadPl4; scenario.PolderLevel = scenarioRecord.PolderLevel ?? locationRecord.PolderLevel; + scenario.HeadPl2 = scenarioRecord.HeadPl2 ?? locationRecord.HeadPl2; scenario.DikeTableHeight = scenarioRecord.DikeTableHeight ?? locationRecord.DikeTableHeight; scenario.RiverLevel = scenarioRecord.RiverLevel ?? locationRecord.RiverLevel; scenario.RiverLevelLow = scenarioRecord.RiverLevelLow ?? locationRecord.RiverLevelLow; Index: DamClients/DamUI/trunk/src/Dam/Tests/IO/CombineImportedDataTest.cs =================================================================== diff -u -r2785 -r2795 --- DamClients/DamUI/trunk/src/Dam/Tests/IO/CombineImportedDataTest.cs (.../CombineImportedDataTest.cs) (revision 2785) +++ DamClients/DamUI/trunk/src/Dam/Tests/IO/CombineImportedDataTest.cs (.../CombineImportedDataTest.cs) (revision 2795) @@ -252,6 +252,7 @@ 1.45 }, scenarios.Select(sc => sc.RequiredSafetyFactorStabilityInnerSlope)); Assert.IsTrue(scenarios.All(sc => Math.Abs(sc.PolderLevel.Value + 0.25) < tolerance)); + Assert.IsTrue(scenarios.All(sc => Math.Abs(sc.HeadPl2.Value - 0.8727) < tolerance)); } } Index: DamClients/DamUI/trunk/src/Dam/Tests/CsvImporterTestsNew.cs =================================================================== diff -u -r2776 -r2795 --- DamClients/DamUI/trunk/src/Dam/Tests/CsvImporterTestsNew.cs (.../CsvImporterTestsNew.cs) (revision 2776) +++ DamClients/DamUI/trunk/src/Dam/Tests/CsvImporterTestsNew.cs (.../CsvImporterTestsNew.cs) (revision 2795) @@ -377,6 +377,22 @@ } } + private void CreateScenariosWithHeadPL2File() + { + string importFile = importFolder + "\\headPL2.csv"; + if (File.Exists(importFile)) + File.Delete(importFile); + using (var writer = File.CreateText(importFile)) + { + writer.WriteLine( + "location_id;location_scenario_id;head_pl2;"); + writer.WriteLine( + "D1;1;0.001;"); + writer.WriteLine( + "D2;1;0.003;"); + } + } + private void CreateScenariosFileWithIllegalHeader() { string importFile = importFolder + "\\scenarios.csv"; @@ -973,11 +989,12 @@ [Test] public void ScenariosImporterWithPolderLevelTest() { - string importFile = importFolder + "\\polderlevel.csv"; - if (File.Exists(importFile)) - File.Delete(importFile); + const string fileName = "polderlevel.csv"; + string filePath = Path.Combine(importFolder, fileName); + if (File.Exists(filePath)) + File.Delete(filePath); CreateScenariosWithPolderLevelFile(); - CsvImporterScenarios csvImporterScenarios = new CsvImporterScenarios(importFolder + "\\polderlevel.csv"); + CsvImporterScenarios csvImporterScenarios = new CsvImporterScenarios(filePath); IList scenarioRecords = csvImporterScenarios.ImportedItems; Assert.AreEqual("D1", scenarioRecords[0].LocationId); @@ -990,6 +1007,26 @@ } [Test] + public void ScenariosImporterWithHeadPL2Test() + { + const string fileName = "headPL2.csv"; + string filePath = Path.Combine(importFolder, fileName); + if (File.Exists(filePath)) + File.Delete(filePath); + CreateScenariosWithHeadPL2File(); + CsvImporterScenarios csvImporterScenarios = new CsvImporterScenarios(filePath); + IList scenarioRecords = csvImporterScenarios.ImportedItems; + + Assert.AreEqual("D1", scenarioRecords[0].LocationId); + Assert.AreEqual("1", scenarioRecords[0].LocationScenarioId); + Assert.AreEqual(0.001, scenarioRecords[0].HeadPl2); + + Assert.AreEqual("D2", scenarioRecords[1].LocationId); + Assert.AreEqual("1", scenarioRecords[1].LocationScenarioId); + Assert.AreEqual(0.003, scenarioRecords[1].HeadPl2); + } + + [Test] public void AllCsvTimingTest() { DataEventPublisher.InvokeWithoutPublishingEvents(() => Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/CsvImporters/CsvImporterScenarios.cs =================================================================== diff -u -r2776 -r2795 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/CsvImporters/CsvImporterScenarios.cs (.../CsvImporterScenarios.cs) (revision 2776) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/CsvImporters/CsvImporterScenarios.cs (.../CsvImporterScenarios.cs) (revision 2795) @@ -70,6 +70,8 @@ public double? PolderLevel { get; set; } // required + public double? HeadPl2 { get; set; } // Optional + public double? UpliftCriterionPiping { get; set; } //optional public double? UpliftCriterionStability { get; set; } //optional public double? RequiredSafetyFactorPiping { get; set; } //optional @@ -137,6 +139,7 @@ int colIndexHeadPl3OldFormat = CsvReaderUtilities.GetHeaderIndexByString(headers, CsvColumnNames.HeadPl3OldFormatColumnName); int colIndexHeadPl4OldFormat = CsvReaderUtilities.GetHeaderIndexByString(headers, CsvColumnNames.HeadPl4OldFormatColumnName); int colIndexPolderLevel = CsvReaderUtilities.GetHeaderIndexByString(headers, CsvColumnNames.PolderLevelColumnName); + int colIndexHeadPl2 = CsvReaderUtilities.GetHeaderIndexByString(headers, CsvColumnNames.HeadPl2ColumnName); var index = 1; while (csv.ReadNextRecord()) @@ -267,6 +270,12 @@ scenario.PolderLevel = Convert.ToDouble(csv[colIndex]); } + if (colIndexHeadPl2 > -1) + { + colIndex = colIndexHeadPl2; + scenario.HeadPl2 = Convert.ToDouble(csv[colIndex]); + } + scenarioRecords.Add(scenario); } catch (Exception e)