Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.IO/ClosingStructuresImporter.cs =================================================================== diff -u -re16862df7259eeac44ee34db38d943161a5ba9ee -r492fe6c36c8cfc83d4c624bad14fb4f5120c953d --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.IO/ClosingStructuresImporter.cs (.../ClosingStructuresImporter.cs) (revision e16862df7259eeac44ee34db38d943161a5ba9ee) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.IO/ClosingStructuresImporter.cs (.../ClosingStructuresImporter.cs) (revision 492fe6c36c8cfc83d4c624bad14fb4f5120c953d) @@ -32,7 +32,8 @@ namespace Ringtoets.ClosingStructures.IO { /// - /// Imports point shapefiles containing closing structure locations and csv files containing closing structure schematizations. + /// Imports point shapefiles containing closing structure locations + /// and csv files containing closing structure schematizations. /// public class ClosingStructuresImporter : StructuresImporter> { @@ -45,7 +46,8 @@ /// The path to the file to import from. /// Thrown when , /// , or is null. - public ClosingStructuresImporter(ObservableList importTarget, ReferenceLine referenceLine, string filePath) + public ClosingStructuresImporter(ObservableList importTarget, + ReferenceLine referenceLine, string filePath) : base(importTarget, referenceLine, filePath) {} protected override void CreateSpecificStructures(ICollection structureLocations, @@ -59,8 +61,8 @@ } } - private IEnumerable CreateClosingStructures(IList structureLocations, - Dictionary> groupedStructureParameterRows) + private IEnumerable CreateClosingStructures(IEnumerable structureLocations, + IDictionary> groupedStructureParameterRows) { var closingStructures = new List(); foreach (StructureLocation structureLocation in structureLocations) @@ -72,7 +74,7 @@ : new List(); ValidationResult parameterRowsValidationResult = StructuresParameterRowsValidator.ValidateClosingStructuresParameters(structureParameterRows); - if (parameterRowsValidationResult.CriticalValidationError) + if (!parameterRowsValidationResult.IsValid) { LogValidationErrorForStructure(structureLocation.Name, structureLocation.Id, parameterRowsValidationResult.ErrorMessages); continue; @@ -84,7 +86,8 @@ return closingStructures; } - private ClosingStructure CreateClosingStructure(StructureLocation structureLocation, List structureParameterRows) + private ClosingStructure CreateClosingStructure(StructureLocation structureLocation, + IEnumerable structureParameterRows) { Dictionary rowData = structureParameterRows.ToDictionary( row => row.ParameterId, row => row, StringComparer.OrdinalIgnoreCase); @@ -149,7 +152,8 @@ }); } - private static ClosingStructureInflowModelType GetClosingStructureInflowModelType(StructuresParameterRow structureParameterRow) + private static ClosingStructureInflowModelType GetClosingStructureInflowModelType( + StructuresParameterRow structureParameterRow) { string keywordValue = structureParameterRow.AlphanumericValue.ToLower(); switch (keywordValue) Index: Ringtoets/Common/src/Ringtoets.Common.IO/Structures/StructuresParameterRowsValidator.cs =================================================================== diff -u -re16862df7259eeac44ee34db38d943161a5ba9ee -r492fe6c36c8cfc83d4c624bad14fb4f5120c953d --- Ringtoets/Common/src/Ringtoets.Common.IO/Structures/StructuresParameterRowsValidator.cs (.../StructuresParameterRowsValidator.cs) (revision e16862df7259eeac44ee34db38d943161a5ba9ee) +++ Ringtoets/Common/src/Ringtoets.Common.IO/Structures/StructuresParameterRowsValidator.cs (.../StructuresParameterRowsValidator.cs) (revision 492fe6c36c8cfc83d4c624bad14fb4f5120c953d) @@ -263,7 +263,6 @@ } var errorMessages = new List(); - var criticalValidationError = false; var parametersMissing = 0; foreach (string name in rules.Keys) @@ -272,15 +271,13 @@ if (count < 1) { - errorMessages.Add(string.Format(Resources.StructuresParameterRowsValidator_Parameter_0_missing_or_invalid, name)); parametersMissing++; continue; } if (count > 1) { errorMessages.Add(string.Format(Resources.StructuresParameterRowsValidator_Parameter_0_repeated, name)); - criticalValidationError = true; continue; } @@ -290,18 +287,15 @@ if (validationMessages.Count > 0) { errorMessages.AddRange(validationMessages); - criticalValidationError = true; } } if (parametersMissing == rules.Count) { - errorMessages.Clear(); errorMessages.Add("Geen geldige parameter definities gevonden."); - criticalValidationError = true; } - return new ValidationResult(criticalValidationError, errorMessages); + return new ValidationResult(errorMessages); } private static List DoubleRule(StructuresParameterRow row) Index: Ringtoets/Common/src/Ringtoets.Common.IO/Structures/ValidationResult.cs =================================================================== diff -u -re16862df7259eeac44ee34db38d943161a5ba9ee -r492fe6c36c8cfc83d4c624bad14fb4f5120c953d --- Ringtoets/Common/src/Ringtoets.Common.IO/Structures/ValidationResult.cs (.../ValidationResult.cs) (revision e16862df7259eeac44ee34db38d943161a5ba9ee) +++ Ringtoets/Common/src/Ringtoets.Common.IO/Structures/ValidationResult.cs (.../ValidationResult.cs) (revision 492fe6c36c8cfc83d4c624bad14fb4f5120c953d) @@ -33,20 +33,13 @@ private readonly List errorMessages = new List(); /// - /// Creates a new instance of . + /// Create a new instance of . /// - /// Indicator whether a critical validation error has occurred. /// The error messages for this . /// Thrown when is null. - /// Thrown when: - /// - /// Any message in is null, - /// empty or consists of whitespace. - /// is empty when - /// is true. - /// - /// - public ValidationResult(bool criticalValidationError, ICollection errorMessages) + /// Thrown when any message in is null, + /// empty or consists of whitespace. + public ValidationResult(ICollection errorMessages) { if (errorMessages == null) { @@ -56,27 +49,17 @@ { throw new ArgumentException("Invalid error message string."); } - if (criticalValidationError && !errorMessages.Any()) - { - throw new ArgumentException("No messages supplied with critical error."); - } - CriticalValidationError = criticalValidationError; - ValidationWarning = errorMessages.Count > 0 && !criticalValidationError; + IsValid = errorMessages.Count < 1; this.errorMessages.AddRange(errorMessages); } /// - /// Gets a value which indicates whether a critical validation error has occurred. + /// Gets a value which indicates whether the validation subject is valid. /// - public bool CriticalValidationError { get; } + public bool IsValid { get; private set; } /// - /// Gets a value which indicates whether there are validation warnings. - /// - public bool ValidationWarning { get; } - - /// /// Gets the error messages resulting from the validation. /// public IEnumerable ErrorMessages Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/Structures/StructuresParameterRowsValidatorTest.cs =================================================================== diff -u -re16862df7259eeac44ee34db38d943161a5ba9ee -r492fe6c36c8cfc83d4c624bad14fb4f5120c953d --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/Structures/StructuresParameterRowsValidatorTest.cs (.../StructuresParameterRowsValidatorTest.cs) (revision e16862df7259eeac44ee34db38d943161a5ba9ee) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/Structures/StructuresParameterRowsValidatorTest.cs (.../StructuresParameterRowsValidatorTest.cs) (revision 492fe6c36c8cfc83d4c624bad14fb4f5120c953d) @@ -41,7 +41,7 @@ } [Test] - public void ValidateHeightStructuresParameters_ParameterIdsDuplicated_CriticalValidationErrorTrueAndErrorMessages() + public void ValidateHeightStructuresParameters_ParameterIdsDuplicated_IsValidFalseAndErrorMessages() { // Setup var structuresParameterRow = new StructuresParameterRow @@ -60,23 +60,16 @@ ValidationResult validationResult = StructuresParameterRowsValidator.ValidateHeightStructuresParameters(structureParameterRows); // Assert - Assert.IsTrue(validationResult.CriticalValidationError); + Assert.IsFalse(validationResult.IsValid); var expectedErrorMessages = new List { - "Parameter 'KW_HOOGTE1' komt meerdere keren voor.", - "Geen geldige definitie gevonden voor parameter 'KW_HOOGTE2'.", - "Geen geldige definitie gevonden voor parameter 'KW_HOOGTE3'.", - "Geen geldige definitie gevonden voor parameter 'KW_HOOGTE4'.", - "Geen geldige definitie gevonden voor parameter 'KW_HOOGTE5'.", - "Geen geldige definitie gevonden voor parameter 'KW_HOOGTE6'.", - "Geen geldige definitie gevonden voor parameter 'KW_HOOGTE7'.", - "Geen geldige definitie gevonden voor parameter 'KW_HOOGTE8'." + "Parameter 'KW_HOOGTE1' komt meerdere keren voor." }; CollectionAssert.AreEqual(expectedErrorMessages, validationResult.ErrorMessages); } [Test] - public void ValidateHeightStructuresParameters_OneParameterDefined_CriticalValidationErrorFalseAndValidationWarningTrueAndErrorMessages() + public void ValidateHeightStructuresParameters_OneParameterDefined_IsValidTrueAndMessagesEmpty() { // Setup var structuresParameterRow = new StructuresParameterRow @@ -94,30 +87,19 @@ ValidationResult validationResult = StructuresParameterRowsValidator.ValidateHeightStructuresParameters(structureParameterRows); // Assert - Assert.IsFalse(validationResult.CriticalValidationError); - Assert.IsTrue(validationResult.ValidationWarning); - var expectedErrorMessages = new List - { - "Geen geldige definitie gevonden voor parameter 'KW_HOOGTE2'.", - "Geen geldige definitie gevonden voor parameter 'KW_HOOGTE3'.", - "Geen geldige definitie gevonden voor parameter 'KW_HOOGTE4'.", - "Geen geldige definitie gevonden voor parameter 'KW_HOOGTE5'.", - "Geen geldige definitie gevonden voor parameter 'KW_HOOGTE6'.", - "Geen geldige definitie gevonden voor parameter 'KW_HOOGTE7'.", - "Geen geldige definitie gevonden voor parameter 'KW_HOOGTE8'." - }; - CollectionAssert.AreEqual(expectedErrorMessages, validationResult.ErrorMessages); + Assert.IsTrue(validationResult.IsValid); + CollectionAssert.IsEmpty(validationResult.ErrorMessages); } [Test] - public void ValidateHeightStructuresParameters_NoParameterDefined_CriticalValidationErrorTrueAndErrorMessages() + public void ValidateHeightStructuresParameters_NoParameterDefined_IsValidFalseAndErrorMessages() { // Call ValidationResult validationResult = StructuresParameterRowsValidator.ValidateHeightStructuresParameters( new List()); // Assert - Assert.IsTrue(validationResult.CriticalValidationError); + Assert.IsFalse(validationResult.IsValid); var expectedErrorMessages = new List { "Geen geldige parameter definities gevonden." @@ -127,7 +109,7 @@ [Test] [SetCulture("nl-NL")] - public void ValidateHeightStructuresParameters_ParametersAllInvalid_CriticalValidationErrorTrueAndErrorMessages() + public void ValidateHeightStructuresParameters_ParametersAllInvalid_IsValidFalseAndErrorMessages() { // Setup var structureParameterRows = new List @@ -195,7 +177,7 @@ ValidationResult validationResult = StructuresParameterRowsValidator.ValidateHeightStructuresParameters(structureParameterRows); // Assert - Assert.IsTrue(validationResult.CriticalValidationError); + Assert.IsFalse(validationResult.IsValid); var expectedErrorMessages = new List { "De waarde voor parameter 'KW_HOOGTE1' op regel 1, kolom 'Numeriekewaarde', moet in het bereik [0,0, 360,0] liggen.", @@ -290,7 +272,7 @@ ValidationResult validationResult = StructuresParameterRowsValidator.ValidateHeightStructuresParameters(parameters); // Assert - Assert.IsFalse(validationResult.CriticalValidationError, + Assert.IsTrue(validationResult.IsValid, "Expected to be valid, but found following errors: {0}", string.Join(Environment.NewLine, validationResult.ErrorMessages)); } @@ -307,7 +289,7 @@ } [Test] - public void ValidateClosingStructuresParameters_ParameterIdsDuplicated_CriticalValidationErrorTrueAndErrorMessages() + public void ValidateClosingStructuresParameters_ParameterIdsDuplicated_IsValidFasleAndErrorMessages() { // Setup var structuresParameterRow = new StructuresParameterRow @@ -326,30 +308,16 @@ ValidationResult validationResult = StructuresParameterRowsValidator.ValidateClosingStructuresParameters(structureParameterRows); // Assert - Assert.IsTrue(validationResult.CriticalValidationError); + Assert.IsFalse(validationResult.IsValid); var expectedErrorMessages = new List { - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT1'.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT2'.", - "Parameter 'KW_BETSLUIT3' komt meerdere keren voor.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT4'.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT5'.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT6'.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT7'.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT8'.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT9'.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT10'.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT11'.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT12'.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT13'.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT14'.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT15'." + "Parameter 'KW_BETSLUIT3' komt meerdere keren voor." }; CollectionAssert.AreEqual(expectedErrorMessages, validationResult.ErrorMessages); } [Test] - public void ValidateClosingStructuresParameters_OneParameterDefined_CriticalValidationErrorFalseAndValidationWarningTrueAndErrorMessages() + public void ValidateClosingStructuresParameters_OneParameterDefined_IsValidTrueMessagesEmpty() { // Setup var structuresParameterRow = new StructuresParameterRow @@ -366,38 +334,20 @@ // Call ValidationResult validationResult = StructuresParameterRowsValidator.ValidateClosingStructuresParameters(structureParameterRows); - // Assert - Assert.IsFalse(validationResult.CriticalValidationError); - Assert.IsTrue(validationResult.ValidationWarning); - var expectedErrorMessages = new List - { - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT1'.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT2'.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT4'.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT5'.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT6'.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT7'.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT8'.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT9'.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT10'.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT11'.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT12'.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT13'.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT14'.", - "Geen geldige definitie gevonden voor parameter 'KW_BETSLUIT15'." - }; - CollectionAssert.AreEqual(expectedErrorMessages, validationResult.ErrorMessages); + // Assert; + Assert.IsTrue(validationResult.IsValid); + CollectionAssert.IsEmpty(validationResult.ErrorMessages); } [Test] - public void ValidateClosingStructuresParameters_NoParameterDefined_CriticalValidationErrorTrueAndErrorMessages() + public void ValidateClosingStructuresParameters_NoParameterDefined_IsValidFalseAndErrorMessages() { // Call ValidationResult validationResult = StructuresParameterRowsValidator.ValidateClosingStructuresParameters( new List()); // Assert - Assert.IsTrue(validationResult.CriticalValidationError); + Assert.IsFalse(validationResult.IsValid); var expectedErrorMessages = new List { "Geen geldige parameter definities gevonden." @@ -407,7 +357,7 @@ [Test] [SetCulture("nl-NL")] - public void ValidateClosingStructuresParameters_ParametersAllInvalid_CriticalValidationErrorTrueAndErrorMessages() + public void ValidateClosingStructuresParameters_ParametersAllInvalid_IsValidFalseAndErrorMessages() { // Setup var structureParameterRows = new List @@ -523,7 +473,7 @@ ValidationResult validationResult = StructuresParameterRowsValidator.ValidateClosingStructuresParameters(structureParameterRows); // Assert - Assert.IsTrue(validationResult.CriticalValidationError); + Assert.IsFalse(validationResult.IsValid); var expectedErrorMessages = new List { "De waarde voor parameter 'KW_BETSLUIT1' op regel 1, kolom 'Numeriekewaarde', is te dicht op 0 waardoor een betrouwbare conversie tussen standaardafwijking en variatiecoƫfficiƫnt niet mogelijk is.", @@ -554,7 +504,7 @@ } [Test] - public void ValidateClosingStructuresParameters_ParametersAllValid_CriticalValidationErrorFalseAndNoErrorMessages() + public void ValidateClosingStructuresParameters_ParametersAllValid_IsValidTrueAndNoErrorMessages() { // Setup var structureParameterRows = new List @@ -673,7 +623,7 @@ ValidationResult validationResult = StructuresParameterRowsValidator.ValidateClosingStructuresParameters(structureParameterRows); // Assert - Assert.IsFalse(validationResult.CriticalValidationError); + Assert.IsTrue(validationResult.IsValid); CollectionAssert.IsEmpty(validationResult.ErrorMessages); } @@ -800,7 +750,7 @@ ValidationResult validationResult = StructuresParameterRowsValidator.ValidateClosingStructuresParameters(parameters); // Assert - Assert.IsFalse(validationResult.CriticalValidationError, + Assert.IsTrue(validationResult.IsValid, "Expected to be valid, but found following errors: {0}", string.Join(Environment.NewLine, validationResult.ErrorMessages)); } @@ -817,7 +767,7 @@ } [Test] - public void ValidateStabilityPointStructuresParameters_ParameterIdsDuplicated_CriticalValidationErrorTrueAndErrorMessages() + public void ValidateStabilityPointStructuresParameters_ParameterIdsDuplicated_IsValidFalseAndErrorMessages() { // Setup var structuresParameterRow = new StructuresParameterRow @@ -836,41 +786,16 @@ ValidationResult validationResult = StructuresParameterRowsValidator.ValidateStabilityPointStructuresParameters(structureParameterRows); // Assert - Assert.IsTrue(validationResult.CriticalValidationError); + Assert.IsFalse(validationResult.IsValid); var expectedErrorMessages = new List { - "Parameter 'KW_STERSTAB1' komt meerdere keren voor.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB2'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB3'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB4'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB5'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB6'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB7'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB8'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB9'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB10'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB11'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB12'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB13'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB14'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB15'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB16'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB17'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB18'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB19'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB20'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB21'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB22'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB23'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB24'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB25'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB26'." + "Parameter 'KW_STERSTAB1' komt meerdere keren voor." }; CollectionAssert.AreEqual(expectedErrorMessages, validationResult.ErrorMessages); } [Test] - public void ValidateStabilityPointStructuresParameters_OneParameterDefined_CriticalValidationErrorFalseAndValidationWarningTrueAndErrorMessages() + public void ValidateStabilityPointStructuresParameters_OneParameterDefined_IsValidTrueAndMessagesEmpty() { // Setup var structuresParameterRow = new StructuresParameterRow @@ -888,48 +813,19 @@ ValidationResult validationResult = StructuresParameterRowsValidator.ValidateStabilityPointStructuresParameters(structureParameterRows); // Assert - Assert.IsFalse(validationResult.CriticalValidationError); - Assert.IsTrue(validationResult.ValidationWarning); - var expectedErrorMessages = new List - { - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB2'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB3'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB4'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB5'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB6'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB7'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB8'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB9'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB10'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB11'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB12'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB13'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB14'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB15'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB16'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB17'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB18'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB19'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB20'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB21'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB22'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB23'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB24'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB25'.", - "Geen geldige definitie gevonden voor parameter 'KW_STERSTAB26'." - }; - CollectionAssert.AreEqual(expectedErrorMessages, validationResult.ErrorMessages); + Assert.IsTrue(validationResult.IsValid); + CollectionAssert.IsEmpty(validationResult.ErrorMessages); } [Test] - public void ValidateStabilityPointStructuresParameters_NoParameterDefined_CriticalValidationErrorTrueAndErrorMessages() + public void ValidateStabilityPointStructuresParameters_NoParameterDefined_IsValidFalseAndErrorMessages() { // Call ValidationResult validationResult = StructuresParameterRowsValidator.ValidateStabilityPointStructuresParameters( new List()); // Assert - Assert.IsTrue(validationResult.CriticalValidationError); + Assert.IsFalse(validationResult.IsValid); var expectedErrorMessages = new List { "Geen geldige parameter definities gevonden." @@ -939,7 +835,7 @@ [Test] [SetCulture("nl-NL")] - public void ValidateStabilityPointStructuresParameters_ParametersAllInvalid_CriticalValidationErrorTrueAndErrorMessages() + public void ValidateStabilityPointStructuresParameters_ParametersAllInvalid_IsValidFalseAndErrorMessages() { // Setup var structureParameterRows = new List @@ -1139,7 +1035,7 @@ ValidationResult validationResult = StructuresParameterRowsValidator.ValidateStabilityPointStructuresParameters(structureParameterRows); // Assert - Assert.IsTrue(validationResult.CriticalValidationError); + Assert.IsFalse(validationResult.IsValid); var expectedErrorMessages = new List { "De waarde voor parameter 'KW_STERSTAB1' op regel 1, kolom 'Numeriekewaarde', moet in het bereik [0,0, 360,0] liggen.", @@ -1383,7 +1279,7 @@ ValidationResult validationResult = StructuresParameterRowsValidator.ValidateStabilityPointStructuresParameters(parameters); // Assert - Assert.IsFalse(validationResult.CriticalValidationError, + Assert.IsTrue(validationResult.IsValid, "Expected to be valid, but found following errors: {0}", string.Join(Environment.NewLine, validationResult.ErrorMessages)); } Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/Structures/ValidationResultTest.cs =================================================================== diff -u -re16862df7259eeac44ee34db38d943161a5ba9ee -r492fe6c36c8cfc83d4c624bad14fb4f5120c953d --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/Structures/ValidationResultTest.cs (.../ValidationResultTest.cs) (revision e16862df7259eeac44ee34db38d943161a5ba9ee) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/Structures/ValidationResultTest.cs (.../ValidationResultTest.cs) (revision 492fe6c36c8cfc83d4c624bad14fb4f5120c953d) @@ -34,13 +34,12 @@ public void Constructor_ErrorMessagesNull_ThrowsArgumentException() { // Call - TestDelegate call = () => new ValidationResult(true, null); + TestDelegate call = () => new ValidationResult(null); // Assert string paramName = Assert.Throws(call).ParamName; Assert.AreEqual("errorMessages", paramName); } - [Test] [TestCase(null)] @@ -53,55 +52,40 @@ errorMessages.Add(errormessage); // Call - TestDelegate call = () => new ValidationResult(true, errorMessages); + TestDelegate call = () => new ValidationResult(errorMessages); // Assert TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, "Invalid error message string."); } [Test] - public void Constructor_CriticalValidationErrorTrueAndErrorMessagesEmpty_ThrowArgumentException() + public void Constructor_ErrorMessagesEmpty_ExpectedValues() { // Setup - var errorMessages = new List(); + List errorMessages = new List(); // Call - TestDelegate test = () => new ValidationResult(true, errorMessages); + var validationResult = new ValidationResult(errorMessages); // Assert - TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, "No messages supplied with critical error."); + Assert.IsTrue(validationResult.IsValid); + CollectionAssert.IsEmpty(validationResult.ErrorMessages); } [Test] - public void Constructor_CriticalErrorTrueAndErrorMessages_ValidationWarningFalse() + public void Constructor_ErrorMessages_ExpectedValues() { // Setup List errorMessages = TestMessages(); // Call - var result = new ValidationResult(true, errorMessages); + var validationResult = new ValidationResult(errorMessages); // Assert - CollectionAssert.AreEqual(errorMessages, result.ErrorMessages); - Assert.IsTrue(result.CriticalValidationError); - Assert.IsFalse(result.ValidationWarning); + Assert.IsFalse(validationResult.IsValid); + CollectionAssert.AreEqual(errorMessages, validationResult.ErrorMessages); } - [Test] - public void Constructor_CriticalerrorFalseAndErrorMessages_ValidationWarningTrue() - { - // Setup - List errorMessages = TestMessages(); - - // Call - var result = new ValidationResult(false, errorMessages); - - // Assert - CollectionAssert.AreEqual(errorMessages, result.ErrorMessages); - Assert.IsFalse(result.CriticalValidationError); - Assert.IsTrue(result.ValidationWarning); - } - private List TestMessages() { return new List Index: Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Data/HeightStructure.cs =================================================================== diff -u -r8e8f8c83c45656f65adaa8e47600379dc5ae8f61 -r492fe6c36c8cfc83d4c624bad14fb4f5120c953d --- Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Data/HeightStructure.cs (.../HeightStructure.cs) (revision 8e8f8c83c45656f65adaa8e47600379dc5ae8f61) +++ Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Data/HeightStructure.cs (.../HeightStructure.cs) (revision 492fe6c36c8cfc83d4c624bad14fb4f5120c953d) @@ -137,25 +137,25 @@ /// Gets the crest level of the height structure. /// [m+NAP] /// - public NormalDistribution LevelCrestStructure { get; private set; } + public NormalDistribution LevelCrestStructure { get; } /// /// Gets the flow width of the height structure at the bottom protection. /// [m] /// - public LogNormalDistribution FlowWidthAtBottomProtection { get; private set; } + public LogNormalDistribution FlowWidthAtBottomProtection { get; } /// /// Gets the critical overtopping discharge per meter of the height structure. /// [m^3/s/m] /// - public VariationCoefficientLogNormalDistribution CriticalOvertoppingDischarge { get; private set; } + public VariationCoefficientLogNormalDistribution CriticalOvertoppingDischarge { get; } /// /// Gets the flow apertures width of the height structure. /// [m] /// - public NormalDistribution WidthFlowApertures { get; private set; } + public NormalDistribution WidthFlowApertures { get; } /// /// Gets or sets the failure probability of the height structure, given erosion. @@ -167,13 +167,13 @@ /// Gets the storage area of the height structure. /// [m^2] /// - public VariationCoefficientLogNormalDistribution StorageStructureArea { get; private set; } + public VariationCoefficientLogNormalDistribution StorageStructureArea { get; } /// /// Gets the allowed increase of level for storage of the height structure. /// [m] /// - public LogNormalDistribution AllowedLevelIncreaseStorage { get; private set; } + public LogNormalDistribution AllowedLevelIncreaseStorage { get; } } } } \ No newline at end of file Index: Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.IO/HeightStructuresImporter.cs =================================================================== diff -u -re16862df7259eeac44ee34db38d943161a5ba9ee -r492fe6c36c8cfc83d4c624bad14fb4f5120c953d --- Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.IO/HeightStructuresImporter.cs (.../HeightStructuresImporter.cs) (revision e16862df7259eeac44ee34db38d943161a5ba9ee) +++ Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.IO/HeightStructuresImporter.cs (.../HeightStructuresImporter.cs) (revision 492fe6c36c8cfc83d4c624bad14fb4f5120c953d) @@ -24,19 +24,23 @@ using System.Linq; using Core.Common.Base; using Core.Common.Base.Data; +using log4net; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.IO.FileImporters; +using Ringtoets.Common.IO.Properties; using Ringtoets.Common.IO.Structures; using Ringtoets.HeightStructures.Data; -using RingtoetsCommonIOResources = Ringtoets.Common.IO.Properties.Resources; namespace Ringtoets.HeightStructures.IO { /// - /// Imports point shapefiles containing height structure locations and csv files containing height structure schematizations. + /// Imports point shapefiles containing height structure locations + /// and csv files containing height structure schematizations. /// public class HeightStructuresImporter : StructuresImporter> { + private readonly ILog log = LogManager.GetLogger(typeof(HeightStructuresImporter)); + /// /// Creates a new instance of . /// @@ -46,7 +50,8 @@ /// The path to the file to import from. /// Thrown when , /// or is null. - public HeightStructuresImporter(ObservableList importTarget, ReferenceLine referenceLine, string filePath) + public HeightStructuresImporter(ObservableList importTarget, + ReferenceLine referenceLine, string filePath) : base(importTarget, referenceLine, filePath) {} protected override void CreateSpecificStructures(ICollection structureLocations, @@ -60,8 +65,8 @@ } } - private IEnumerable CreateHeightStructures(IList structureLocations, - Dictionary> groupedStructureParameterRows) + private IEnumerable CreateHeightStructures(IEnumerable structureLocations, + IDictionary> groupedStructureParameterRows) { var heightStructures = new List(); foreach (StructureLocation structureLocation in structureLocations) @@ -73,7 +78,7 @@ : new List(); ValidationResult parameterRowsValidationResult = StructuresParameterRowsValidator.ValidateHeightStructuresParameters(structureParameterRows); - if (parameterRowsValidationResult.CriticalValidationError) + if (!parameterRowsValidationResult.IsValid) { LogValidationErrorForStructure(structureLocation.Name, structureLocation.Id, parameterRowsValidationResult.ErrorMessages); continue; @@ -85,48 +90,102 @@ return heightStructures; } - private HeightStructure CreateHeightStructure(StructureLocation structureLocation, List structureParameterRows) + private HeightStructure CreateHeightStructure(StructureLocation structureLocation, + IEnumerable structureParameterRows) { - Dictionary rowData = structureParameterRows.ToDictionary(row => row.ParameterId, row => row, StringComparer.OrdinalIgnoreCase); + Dictionary rowData = structureParameterRows.ToDictionary( + row => row.ParameterId, row => row, StringComparer.OrdinalIgnoreCase); string structureName = structureLocation.Name; - return new HeightStructure(new HeightStructure.ConstructionProperties + var constructionProperties = new HeightStructure.ConstructionProperties { - Name = structureName, Id = structureLocation.Id, - Location = structureLocation.Point, - StructureNormalOrientation = rowData[StructureFilesKeywords.HeightStructureParameterKeyword1].NumericalValue, - LevelCrestStructure = - { - Mean = (RoundedDouble) rowData[StructureFilesKeywords.HeightStructureParameterKeyword2].NumericalValue, - StandardDeviation = GetStandardDeviation(rowData[StructureFilesKeywords.HeightStructureParameterKeyword2], structureName) - }, - FlowWidthAtBottomProtection = - { - Mean = (RoundedDouble) rowData[StructureFilesKeywords.HeightStructureParameterKeyword3].NumericalValue, - StandardDeviation = GetStandardDeviation(rowData[StructureFilesKeywords.HeightStructureParameterKeyword3], structureName) - }, - CriticalOvertoppingDischarge = - { - Mean = (RoundedDouble) rowData[StructureFilesKeywords.HeightStructureParameterKeyword4].NumericalValue, - CoefficientOfVariation = GetCoefficientOfVariation(rowData[StructureFilesKeywords.HeightStructureParameterKeyword4], structureName) - }, - WidthFlowApertures = - { - Mean = (RoundedDouble) rowData[StructureFilesKeywords.HeightStructureParameterKeyword5].NumericalValue, - StandardDeviation = GetStandardDeviation(rowData[StructureFilesKeywords.HeightStructureParameterKeyword5], structureName) - }, - FailureProbabilityStructureWithErosion = rowData[StructureFilesKeywords.HeightStructureParameterKeyword6].NumericalValue, - StorageStructureArea = - { - Mean = (RoundedDouble) rowData[StructureFilesKeywords.HeightStructureParameterKeyword7].NumericalValue, - CoefficientOfVariation = GetCoefficientOfVariation(rowData[StructureFilesKeywords.HeightStructureParameterKeyword7], structureName) - }, - AllowedLevelIncreaseStorage = - { - Mean = (RoundedDouble) rowData[StructureFilesKeywords.HeightStructureParameterKeyword8].NumericalValue, - StandardDeviation = GetStandardDeviation(rowData[StructureFilesKeywords.HeightStructureParameterKeyword8], structureName) - } - }); + Name = structureName, + Id = structureLocation.Id, + Location = structureLocation.Point + }; + + TrySetConstructionProperty((properties, rows, key) => properties.StructureNormalOrientation = rows[key].NumericalValue, + constructionProperties, + rowData, + StructureFilesKeywords.HeightStructureParameterKeyword1); + + TrySetConstructionProperty((properties, rows, key) => + { + properties.LevelCrestStructure.Mean = (RoundedDouble) rows[key].NumericalValue; + properties.LevelCrestStructure.StandardDeviation = GetStandardDeviation(rows[key], structureName); + }, + constructionProperties, + rowData, + StructureFilesKeywords.HeightStructureParameterKeyword2); + + TrySetConstructionProperty((properties, rows, key) => + { + properties.FlowWidthAtBottomProtection.Mean = (RoundedDouble) rows[key].NumericalValue; + properties.FlowWidthAtBottomProtection.StandardDeviation = GetStandardDeviation(rows[key], structureName); + }, + constructionProperties, + rowData, + StructureFilesKeywords.HeightStructureParameterKeyword3); + + TrySetConstructionProperty((properties, rows, key) => + { + properties.CriticalOvertoppingDischarge.Mean = (RoundedDouble) rows[key].NumericalValue; + properties.CriticalOvertoppingDischarge.CoefficientOfVariation = GetCoefficientOfVariation(rows[key], structureName); + }, + constructionProperties, + rowData, + StructureFilesKeywords.HeightStructureParameterKeyword4); + + TrySetConstructionProperty((properties, rows, key) => + { + properties.WidthFlowApertures.Mean = (RoundedDouble) rows[key].NumericalValue; + properties.WidthFlowApertures.StandardDeviation = GetStandardDeviation(rows[key], structureName); + }, + constructionProperties, + rowData, + StructureFilesKeywords.HeightStructureParameterKeyword5); + + TrySetConstructionProperty((properties, rows, key) => properties.FailureProbabilityStructureWithErosion = rows[key].NumericalValue, + constructionProperties, + rowData, + StructureFilesKeywords.HeightStructureParameterKeyword6); + + TrySetConstructionProperty((properties, rows, key) => + { + properties.StorageStructureArea.Mean = (RoundedDouble) rows[key].NumericalValue; + properties.StorageStructureArea.CoefficientOfVariation = GetCoefficientOfVariation(rows[key], structureName); + }, + constructionProperties, + rowData, + StructureFilesKeywords.HeightStructureParameterKeyword7); + + TrySetConstructionProperty((properties, rows, key) => + { + properties.AllowedLevelIncreaseStorage.Mean = (RoundedDouble) rows[key].NumericalValue; + properties.AllowedLevelIncreaseStorage.StandardDeviation = GetStandardDeviation(rows[key], structureName); + }, + constructionProperties, + rowData, + StructureFilesKeywords.HeightStructureParameterKeyword8); + + return new HeightStructure(constructionProperties); } + + private void TrySetConstructionProperty(Action, + string> setPropertyAction, + HeightStructure.ConstructionProperties constructionProperties, + IDictionary rowData, + string key) + { + if (rowData.ContainsKey(key)) + { + setPropertyAction(constructionProperties, rowData, key); + } + else + { + log.Warn(string.Format(Resources.StructuresParameterRowsValidator_Parameter_0_missing_or_invalid, key)); + } + } } } \ No newline at end of file Index: Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.IO.Test/HeightStructuresImporterTest.cs =================================================================== diff -u -r0caa1138df6f465ab6b82ac46dca2bda147ee6f5 -r492fe6c36c8cfc83d4c624bad14fb4f5120c953d --- Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.IO.Test/HeightStructuresImporterTest.cs (.../HeightStructuresImporterTest.cs) (revision 0caa1138df6f465ab6b82ac46dca2bda147ee6f5) +++ Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.IO.Test/HeightStructuresImporterTest.cs (.../HeightStructuresImporterTest.cs) (revision 492fe6c36c8cfc83d4c624bad14fb4f5120c953d) @@ -57,17 +57,8 @@ string filePath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Common.IO, Path.Combine("Structures", "CorrectFiles", "Kunstwerken.shp")); - var referencePoints = new List - { - new Point2D(131144.094, 549979.893), - new Point2D(131538.705, 548316.752), - new Point2D(135878.442, 532149.859), - new Point2D(131225.017, 548395.948), - new Point2D(131270.38, 548367.462), - new Point2D(131507.119, 548322.951) - }; - var referenceLine = new ReferenceLine(); - referenceLine.SetGeometry(referencePoints); + ReferenceLine referenceLine = CreateReferenceLine(); + var importTarget = new ObservableList(); var structuresImporter = new HeightStructuresImporter(importTarget, referenceLine, filePath); @@ -101,17 +92,7 @@ string filePath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.HeightStructures.IO, Path.Combine("HeightStructuresVarianceConvert", "StructureNeedVarianceValueConversion.shp")); - var referencePoints = new List - { - new Point2D(131144.094, 549979.893), - new Point2D(131538.705, 548316.752), - new Point2D(135878.442, 532149.859), - new Point2D(131225.017, 548395.948), - new Point2D(131270.38, 548367.462), - new Point2D(131507.119, 548322.951) - }; - var referenceLine = new ReferenceLine(); - referenceLine.SetGeometry(referencePoints); + ReferenceLine referenceLine = CreateReferenceLine(); var importTarget = new ObservableList(); var structuresImporter = new HeightStructuresImporter(importTarget, referenceLine, filePath); @@ -150,17 +131,8 @@ string filePath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Common.IO, Path.Combine("Structures", "CorrectShpIncompleteCsv", "Kunstwerken.shp")); - var referencePoints = new List - { - new Point2D(131144.094, 549979.893), - new Point2D(131538.705, 548316.752), - new Point2D(135878.442, 532149.859), - new Point2D(131225.017, 548395.948), - new Point2D(131270.38, 548367.462), - new Point2D(131507.119, 548322.951) - }; - var referenceLine = new ReferenceLine(); - referenceLine.SetGeometry(referencePoints); + ReferenceLine referenceLine = CreateReferenceLine(); + var importTarget = new ObservableList(); var structuresImporter = new HeightStructuresImporter(importTarget, referenceLine, filePath); @@ -194,6 +166,37 @@ } [Test] + public void Import_MissingParameters_LogWarningAndContinueImportWithDefaultValues() + { + + // Setup + string filePath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.HeightStructures.IO, + Path.Combine(nameof(HeightStructuresImporter), "Kunstwerken.shp")); + + ReferenceLine referenceLine = CreateReferenceLine(); + + var importTarget = new ObservableList(); + var structuresImporter = new HeightStructuresImporter(importTarget, referenceLine, filePath); + + // Call + var importResult = false; + Action call = () => importResult = structuresImporter.Import(); + + // Assert + TestHelper.AssertLogMessages(call, msgs => + { + string[] messages = msgs.ToArray(); + Assert.AreEqual(4, messages.Length); + + Assert.AreEqual("Geen geldige definitie gevonden voor parameter 'KW_HOOGTE1'.", messages[0]); + Assert.AreEqual("Geen geldige definitie gevonden voor parameter 'KW_HOOGTE3'.", messages[1]); + Assert.AreEqual("Geen geldige definitie gevonden voor parameter 'KW_HOOGTE6'.", messages[2]); + }); + Assert.IsTrue(importResult); + Assert.AreEqual(1, importTarget.Count); + } + + [Test] public void Import_ParameterIdsWithVaryingCase_TrueAndImportTargetUpdated() { // Setup @@ -220,6 +223,22 @@ Assert.AreEqual(4, importTarget.Count); } + private static ReferenceLine CreateReferenceLine() + { + var referencePoints = new List + { + new Point2D(131144.094, 549979.893), + new Point2D(131538.705, 548316.752), + new Point2D(135878.442, 532149.859), + new Point2D(131225.017, 548395.948), + new Point2D(131270.38, 548367.462), + new Point2D(131507.119, 548322.951) + }; + var referenceLine = new ReferenceLine(); + referenceLine.SetGeometry(referencePoints); + return referenceLine; + } + private static string CreateExpectedErrorMessage(string filePath, string structureName, string structureId, IEnumerable messages) { Index: Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.IO.Test/test-data/HeightStructuresImporter/Kunstwerken.csv =================================================================== diff -u --- Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.IO.Test/test-data/HeightStructuresImporter/Kunstwerken.csv (revision 0) +++ Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.IO.Test/test-data/HeightStructuresImporter/Kunstwerken.csv (revision 492fe6c36c8cfc83d4c624bad14fb4f5120c953d) @@ -0,0 +1,6 @@ +Namespace;Identificatie;Versie;Kunstwerken.identificatie;Parameter.code;Parameter.omschrijving;Grootheid.code;Grootheid.omschrijving;Eenheid.code;Eenheid.omschrijving;Hoedanigheid.code;Hoedanigheid.omschrijving;Waardebepalingsmethode.code;Waardebepalingsmethode.codespace;Waardebewerkingsmethode.code;Waardebewerkingsmethode.codespace;AlfanumeriekeWaarde;NumeriekeWaarde;Standaardafwijking.variatie;Boolean;Kwaliteitsoordeel.code +12;KUNST1;1;KW_HOOGTE2;KRUIN;Kruin;NIVEAU;Niveau;m;meter;;;Schematiseringshandleiding;;;;;5.9;0.01;1; +12;KUNST1;1;KW_HOOGTE4;OVS;Overslag;DEBIET;Debiet;m3/s/m;kubieke meter per seconden per meter;;;Schematiseringshandleiding;;;;;0.1;0.15;0; +12;KUNST1;1;KW_HOOGTE5;KRUIN;Kruin;BREEDTE;Breedte;m;meter;;;Schematiseringshandleiding;;;;;4;0.05;1; +12;KUNST1;1;KW_HOOGTE7;KOMBERG;Komberging;OPPERVLAKTE;Oppervlakte;m2;vierkante meter;;;Schematiseringshandleiding;;;;;500000;0.1;0; +12;KUNST1;1;KW_HOOGTE8;PEIL;Peil;VERHOGING;Verhoging;m;meter;;;Schematiseringshandleiding;;;;;6.5;0.1;0; Index: Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.IO.Test/test-data/HeightStructuresImporter/Kunstwerken.dbf =================================================================== diff -u Binary files differ Index: Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.IO.Test/test-data/HeightStructuresImporter/Kunstwerken.prj =================================================================== diff -u --- Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.IO.Test/test-data/HeightStructuresImporter/Kunstwerken.prj (revision 0) +++ Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.IO.Test/test-data/HeightStructuresImporter/Kunstwerken.prj (revision 492fe6c36c8cfc83d4c624bad14fb4f5120c953d) @@ -0,0 +1 @@ +PROJCS["RD_New",GEOGCS["GCS_Amersfoort",DATUM["D_Amersfoort",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.017453292519943295]],PROJECTION["Double_Stereographic"],PARAMETER["False_Easting",155000.0],PARAMETER["False_Northing",463000.0],PARAMETER["Central_Meridian",5.38763888888889],PARAMETER["Scale_Factor",0.9999079],PARAMETER["Latitude_Of_Origin",52.15616055555555],UNIT["Meter",1.0]] \ No newline at end of file Index: Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.IO.Test/test-data/HeightStructuresImporter/Kunstwerken.shp =================================================================== diff -u Binary files differ Index: Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.IO.Test/test-data/HeightStructuresImporter/Kunstwerken.shx =================================================================== diff -u Binary files differ Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/StabilityPointStructuresImporter.cs =================================================================== diff -u -re16862df7259eeac44ee34db38d943161a5ba9ee -r492fe6c36c8cfc83d4c624bad14fb4f5120c953d --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/StabilityPointStructuresImporter.cs (.../StabilityPointStructuresImporter.cs) (revision e16862df7259eeac44ee34db38d943161a5ba9ee) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/StabilityPointStructuresImporter.cs (.../StabilityPointStructuresImporter.cs) (revision 492fe6c36c8cfc83d4c624bad14fb4f5120c953d) @@ -32,7 +32,8 @@ namespace Ringtoets.StabilityPointStructures.IO { /// - /// Imports point shapefiles containing stability point structure locations and csv files containing stability point structure schematizations. + /// Imports point shapefiles containing stability point structure locations + /// and csv files containing stability point structure schematizations. /// public class StabilityPointStructuresImporter : StructuresImporter> { @@ -45,8 +46,9 @@ /// The path to the file to import from. /// Thrown when , /// , or is null. - public StabilityPointStructuresImporter(ObservableList importTarget, ReferenceLine referenceLine, string filePath) - : base(importTarget, referenceLine, filePath) { } + public StabilityPointStructuresImporter(ObservableList importTarget, + ReferenceLine referenceLine, string filePath) + : base(importTarget, referenceLine, filePath) {} protected override void CreateSpecificStructures(ICollection structureLocations, Dictionary> groupedStructureParameterRows) @@ -59,8 +61,8 @@ } } - private IEnumerable CreateStabilityPointStructures(IList structureLocations, - Dictionary> groupedStructureParameterRows) + private IEnumerable CreateStabilityPointStructures(IEnumerable structureLocations, + IDictionary> groupedStructureParameterRows) { var stabilityPointStructures = new List(); foreach (StructureLocation structureLocation in structureLocations) @@ -72,7 +74,7 @@ : new List(); ValidationResult parameterRowsValidationResult = StructuresParameterRowsValidator.ValidateStabilityPointStructuresParameters(structureParameterRows); - if (parameterRowsValidationResult.CriticalValidationError) + if (!parameterRowsValidationResult.IsValid) { LogValidationErrorForStructure(structureLocation.Name, structureLocation.Id, parameterRowsValidationResult.ErrorMessages); continue; @@ -84,9 +86,11 @@ return stabilityPointStructures; } - private StabilityPointStructure CreateStabilityPointStructure(StructureLocation structureLocation, List structureParameterRows) + private StabilityPointStructure CreateStabilityPointStructure(StructureLocation structureLocation, + IEnumerable structureParameterRows) { - Dictionary rowData = structureParameterRows.ToDictionary(row => row.ParameterId, row => row, StringComparer.OrdinalIgnoreCase); + Dictionary rowData = structureParameterRows.ToDictionary( + row => row.ParameterId, row => row, StringComparer.OrdinalIgnoreCase); string structureName = structureLocation.Name; return new StabilityPointStructure( @@ -199,7 +203,8 @@ }); } - private static StabilityPointStructureInflowModelType GetStabilityPointStructureInflowModelType(StructuresParameterRow structureParameterRow) + private static StabilityPointStructureInflowModelType GetStabilityPointStructureInflowModelType( + StructuresParameterRow structureParameterRow) { string keywordValue = structureParameterRow.AlphanumericValue.ToLower(); switch (keywordValue)