Index: DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs
===================================================================
diff -u -r1536 -r1553
--- DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 1536)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 1553)
@@ -82,13 +82,14 @@
}
[Test]
- public void CanAquiferListBeHandledOK()
+ public void CanAquiferListBeHandledOk()
{
const string inputFileName = @"TestFiles\AquiferListInputFile.xml";
var input = DamXmlSerialization.LoadInputFromXmlFile(inputFileName);
Assert.AreEqual(28, input.AquiferSoils.Length);
DamProjectData actualDamProjectData = FillDamFromXmlInput.CreateDamProjectData(input);
Assert.AreEqual(11, actualDamProjectData.Dike.SoilList.AquiferDictionary.Count);
+ Assert.AreEqual(7, actualDamProjectData.CalculationMessages.Count);
}
private void AddPointToSurfaceLine(SurfaceLine2 surfaceLine, double xCoordinate, double zCoordinate, CharacteristicPointType characteristicPointType)
Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/Deltares.DamEngine.Interface.csproj
===================================================================
diff -u -r1497 -r1553
--- DamEngine/trunk/src/Deltares.DamEngine.Interface/Deltares.DamEngine.Interface.csproj (.../Deltares.DamEngine.Interface.csproj) (revision 1497)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface/Deltares.DamEngine.Interface.csproj (.../Deltares.DamEngine.Interface.csproj) (revision 1553)
@@ -73,6 +73,7 @@
ResXFileCodeGenerator
Resources.Designer.cs
+ Designer
Designer
Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/Properties/Resources.Designer.cs
===================================================================
diff -u -r877 -r1553
--- DamEngine/trunk/src/Deltares.DamEngine.Interface/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 877)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 1553)
@@ -61,6 +61,15 @@
}
///
+ /// Looks up a localized string similar to Soil '{0}' is encountered more than once in the aquifer list. Aquifer is set as value..
+ ///
+ internal static string DoubleAquiferSoil {
+ get {
+ return ResourceManager.GetString("DoubleAquiferSoil", resourceCulture);
+ }
+ }
+
+ ///
/// Looks up a localized string similar to End calculation.
///
internal static string EndCalculation {
Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs
===================================================================
diff -u -r1536 -r1553
--- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 1536)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 1553)
@@ -27,6 +27,7 @@
using Deltares.DamEngine.Data.General;
using Deltares.DamEngine.Data.Geometry;
using Deltares.DamEngine.Data.Geotechnics;
+using Deltares.DamEngine.Data.Standard.Logging;
using Deltares.DamEngine.Interface.Properties;
using Deltares.DamEngine.Io.XmlInput;
using Location = Deltares.DamEngine.Data.General.Location;
@@ -69,7 +70,11 @@
TransferSurfaceLines(input.SurfaceLines, dike.SurfaceLines2);
dike.SoilList = new SoilList();
TransferSoils(input.Soils, dike.SoilList.Soils);
- TransferAquiferSoils(input.AquiferSoils, dike.SoilList);
+ var messages = TransferAquiferSoils(input.AquiferSoils, dike.SoilList);
+ if (messages.Count > 0)
+ {
+ damProjectData.CalculationMessages = messages;
+ }
TransferSoilProfiles1D(input.SoilProfiles1D, dike.SoilProfiles, dike.SoilList);
TransferSoilProfiles2D(input.SoilProfiles2D, dike.SoilProfiles2D, dike.SoilList);
TransferSegments(input.Segments, damProjectData.Segments);
@@ -79,8 +84,9 @@
return damProjectData;
}
- private static void TransferAquiferSoils(InputAquiferSoil[] inputAquiferSoils, SoilList soilList)
+ private static List TransferAquiferSoils(InputAquiferSoil[] inputAquiferSoils, SoilList soilList)
{
+ List validationMessages = new List();
if (inputAquiferSoils != null)
{
soilList.AquiferDictionary = new Dictionary();
@@ -93,13 +99,16 @@
}
else
{
+ // If a soil is (wrongly) in the list more than once, then prefer aquifer true.
if (aquiferSoil.IsAquifer)
- {
+ {
+ validationMessages.Add(new LogMessage(LogMessageType.Warning, aquiferSoil, string.Format(Resources.DoubleAquiferSoil, aquiferSoil.Soilname)));
soilList.AquiferDictionary[soil] = true;
}
}
}
}
+ return validationMessages;
}
private static void TransferAnalysisSpecification(Input input, DamProjectData damProjectData)
Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/Properties/Resources.resx
===================================================================
diff -u -r877 -r1553
--- DamEngine/trunk/src/Deltares.DamEngine.Interface/Properties/Resources.resx (.../Resources.resx) (revision 877)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface/Properties/Resources.resx (.../Resources.resx) (revision 1553)
@@ -117,6 +117,9 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ Soil '{0}' is encountered more than once in the aquifer list. Aquifer is set as value.
+
End calculation
Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/Properties/Resources.nl-NL.resx
===================================================================
diff -u -r877 -r1553
--- DamEngine/trunk/src/Deltares.DamEngine.Interface/Properties/Resources.nl-NL.resx (.../Resources.nl-NL.resx) (revision 877)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface/Properties/Resources.nl-NL.resx (.../Resources.nl-NL.resx) (revision 1553)
@@ -117,6 +117,9 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ Materiaal '{0}' komt meerdere keren voor in de aquifer lijst. Aquifer is hiervoor aangehouden.
+
Eind berekening
Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/EngineInterface.cs
===================================================================
diff -u -r1432 -r1553
--- DamEngine/trunk/src/Deltares.DamEngine.Interface/EngineInterface.cs (.../EngineInterface.cs) (revision 1432)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface/EngineInterface.cs (.../EngineInterface.cs) (revision 1553)
@@ -150,6 +150,22 @@
public string Validate()
{
SendMessage(new LogMessage() { MessageType = LogMessageType.Info, Message = Resources.StartValidation });
+ List validationMessages = null;
+ //validationMessages = DamProjectData.Validate(); or something like this....
+ // Local validation can give messages and these have to be added to the results but note that there
+ // already can be messages added by instantiation of the interface too. So add the local to the global
+ if (validationMessages != null && validationMessages.Count > 0)
+ {
+ DamProjectData.CalculationMessages.AddRange(validationMessages);
+ }
+ // Now check if there are any messages at all, if so return them.
+ if (DamProjectData.CalculationMessages.Count > 0)
+ {
+ Output output = FillXmlOutputFromDam.CreateOutput(DamProjectData);
+ string outputXml = DamXmlSerialization.SaveOutputAsXmlString(output);
+ SendMessage(new LogMessage() { MessageType = LogMessageType.Info, Message = Resources.EndValidation });
+ return outputXml;
+ }
SendMessage(new LogMessage() { MessageType = LogMessageType.Info, Message = Resources.EndValidation });
return null;
}
@@ -163,7 +179,6 @@
string outputXml;
SendMessage(new LogMessage() { MessageType = LogMessageType.Info, Message = Resources.StartCalculation });
- List calculationMessages = null;
switch (DamProjectData.DamProjectType)
{
case DamProjectType.AssessmentRegional: