Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Translations.xml
===================================================================
diff -u -r2802 -r2826
--- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Translations.xml (.../Translations.xml) (revision 2802)
+++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Translations.xml (.../Translations.xml) (revision 2826)
@@ -362,7 +362,8 @@
-
+
+
Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/CsvImporters/CsvImporterScenarios.cs
===================================================================
diff -u -r2795 -r2826
--- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/CsvImporters/CsvImporterScenarios.cs (.../CsvImporterScenarios.cs) (revision 2795)
+++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/CsvImporters/CsvImporterScenarios.cs (.../CsvImporterScenarios.cs) (revision 2826)
@@ -68,7 +68,7 @@
public double? HeadPl3 { get; set; } //optional
public double? HeadPl4 { get; set; } //optional
- public double? PolderLevel { get; set; } // required
+ public double? PolderLevel { get; set; } // optional
public double? HeadPl2 { get; set; } // Optional
Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/IO/CombineImportedData.cs
===================================================================
diff -u -r2803 -r2826
--- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/IO/CombineImportedData.cs (.../CombineImportedData.cs) (revision 2803)
+++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/IO/CombineImportedData.cs (.../CombineImportedData.cs) (revision 2826)
@@ -637,7 +637,7 @@
{
// Add to location scenario list
var dikeScenario = dikeLocation.Scenarios.FirstOrDefault(s => s.Location.Name == scenarioRecord.LocationId &&
- s.LocationScenarioID == scenarioRecord.LocationScenarioId.ToString());
+ s.LocationScenarioID == scenarioRecord.LocationScenarioId);
if (dikeScenario != null)
{
var duplicateScenarioRecordError = LocalizationManager.GetTranslatedText(GetType(), "duplicateScenarioRecordError");
@@ -649,56 +649,82 @@
else
{
var locationRecord = LocationRecords.FirstOrDefault(l => l.LocationId == scenarioRecord.LocationId);
- // set values in scenario (1 from scenariorecord, 2 from locationrecord, 3 default)
- var modelFactors = new ModelFactors();
- modelFactors.RequiredSafetyFactorStabilityInnerSlope = scenarioRecord.RequiredSafetyFactorStabilityInnerSlope ??
- (locationRecord.RequiredSafetyFactorStabilityInnerSlope ?? modelFactors.RequiredSafetyFactorStabilityInnerSlope);
- modelFactors.RequiredSafetyFactorStabilityOuterSlope = scenarioRecord.RequiredSafetyFactorStabilityOuterSlope ??
- (locationRecord.RequiredSafetyFactorStabilityOuterSlope ?? modelFactors.RequiredSafetyFactorStabilityOuterSlope);
- modelFactors.RequiredSafetyFactorPiping = scenarioRecord.RequiredSafetyFactorPiping ??
- (locationRecord.RequiredSafetyFactorPiping ?? modelFactors.RequiredSafetyFactorPiping);
- modelFactors.UpliftCriterionStability = scenarioRecord.UpliftCriterionStability ??
- (locationRecord.UpliftCriterionStability ?? modelFactors.UpliftCriterionStability);
- modelFactors.UpliftCriterionPiping = scenarioRecord.UpliftCriterionPiping ??
- (locationRecord.UpliftCriterionPiping ?? modelFactors.UpliftCriterionPiping);
- var scenario = new Scenario
- {
- Location = dikeLocation,
- LocationScenarioID = scenarioRecord.LocationScenarioId,
- ModelFactors = modelFactors
- };
- scenario.PlLineOffsetBelowDikeToeAtPolder = scenarioRecord.PlLineOffsetBelowDikeToeAtPolder ??
- (locationRecord.PlLineOffsetBelowDikeToeAtPolder ?? scenario.PlLineOffsetBelowDikeToeAtPolder);
- scenario.PlLineOffsetBelowDikeTopAtPolder = scenarioRecord.PlLineOffsetBelowDikeTopAtPolder ??
- (locationRecord.PlLineOffsetBelowDikeTopAtPolder ?? scenario.PlLineOffsetBelowDikeTopAtPolder);
- scenario.PlLineOffsetBelowDikeTopAtRiver = scenarioRecord.PlLineOffsetBelowDikeTopAtRiver ??
- (locationRecord.PlLineOffsetBelowDikeTopAtRiver ?? scenario.PlLineOffsetBelowDikeTopAtRiver);
- scenario.PlLineOffsetBelowShoulderBaseInside = scenarioRecord.PlLineOffsetBelowShoulderBaseInside ??
- (locationRecord.PlLineOffsetBelowShoulderBaseInside ?? scenario.PlLineOffsetBelowShoulderBaseInside);
- // set values in scenario (1 from scenariorecord, 2 from locationrecord, 3 stays null)
- scenario.PlLineOffsetBelowDikeCrestMiddle = scenarioRecord.PlLineOffsetBelowDikeCrestMiddle ??
- locationRecord.PlLineOffsetBelowDikeCrestMiddle;
- scenario.PlLineOffsetFactorBelowShoulderCrest = scenarioRecord.PlLineOffsetFactorBelowShoulderCrest ??
- locationRecord.PlLineOffsetFactorBelowShoulderCrest;
- scenario.UsePlLineOffsetBelowDikeCrestMiddle = scenarioRecord.UsePlLineOffsetBelowDikeCrestMiddle ??
- locationRecord.UsePlLineOffsetBelowDikeCrestMiddle;
- scenario.UsePlLineOffsetFactorBelowShoulderCrest = scenarioRecord.UsePlLineOffsetFactorBelowShoulderCrest ??
- locationRecord.UsePlLineOffsetFactorBelowShoulderCrest;
- scenario.HeadPl3 = scenarioRecord.HeadPl3 ?? locationRecord.HeadPl3;
- scenario.HeadPl4 = scenarioRecord.HeadPl4 ?? locationRecord.HeadPl4;
- scenario.PolderLevel = scenarioRecord.PolderLevel ?? locationRecord.PolderLevel ?? scenario.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;
- dikeLocation.Scenarios.Add(scenario);
+ // Check if polder is present in either the location or the scenario record. This
+ // value is mandatory and must be present in either one.
+ if (locationRecord?.PolderLevel == null && scenarioRecord.PolderLevel == null)
+ {
+ string missingPolderLevelError = LocalizationManager.GetTranslatedText(GetType(), "missingPolderLevel");
+ LogMessage logmessage = new LogMessage(LogMessageType.Error, null, string.Format("Record {0} : {1}",
+ scenarioRecord.ScenarioRecordId, missingPolderLevelError));
+ ErrorMessages.Add(logmessage);
+ }
+ else
+ {
+ var scenario = CreateScenario(dikeLocation, scenarioRecord, locationRecord);
+ dikeLocation.Scenarios.Add(scenario);
+ }
}
}
}
}
///
+ /// Creates a based on its input arguments.
+ ///
+ /// The that belongs to the .
+ /// The to retrieve the data from.
+ /// The to retrieve the data from.
+ /// A .
+ private static Scenario CreateScenario(Location dikeLocation, CsvImporterScenarios.ScenarioRecord scenarioRecord,
+ CsvImporterLocations.LocationRecord locationRecord)
+ {
+ // set values in scenario (1 from scenariorecord, 2 from locationrecord, 3 default)
+ var modelFactors = new ModelFactors();
+ modelFactors.RequiredSafetyFactorStabilityInnerSlope = scenarioRecord.RequiredSafetyFactorStabilityInnerSlope ??
+ (locationRecord.RequiredSafetyFactorStabilityInnerSlope ?? modelFactors.RequiredSafetyFactorStabilityInnerSlope);
+ modelFactors.RequiredSafetyFactorStabilityOuterSlope = scenarioRecord.RequiredSafetyFactorStabilityOuterSlope ??
+ (locationRecord.RequiredSafetyFactorStabilityOuterSlope ?? modelFactors.RequiredSafetyFactorStabilityOuterSlope);
+ modelFactors.RequiredSafetyFactorPiping = scenarioRecord.RequiredSafetyFactorPiping ??
+ (locationRecord.RequiredSafetyFactorPiping ?? modelFactors.RequiredSafetyFactorPiping);
+ modelFactors.UpliftCriterionStability = scenarioRecord.UpliftCriterionStability ??
+ (locationRecord.UpliftCriterionStability ?? modelFactors.UpliftCriterionStability);
+ modelFactors.UpliftCriterionPiping = scenarioRecord.UpliftCriterionPiping ??
+ (locationRecord.UpliftCriterionPiping ?? modelFactors.UpliftCriterionPiping);
+ var scenario = new Scenario
+ {
+ Location = dikeLocation,
+ LocationScenarioID = scenarioRecord.LocationScenarioId,
+ ModelFactors = modelFactors
+ };
+ scenario.PlLineOffsetBelowDikeToeAtPolder = scenarioRecord.PlLineOffsetBelowDikeToeAtPolder ??
+ (locationRecord.PlLineOffsetBelowDikeToeAtPolder ?? scenario.PlLineOffsetBelowDikeToeAtPolder);
+ scenario.PlLineOffsetBelowDikeTopAtPolder = scenarioRecord.PlLineOffsetBelowDikeTopAtPolder ??
+ (locationRecord.PlLineOffsetBelowDikeTopAtPolder ?? scenario.PlLineOffsetBelowDikeTopAtPolder);
+ scenario.PlLineOffsetBelowDikeTopAtRiver = scenarioRecord.PlLineOffsetBelowDikeTopAtRiver ??
+ (locationRecord.PlLineOffsetBelowDikeTopAtRiver ?? scenario.PlLineOffsetBelowDikeTopAtRiver);
+ scenario.PlLineOffsetBelowShoulderBaseInside = scenarioRecord.PlLineOffsetBelowShoulderBaseInside ??
+ (locationRecord.PlLineOffsetBelowShoulderBaseInside ?? scenario.PlLineOffsetBelowShoulderBaseInside);
+ // set values in scenario (1 from scenariorecord, 2 from locationrecord, 3 stays null)
+ scenario.PlLineOffsetBelowDikeCrestMiddle = scenarioRecord.PlLineOffsetBelowDikeCrestMiddle ??
+ locationRecord.PlLineOffsetBelowDikeCrestMiddle;
+ scenario.PlLineOffsetFactorBelowShoulderCrest = scenarioRecord.PlLineOffsetFactorBelowShoulderCrest ??
+ locationRecord.PlLineOffsetFactorBelowShoulderCrest;
+ scenario.UsePlLineOffsetBelowDikeCrestMiddle = scenarioRecord.UsePlLineOffsetBelowDikeCrestMiddle ??
+ locationRecord.UsePlLineOffsetBelowDikeCrestMiddle;
+ scenario.UsePlLineOffsetFactorBelowShoulderCrest = scenarioRecord.UsePlLineOffsetFactorBelowShoulderCrest ??
+ locationRecord.UsePlLineOffsetFactorBelowShoulderCrest;
+ scenario.HeadPl3 = scenarioRecord.HeadPl3 ?? locationRecord.HeadPl3;
+ scenario.HeadPl4 = scenarioRecord.HeadPl4 ?? locationRecord.HeadPl4;
+ scenario.PolderLevel = scenarioRecord.PolderLevel ?? locationRecord.PolderLevel.Value;
+ scenario.HeadPl2 = scenarioRecord.HeadPl2 ?? locationRecord.HeadPl2;
+ scenario.DikeTableHeight = scenarioRecord.DikeTableHeight ?? locationRecord.DikeTableHeight;
+ scenario.RiverLevel = scenarioRecord.RiverLevel ?? locationRecord.RiverLevel;
+ scenario.RiverLevelLow = scenarioRecord.RiverLevelLow ?? locationRecord.RiverLevelLow;
+ return scenario;
+ }
+
+ ///
/// Transfers the locations data.
///
/// The dike.