Index: Riskeer/Migration/src/Riskeer.Migration.Core/EmbeddedResources/Migration_18.1_19.1.sql
===================================================================
diff -u -r69063cb9ec1af19ff43c2a21a621f2e34315af56 -r84d22c9e92e093aaf3bf325b12b0e6870328ad70
--- Riskeer/Migration/src/Riskeer.Migration.Core/EmbeddedResources/Migration_18.1_19.1.sql (.../Migration_18.1_19.1.sql) (revision 69063cb9ec1af19ff43c2a21a621f2e34315af56)
+++ Riskeer/Migration/src/Riskeer.Migration.Core/EmbeddedResources/Migration_18.1_19.1.sql (.../Migration_18.1_19.1.sql) (revision 84d22c9e92e093aaf3bf325b12b0e6870328ad70)
@@ -1216,6 +1216,55 @@
/*
Write logs related to validation of foreshore and dike profiles
*/
+
+-- List all deleted dike profile entities
+CREATE TEMP TABLE InvalidDikeProfileEntities
+(
+ 'DikeProfileEntityId' INTEGER NOT NULL PRIMARY KEY,
+ 'DikeProfileName' TEXT NOT NULL,
+ 'HasValidDikeGeometry' TINYINT(1) NOT NULL,
+ 'HasValidForeshoreGeometry' TINYINT(1) NOT NULL,
+ 'FailureMechanismEntityId' INTEGER NOT NULL
+);
+
+INSERT INTO InvalidDikeProfileEntities(
+ [DikeProfileEntityId],
+ [DikeProfileName],
+ [HasValidDikeGeometry],
+ [HasValidForeshoreGeometry],
+ [FailureMechanismEntityId])
+SELECT
+ [DikeProfileEntityId],
+ [Name],
+ CASE WHEN (LENGTH(DikeGeometryXml) - LENGTH(REPLACE(REPLACE(DikeGeometryXml, '', ''), '', ''))) /
+ (LENGTH('') + LENGTH('')) > 1
+ THEN 1
+ ELSE 0
+ END,
+ CASE WHEN (LENGTH(ForeshoreXML) - LENGTH(REPLACE(REPLACE(ForeshoreXML, '', ''), '', '')))
+ / (LENGTH('') + LENGTH('')) != 1
+ THEN 1
+ ELSE 0
+ END,
+ [FailureMechanismEntityId]
+FROM [SOURCEPROJECT].DikeProfileEntity
+WHERE(LENGTH(DikeGeometryXml) - LENGTH(REPLACE(REPLACE(DikeGeometryXml, '', ''), '', ''))) /
+ (LENGTH('') + LENGTH('')) < 2
+OR (LENGTH(ForeshoreXML) - LENGTH(REPLACE(REPLACE(ForeshoreXML, '', ''), '', '')))
+ / (LENGTH('') + LENGTH('')) = 1;
+
+INSERT INTO TempChanges
+SELECT
+ asfm.[AssessmentSectionId],
+ asfm.[AssessmentSectionName],
+ asfm.[FailureMechanismId],
+ asfm.[FailureMechanismName],
+ CASE WHEN HasValidDikeGeometry = 0 THEN "Dijkprofiel '" || source.[DikeProfileName] ||"' definieert geen geldige dijkgeometrie. De dijkgeometrie moet bestaan uit tenminste 2 punten. Het dijkprofiel is verwijderd."
+ ELSE "Dijkprofiel '" || source.[DikeProfileName] ||"' definieert geen geldige voorlandgeometrie. De voorlandgeometrie moet bestaan uit 0 of tenminste 2 punten. Het dijkprofiel is verwijderd."
+ END
+FROM InvalidDikeProfileEntities AS source
+JOIN TempAssessmentSectionFailureMechanism AS asfm ON asfm.[FailureMechanismId] = [FailureMechanismEntityId];
+
-- List all deleted foreshore profile entities
CREATE TEMP TABLE InvalidForeshoreProfileEntities
(
@@ -1224,7 +1273,7 @@
'FailureMechanismEntityId' INTEGER NOT NULL
);
-INSERT INTO InvalidForeshoreProfileEntities (
+INSERT INTO InvalidForeshoreProfileEntities(
[ForeshoreProfileEntityId],
[ForeshoreProfileName],
[FailureMechanismEntityId])
@@ -1578,7 +1627,7 @@
WHERE(LENGTH(DikeGeometryXml) - LENGTH(REPLACE(REPLACE(DikeGeometryXml, '', ''), '', ''))) /
(LENGTH('') + LENGTH('')) < 2
OR (LENGTH(ForeshoreXML) - LENGTH(REPLACE(REPLACE(ForeshoreXML, '', ''), '', '')))
- / (LENGTH('') + LENGTH('')) != 1
+ / (LENGTH('') + LENGTH('')) = 1
);
DELETE
Index: Riskeer/Migration/test/Riskeer.Migration.Integration.Test/MigrationTo191IntegrationTest.cs
===================================================================
diff -u -re465adce439e685e2349141ec6162af2c8865922 -r84d22c9e92e093aaf3bf325b12b0e6870328ad70
--- Riskeer/Migration/test/Riskeer.Migration.Integration.Test/MigrationTo191IntegrationTest.cs (.../MigrationTo191IntegrationTest.cs) (revision e465adce439e685e2349141ec6162af2c8865922)
+++ Riskeer/Migration/test/Riskeer.Migration.Integration.Test/MigrationTo191IntegrationTest.cs (.../MigrationTo191IntegrationTest.cs) (revision 84d22c9e92e093aaf3bf325b12b0e6870328ad70)
@@ -1174,7 +1174,7 @@
{
ReadOnlyCollection messages = reader.GetMigrationLogMessages();
- Assert.AreEqual(42, messages.Count);
+ Assert.AreEqual(45, messages.Count);
var i = 0;
MigrationLogTestHelper.AssertMigrationLogMessageEqual(
new MigrationLogMessage("18.1", newVersion, "Gevolgen van de migratie van versie 18.1 naar versie 19.1:"),
@@ -1230,6 +1230,15 @@
MigrationLogTestHelper.AssertMigrationLogMessageEqual(
new MigrationLogMessage("18.1", newVersion, " + Er worden standaardwaarden conform WBI2017 gebruikt voor de HLCD bestandsinformatie."),
messages[i++]);
+ MigrationLogTestHelper.AssertMigrationLogMessageEqual(
+ new MigrationLogMessage("18.1", newVersion, " + Toetsspoor: 'Grasbekleding erosie kruin en binnentalud'"),
+ messages[i++]);
+ MigrationLogTestHelper.AssertMigrationLogMessageEqual(
+ new MigrationLogMessage("18.1", newVersion, " - Dijkprofiel 'InvalidDikeProfile' definieert geen geldige dijkgeometrie. De dijkgeometrie moet bestaan uit tenminste 2 punten. Het dijkprofiel is verwijderd."),
+ messages[i++]);
+ MigrationLogTestHelper.AssertMigrationLogMessageEqual(
+ new MigrationLogMessage("18.1", newVersion, " - Dijkprofiel 'InvalidForeshoreProfile' definieert geen geldige voorlandgeometrie. De voorlandgeometrie moet bestaan uit 0 of tenminste 2 punten. Het dijkprofiel is verwijderd."),
+ messages[i++]);
MigrationLogTestHelper.AssertMigrationLogMessageEqual(
new MigrationLogMessage("18.1", newVersion, "* Traject: 'InvalidForeshoreProfiles'"),