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'"),