Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Application.Ringtoets.Storage.csproj
===================================================================
diff -u -r284037154158ae94ae56e9f686d8b014d93f4f23 -rb4816e19c7167c26fad825b88dd72b59dcedc13a
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Application.Ringtoets.Storage.csproj (.../Application.Ringtoets.Storage.csproj) (revision 284037154158ae94ae56e9f686d8b014d93f4f23)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Application.Ringtoets.Storage.csproj (.../Application.Ringtoets.Storage.csproj) (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -56,6 +56,12 @@
+
+
+
+
+
+
@@ -183,6 +189,9 @@
+
+
+
@@ -240,6 +249,12 @@
+
+
+
+
+
+
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/AssessmentSectionCreateExtensions.cs
===================================================================
diff -u -r1cd3618f5f8916ef15992d69ec3b447b311c2f72 -rb4816e19c7167c26fad825b88dd72b59dcedc13a
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/AssessmentSectionCreateExtensions.cs (.../AssessmentSectionCreateExtensions.cs) (revision 1cd3618f5f8916ef15992d69ec3b447b311c2f72)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/AssessmentSectionCreateExtensions.cs (.../AssessmentSectionCreateExtensions.cs) (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -62,6 +62,9 @@
entity.FailureMechanismEntities.Add(section.TechnicalInnovation.Create(registry));
entity.FailureMechanismEntities.Add(section.WaterPressureAsphaltCover.Create(registry));
entity.FailureMechanismEntities.Add(section.ClosingStructure.Create(registry));
+ entity.FailureMechanismEntities.Add(section.MacrostabilityInwards.Create(registry));
+ entity.FailureMechanismEntities.Add(section.MacrostabilityOutwards.Create(registry));
+ entity.FailureMechanismEntities.Add(section.WaveImpactAsphaltCover.Create(registry));
AddEntitiesForAddStandAloneFailureMechanisms(section, entity, registry);
@@ -71,11 +74,8 @@
private static void AddEntitiesForAddStandAloneFailureMechanisms(AssessmentSection section, AssessmentSectionEntity entity, PersistenceRegistry registry)
{
- entity.FailureMechanismEntities.Add(section.MacrostabilityInwards.Create(FailureMechanismType.MacrostabilityInwards, registry));
- entity.FailureMechanismEntities.Add(section.MacrostabilityOutwards.Create(FailureMechanismType.MacrostabilityOutwards, registry));
entity.FailureMechanismEntities.Add(section.Microstability.Create(FailureMechanismType.Microstability, registry));
entity.FailureMechanismEntities.Add(section.StabilityStoneCover.Create(FailureMechanismType.StabilityStoneRevetment, registry));
- entity.FailureMechanismEntities.Add(section.WaveImpactAsphaltCover.Create(FailureMechanismType.WaveImpactOnAsphaltRevetment, registry));
entity.FailureMechanismEntities.Add(section.GrassCoverErosionOutwards.Create(FailureMechanismType.GrassRevetmentErosionOutwards, registry));
entity.FailureMechanismEntities.Add(section.GrassCoverSlipOffOutwards.Create(FailureMechanismType.GrassRevetmentSlidingOutwards, registry));
entity.FailureMechanismEntities.Add(section.GrassCoverSlipOffInwards.Create(FailureMechanismType.GrassRevetmentSlidingInwards, registry));
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/MacrostabilityInwardsFailureMechanismCreateExtensions.cs
===================================================================
diff -u
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/MacrostabilityInwardsFailureMechanismCreateExtensions.cs (revision 0)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/MacrostabilityInwardsFailureMechanismCreateExtensions.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,63 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Collections.Generic;
+using Application.Ringtoets.Storage.DbContext;
+using Ringtoets.Integration.Data.StandAlone;
+using Ringtoets.Integration.Data.StandAlone.SectionResults;
+
+namespace Application.Ringtoets.Storage.Create
+{
+ ///
+ /// Extension methods for related to creating a .
+ ///
+ internal static class MacrostabilityInwardsFailureMechanismCreateExtensions
+ {
+ ///
+ /// Creates a based on the information of the .
+ ///
+ /// The failure mechanism to create a database entity for.
+ /// The object keeping track of create operations.
+ /// A new .
+ /// Thrown when is null.
+ internal static FailureMechanismEntity Create(this MacrostabilityInwardsFailureMechanism mechanism, PersistenceRegistry registry)
+ {
+ var entity = mechanism.Create(FailureMechanismType.MacrostabilityInwards, registry);
+ AddEntitiesForSectionResults(mechanism.SectionResults, registry);
+
+ registry.Register(entity, mechanism);
+ return entity;
+ }
+
+ private static void AddEntitiesForSectionResults(
+ IEnumerable sectionResults,
+ PersistenceRegistry registry)
+ {
+ foreach (var failureMechanismSectionResult in sectionResults)
+ {
+ var sectionResultEntity = failureMechanismSectionResult.Create(registry);
+ var section = registry.Get(failureMechanismSectionResult.Section);
+ section.MacrostabilityInwardsSectionResultEntities.Add(sectionResultEntity);
+ }
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/MacrostabilityInwardsFailureMechanismSectionResultCreateExtensions.cs
===================================================================
diff -u
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/MacrostabilityInwardsFailureMechanismSectionResultCreateExtensions.cs (revision 0)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/MacrostabilityInwardsFailureMechanismSectionResultCreateExtensions.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,58 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using Application.Ringtoets.Storage.DbContext;
+using Ringtoets.Integration.Data.StandAlone.SectionResults;
+
+namespace Application.Ringtoets.Storage.Create
+{
+ ///
+ /// Extension methods for related to creating a
+ /// .
+ ///
+ internal static class MacrostabilityInwardsFailureMechanismSectionResultCreateExtensions
+ {
+ ///
+ /// Creates a based on the information of the .
+ ///
+ /// The result to create a database entity for.
+ /// The object keeping track of create operations.
+ /// A new .
+ /// Thrown when is null.
+ internal static MacrostabilityInwardsSectionResultEntity Create(this MacrostabilityInwardsFailureMechanismSectionResult result, PersistenceRegistry registry)
+ {
+ if (registry == null)
+ {
+ throw new ArgumentNullException("registry");
+ }
+ var sectionResultEntity = new MacrostabilityInwardsSectionResultEntity
+ {
+ LayerOne = Convert.ToByte(result.AssessmentLayerOne),
+ LayerTwoA = result.AssessmentLayerTwoA.Value.ToNullableDecimal(),
+ LayerThree = result.AssessmentLayerThree.Value.ToNullableDecimal()
+ };
+
+ registry.Register(sectionResultEntity, result);
+ return sectionResultEntity;
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/MacrostabilityOutwardsFailureMechanismCreateExtensions.cs
===================================================================
diff -u
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/MacrostabilityOutwardsFailureMechanismCreateExtensions.cs (revision 0)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/MacrostabilityOutwardsFailureMechanismCreateExtensions.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,63 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Collections.Generic;
+using Application.Ringtoets.Storage.DbContext;
+using Ringtoets.Integration.Data.StandAlone;
+using Ringtoets.Integration.Data.StandAlone.SectionResults;
+
+namespace Application.Ringtoets.Storage.Create
+{
+ ///
+ /// Extension methods for related to creating a .
+ ///
+ internal static class MacrostabilityOutwardsFailureMechanismCreateExtensions
+ {
+ ///
+ /// Creates a based on the information of the .
+ ///
+ /// The failure mechanism to create a database entity for.
+ /// The object keeping track of create operations.
+ /// A new .
+ /// Thrown when is null.
+ internal static FailureMechanismEntity Create(this MacrostabilityOutwardsFailureMechanism mechanism, PersistenceRegistry registry)
+ {
+ var entity = mechanism.Create(FailureMechanismType.MacrostabilityOutwards, registry);
+ AddEntitiesForSectionResults(mechanism.SectionResults, registry);
+
+ registry.Register(entity, mechanism);
+ return entity;
+ }
+
+ private static void AddEntitiesForSectionResults(
+ IEnumerable sectionResults,
+ PersistenceRegistry registry)
+ {
+ foreach (var failureMechanismSectionResult in sectionResults)
+ {
+ var sectionResultEntity = failureMechanismSectionResult.Create(registry);
+ var section = registry.Get(failureMechanismSectionResult.Section);
+ section.MacrostabilityOutwardsSectionResultEntities.Add(sectionResultEntity);
+ }
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/MacrostabilityOutwardsFailureMechanismSectionResultCreateExtensions.cs
===================================================================
diff -u
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/MacrostabilityOutwardsFailureMechanismSectionResultCreateExtensions.cs (revision 0)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/MacrostabilityOutwardsFailureMechanismSectionResultCreateExtensions.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,58 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using Application.Ringtoets.Storage.DbContext;
+using Ringtoets.Integration.Data.StandAlone.SectionResults;
+
+namespace Application.Ringtoets.Storage.Create
+{
+ ///
+ /// Extension methods for related to creating a
+ /// .
+ ///
+ internal static class MacrostabilityOutwardsFailureMechanismSectionResultCreateExtensions
+ {
+ ///
+ /// Creates a based on the information of the .
+ ///
+ /// The result to create a database entity for.
+ /// The object keeping track of create operations.
+ /// A new .
+ /// Thrown when is null.
+ internal static MacrostabilityOutwardsSectionResultEntity Create(this MacrostabilityOutwardsFailureMechanismSectionResult result, PersistenceRegistry registry)
+ {
+ if (registry == null)
+ {
+ throw new ArgumentNullException("registry");
+ }
+ var sectionResultEntity = new MacrostabilityOutwardsSectionResultEntity
+ {
+ LayerOne = Convert.ToByte(result.AssessmentLayerOne),
+ LayerTwoA = result.AssessmentLayerTwoA.Value.ToNullableDecimal(),
+ LayerThree = result.AssessmentLayerThree.Value.ToNullableDecimal()
+ };
+
+ registry.Register(sectionResultEntity, result);
+ return sectionResultEntity;
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/PersistenceRegistry.cs
===================================================================
diff -u -r1cd3618f5f8916ef15992d69ec3b447b311c2f72 -rb4816e19c7167c26fad825b88dd72b59dcedc13a
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/PersistenceRegistry.cs (.../PersistenceRegistry.cs) (revision 1cd3618f5f8916ef15992d69ec3b447b311c2f72)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/PersistenceRegistry.cs (.../PersistenceRegistry.cs) (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -60,6 +60,9 @@
private readonly Dictionary technicalInnovationFailureMechanismSectionResults = new Dictionary();
private readonly Dictionary waterPressureAsphaltCoverFailureMechanismSectionResults = new Dictionary();
private readonly Dictionary closingStructureFailureMechanismSectionResults = new Dictionary();
+ private readonly Dictionary macrostabilityInwardsFailureMechanismSectionResults = new Dictionary();
+ private readonly Dictionary macrostabilityOutwardsFailureMechanismSectionResults = new Dictionary();
+ private readonly Dictionary waveImpactAsphaltCoverFailureMechanismSectionResults = new Dictionary();
private readonly Dictionary hydraulicLocations = new Dictionary(new ReferenceEqualityComparer());
private readonly Dictionary calculationGroups = new Dictionary(new ReferenceEqualityComparer());
private readonly Dictionary pipingCalculations = new Dictionary(new ReferenceEqualityComparer());
@@ -206,6 +209,54 @@
/// Registers a create or update operation for and the
/// that was constructed with the information.
///
+ /// The to be registered.
+ /// The to be registered.
+ /// Thrown when either:
+ ///
+ /// - is null
+ /// - is null
+ ///
+ public void Register(MacrostabilityInwardsSectionResultEntity entity, MacrostabilityInwardsFailureMechanismSectionResult model)
+ {
+ Register(macrostabilityInwardsFailureMechanismSectionResults, entity, model);
+ }
+
+ ///
+ /// Registers a create or update operation for and the
+ /// that was constructed with the information.
+ ///
+ /// The to be registered.
+ /// The to be registered.
+ /// Thrown when either:
+ ///
+ /// - is null
+ /// - is null
+ ///
+ public void Register(MacrostabilityOutwardsSectionResultEntity entity, MacrostabilityOutwardsFailureMechanismSectionResult model)
+ {
+ Register(macrostabilityOutwardsFailureMechanismSectionResults, entity, model);
+ }
+
+ ///
+ /// Registers a create or update operation for and the
+ /// that was constructed with the information.
+ ///
+ /// The to be registered.
+ /// The to be registered.
+ /// Thrown when either:
+ ///
+ /// - is null
+ /// - is null
+ ///
+ public void Register(WaveImpactAsphaltCoverSectionResultEntity entity, WaveImpactAsphaltCoverFailureMechanismSectionResult model)
+ {
+ Register(waveImpactAsphaltCoverFailureMechanismSectionResults, entity, model);
+ }
+
+ ///
+ /// Registers a create or update operation for and the
+ /// that was constructed with the information.
+ ///
/// The to be registered.
/// The to be registered.
/// Thrown when either:
@@ -707,6 +758,21 @@
closingStructureFailureMechanismSectionResults[entity].StorageId = entity.ClosingStructureSectionResultEntityId;
}
+ foreach (var entity in macrostabilityInwardsFailureMechanismSectionResults.Keys)
+ {
+ macrostabilityInwardsFailureMechanismSectionResults[entity].StorageId = entity.MacrostabilityInwardsSectionResultEntityId;
+ }
+
+ foreach (var entity in macrostabilityOutwardsFailureMechanismSectionResults.Keys)
+ {
+ macrostabilityOutwardsFailureMechanismSectionResults[entity].StorageId = entity.MacrostabilityOutwardsSectionResultEntityId;
+ }
+
+ foreach (var entity in waveImpactAsphaltCoverFailureMechanismSectionResults.Keys)
+ {
+ waveImpactAsphaltCoverFailureMechanismSectionResults[entity].StorageId = entity.WaveImpactAsphaltCoverSectionResultEntityId;
+ }
+
foreach (var entity in hydraulicLocations.Keys)
{
hydraulicLocations[entity].StorageId = entity.HydraulicLocationEntityId;
@@ -898,6 +964,39 @@
}
dbContext.ClosingStructureSectionResultEntities.RemoveRange(orphanedClosingStructureSectionResultEntities);
+ var orphanedMacrostabilityInwardsSectionResultEntities = new List();
+ foreach (MacrostabilityInwardsSectionResultEntity sectionResultEntity in dbContext.MacrostabilityInwardsSectionResultEntities
+ .Where(e => e.MacrostabilityInwardsSectionResultEntityId > 0))
+ {
+ if (!macrostabilityInwardsFailureMechanismSectionResults.ContainsKey(sectionResultEntity))
+ {
+ orphanedMacrostabilityInwardsSectionResultEntities.Add(sectionResultEntity);
+ }
+ }
+ dbContext.MacrostabilityInwardsSectionResultEntities.RemoveRange(orphanedMacrostabilityInwardsSectionResultEntities);
+
+ var orphanedMacrostabilityOutwardsSectionResultEntities = new List();
+ foreach (MacrostabilityOutwardsSectionResultEntity sectionResultEntity in dbContext.MacrostabilityOutwardsSectionResultEntities
+ .Where(e => e.MacrostabilityOutwardsSectionResultEntityId > 0))
+ {
+ if (!macrostabilityOutwardsFailureMechanismSectionResults.ContainsKey(sectionResultEntity))
+ {
+ orphanedMacrostabilityOutwardsSectionResultEntities.Add(sectionResultEntity);
+ }
+ }
+ dbContext.MacrostabilityOutwardsSectionResultEntities.RemoveRange(orphanedMacrostabilityOutwardsSectionResultEntities);
+
+ var orphanedWaveImpactAsphaltCoverSectionResultEntities = new List();
+ foreach (WaveImpactAsphaltCoverSectionResultEntity sectionResultEntity in dbContext.WaveImpactAsphaltCoverSectionResultEntities
+ .Where(e => e.WaveImpactAsphaltCoverSectionResultEntityId > 0))
+ {
+ if (!waveImpactAsphaltCoverFailureMechanismSectionResults.ContainsKey(sectionResultEntity))
+ {
+ orphanedWaveImpactAsphaltCoverSectionResultEntities.Add(sectionResultEntity);
+ }
+ }
+ dbContext.WaveImpactAsphaltCoverSectionResultEntities.RemoveRange(orphanedWaveImpactAsphaltCoverSectionResultEntities);
+
var orphanedHydraulicLocationEntities = new List();
foreach (HydraulicLocationEntity hydraulicLocationEntity in dbContext.HydraulicLocationEntities
.Where(e => e.HydraulicLocationEntityId > 0))
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/WaveImpactAsphaltCoverFailureMechanismCreateExtensions.cs
===================================================================
diff -u
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/WaveImpactAsphaltCoverFailureMechanismCreateExtensions.cs (revision 0)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/WaveImpactAsphaltCoverFailureMechanismCreateExtensions.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,63 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Collections.Generic;
+using Application.Ringtoets.Storage.DbContext;
+using Ringtoets.Integration.Data.StandAlone;
+using Ringtoets.Integration.Data.StandAlone.SectionResults;
+
+namespace Application.Ringtoets.Storage.Create
+{
+ ///
+ /// Extension methods for related to creating a .
+ ///
+ internal static class WaveImpactAsphaltCoverFailureMechanismCreateExtensions
+ {
+ ///
+ /// Creates a based on the information of the .
+ ///
+ /// The failure mechanism to create a database entity for.
+ /// The object keeping track of create operations.
+ /// A new .
+ /// Thrown when is null.
+ internal static FailureMechanismEntity Create(this WaveImpactAsphaltCoverFailureMechanism mechanism, PersistenceRegistry registry)
+ {
+ var entity = mechanism.Create(FailureMechanismType.WaveImpactOnAsphaltRevetment, registry);
+ AddEntitiesForSectionResults(mechanism.SectionResults, registry);
+
+ registry.Register(entity, mechanism);
+ return entity;
+ }
+
+ private static void AddEntitiesForSectionResults(
+ IEnumerable sectionResults,
+ PersistenceRegistry registry)
+ {
+ foreach (var failureMechanismSectionResult in sectionResults)
+ {
+ var sectionResultEntity = failureMechanismSectionResult.Create(registry);
+ var section = registry.Get(failureMechanismSectionResult.Section);
+ section.WaveImpactAsphaltCoverSectionResultEntities.Add(sectionResultEntity);
+ }
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/WaveImpactAsphaltCoverFailureMechanismSectionResultCreateExtensions.cs
===================================================================
diff -u
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/WaveImpactAsphaltCoverFailureMechanismSectionResultCreateExtensions.cs (revision 0)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/WaveImpactAsphaltCoverFailureMechanismSectionResultCreateExtensions.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,58 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using Application.Ringtoets.Storage.DbContext;
+using Ringtoets.Integration.Data.StandAlone.SectionResults;
+
+namespace Application.Ringtoets.Storage.Create
+{
+ ///
+ /// Extension methods for related to creating a
+ /// .
+ ///
+ internal static class WaveImpactAsphaltCoverFailureMechanismSectionResultCreateExtensions
+ {
+ ///
+ /// Creates a based on the information of the .
+ ///
+ /// The result to create a database entity for.
+ /// The object keeping track of create operations.
+ /// A new .
+ /// Thrown when is null.
+ internal static WaveImpactAsphaltCoverSectionResultEntity Create(this WaveImpactAsphaltCoverFailureMechanismSectionResult result, PersistenceRegistry registry)
+ {
+ if (registry == null)
+ {
+ throw new ArgumentNullException("registry");
+ }
+ var sectionResultEntity = new WaveImpactAsphaltCoverSectionResultEntity
+ {
+ LayerOne = Convert.ToByte(result.AssessmentLayerOne),
+ LayerTwoA = result.AssessmentLayerTwoA.Value.ToNullableDecimal(),
+ LayerThree = result.AssessmentLayerThree.Value.ToNullableDecimal()
+ };
+
+ registry.Register(sectionResultEntity, result);
+ return sectionResultEntity;
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/IRingtoetsEntities.cs
===================================================================
diff -u -r1cd3618f5f8916ef15992d69ec3b447b311c2f72 -rb4816e19c7167c26fad825b88dd72b59dcedc13a
--- Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/IRingtoetsEntities.cs (.../IRingtoetsEntities.cs) (revision 1cd3618f5f8916ef15992d69ec3b447b311c2f72)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/IRingtoetsEntities.cs (.../IRingtoetsEntities.cs) (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -97,6 +97,24 @@
DbSet ClosingStructureSectionResultEntities { get; }
///
+ /// Gets a of containing
+ /// every entity found in the database.
+ ///
+ DbSet MacrostabilityInwardsSectionResultEntities { get; }
+
+ ///
+ /// Gets a of containing
+ /// every entity found in the database.
+ ///
+ DbSet MacrostabilityOutwardsSectionResultEntities { get; }
+
+ ///
+ /// Gets a of containing
+ /// every entity found in the database.
+ ///
+ DbSet WaveImpactAsphaltCoverSectionResultEntities { get; }
+
+ ///
/// Gets a of containing
/// every entity found in the database.
///
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Read/AssessmentSectionEntityReadExtensions.cs
===================================================================
diff -u -r1cd3618f5f8916ef15992d69ec3b447b311c2f72 -rb4816e19c7167c26fad825b88dd72b59dcedc13a
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Read/AssessmentSectionEntityReadExtensions.cs (.../AssessmentSectionEntityReadExtensions.cs) (revision 1cd3618f5f8916ef15992d69ec3b447b311c2f72)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Read/AssessmentSectionEntityReadExtensions.cs (.../AssessmentSectionEntityReadExtensions.cs) (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -70,6 +70,9 @@
entity.ReadTechnicalInnovationFailureMechanism(assessmentSection, collector);
entity.ReadWaterPressureAsphaltCoverFailureMechanism(assessmentSection, collector);
entity.ReadClosingStructureFailureMechanism(assessmentSection, collector);
+ entity.ReadMacrostabilityInwardsFailureMechanism(assessmentSection, collector);
+ entity.ReadMacrostabilityOutwardsFailureMechanism(assessmentSection, collector);
+ entity.ReadWaveImpactAsphaltCoverFailureMechanism(assessmentSection, collector);
entity.ReadStandAloneFailureMechanisms(assessmentSection, collector);
return assessmentSection;
@@ -164,13 +167,37 @@
}
}
+ private static void ReadMacrostabilityInwardsFailureMechanism(this AssessmentSectionEntity entity, AssessmentSection assessmentSection, ReadConversionCollector collector)
+ {
+ var macrostabilityInwardsFailureMechanismEntity = entity.FailureMechanismEntities.SingleOrDefault(fme => fme.FailureMechanismType == (int) FailureMechanismType.MacrostabilityInwards);
+ if (macrostabilityInwardsFailureMechanismEntity != null)
+ {
+ macrostabilityInwardsFailureMechanismEntity.ReadAsMacrostabilityInwardsFailureMechanism(assessmentSection.MacrostabilityInwards, collector);
+ }
+ }
+
+ private static void ReadMacrostabilityOutwardsFailureMechanism(this AssessmentSectionEntity entity, AssessmentSection assessmentSection, ReadConversionCollector collector)
+ {
+ var macrostabilityOutwardsFailureMechanismEntity = entity.FailureMechanismEntities.SingleOrDefault(fme => fme.FailureMechanismType == (int) FailureMechanismType.MacrostabilityOutwards);
+ if (macrostabilityOutwardsFailureMechanismEntity != null)
+ {
+ macrostabilityOutwardsFailureMechanismEntity.ReadAsMacrostabilityOutwardsFailureMechanism(assessmentSection.MacrostabilityOutwards, collector);
+ }
+ }
+
+ private static void ReadWaveImpactAsphaltCoverFailureMechanism(this AssessmentSectionEntity entity, AssessmentSection assessmentSection, ReadConversionCollector collector)
+ {
+ var waveImpactAsphaltCoverFailureMechanismEntity = entity.FailureMechanismEntities.SingleOrDefault(fme => fme.FailureMechanismType == (int) FailureMechanismType.WaveImpactOnAsphaltRevetment);
+ if (waveImpactAsphaltCoverFailureMechanismEntity != null)
+ {
+ waveImpactAsphaltCoverFailureMechanismEntity.ReadAsWaveImpactAsphaltCoverFailureMechanism(assessmentSection.WaveImpactAsphaltCover, collector);
+ }
+ }
+
private static void ReadStandAloneFailureMechanisms(this AssessmentSectionEntity entity, AssessmentSection assessmentSection, ReadConversionCollector collector)
{
- entity.ReadStandAloneFailureMechanism(FailureMechanismType.MacrostabilityInwards, assessmentSection.MacrostabilityInwards, collector);
- entity.ReadStandAloneFailureMechanism(FailureMechanismType.MacrostabilityOutwards, assessmentSection.MacrostabilityOutwards, collector);
entity.ReadStandAloneFailureMechanism(FailureMechanismType.Microstability, assessmentSection.Microstability, collector);
entity.ReadStandAloneFailureMechanism(FailureMechanismType.StabilityStoneRevetment, assessmentSection.StabilityStoneCover, collector);
- entity.ReadStandAloneFailureMechanism(FailureMechanismType.WaveImpactOnAsphaltRevetment, assessmentSection.WaveImpactAsphaltCover, collector);
entity.ReadStandAloneFailureMechanism(FailureMechanismType.GrassRevetmentErosionOutwards, assessmentSection.GrassCoverErosionOutwards, collector);
entity.ReadStandAloneFailureMechanism(FailureMechanismType.GrassRevetmentSlidingOutwards, assessmentSection.GrassCoverSlipOffOutwards, collector);
entity.ReadStandAloneFailureMechanism(FailureMechanismType.GrassRevetmentSlidingInwards, assessmentSection.GrassCoverSlipOffInwards, collector);
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Read/FailureMechanismEntityReadExtensions.cs
===================================================================
diff -u -r838250fef0c200dbbffa9a562ca5935fdc500d19 -rb4816e19c7167c26fad825b88dd72b59dcedc13a
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Read/FailureMechanismEntityReadExtensions.cs (.../FailureMechanismEntityReadExtensions.cs) (revision 838250fef0c200dbbffa9a562ca5935fdc500d19)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Read/FailureMechanismEntityReadExtensions.cs (.../FailureMechanismEntityReadExtensions.cs) (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -60,9 +60,7 @@
throw new ArgumentNullException("collector");
}
- failureMechanism.StorageId = entity.FailureMechanismEntityId;
- failureMechanism.IsRelevant = Convert.ToBoolean(entity.IsRelevant);
- failureMechanism.Comments = entity.Comments;
+ entity.ReadAsStandAloneFailureMechanism(failureMechanism, collector);
if (entity.PipingFailureMechanismMetaEntities.Count > 0)
{
@@ -79,7 +77,6 @@
failureMechanism.SurfaceLines.Add(surfaceLineEntity.Read(collector));
}
- entity.ReadFailureMechanismSections(failureMechanism, collector);
entity.ReadPipingMechanismSectionResults(failureMechanism, collector);
ReadRootCalculationGroup(entity.CalculationGroupEntity, failureMechanism.CalculationsGroup,
@@ -105,11 +102,7 @@
/// The object keeping track of read operations.
internal static void ReadAsGrassCoverErosionInwardsFailureMechanism(this FailureMechanismEntity entity, GrassCoverErosionInwardsFailureMechanism failureMechanism, ReadConversionCollector collector)
{
- failureMechanism.StorageId = entity.FailureMechanismEntityId;
- failureMechanism.IsRelevant = Convert.ToBoolean(entity.IsRelevant);
- failureMechanism.Comments = entity.Comments;
-
- entity.ReadFailureMechanismSections(failureMechanism, collector);
+ entity.ReadAsStandAloneFailureMechanism(failureMechanism, collector);
entity.ReadGrassCoverErosionInwardsMechanismSectionResults(failureMechanism, collector);
}
@@ -132,11 +125,7 @@
/// The object keeping track of read operations.
internal static void ReadAsHeightStructuresFailureMechanism(this FailureMechanismEntity entity, HeightStructuresFailureMechanism failureMechanism, ReadConversionCollector collector)
{
- failureMechanism.StorageId = entity.FailureMechanismEntityId;
- failureMechanism.IsRelevant = Convert.ToBoolean(entity.IsRelevant);
- failureMechanism.Comments = entity.Comments;
-
- entity.ReadFailureMechanismSections(failureMechanism, collector);
+ entity.ReadAsStandAloneFailureMechanism(failureMechanism, collector);
entity.ReadHeightStructuresMechanismSectionResults(failureMechanism, collector);
}
@@ -159,11 +148,7 @@
/// The object keeping track of read operations.
internal static void ReadAsStrengthStabilityLengthwiseConstructionFailureMechanism(this FailureMechanismEntity entity, StrengthStabilityLengthwiseConstructionFailureMechanism failureMechanism, ReadConversionCollector collector)
{
- failureMechanism.StorageId = entity.FailureMechanismEntityId;
- failureMechanism.IsRelevant = Convert.ToBoolean(entity.IsRelevant);
- failureMechanism.Comments = entity.Comments;
-
- entity.ReadFailureMechanismSections(failureMechanism, collector);
+ entity.ReadAsStandAloneFailureMechanism(failureMechanism, collector);
entity.ReadStrengthStabilityLengthwiseConstructionMechanismSectionResults(failureMechanism, collector);
}
@@ -186,11 +171,7 @@
/// The object keeping track of read operations.
internal static void ReadAsTechnicalInnovationFailureMechanism(this FailureMechanismEntity entity, TechnicalInnovationFailureMechanism failureMechanism, ReadConversionCollector collector)
{
- failureMechanism.StorageId = entity.FailureMechanismEntityId;
- failureMechanism.IsRelevant = Convert.ToBoolean(entity.IsRelevant);
- failureMechanism.Comments = entity.Comments;
-
- entity.ReadFailureMechanismSections(failureMechanism, collector);
+ entity.ReadAsStandAloneFailureMechanism(failureMechanism, collector);
entity.ReadTechnicalInnovationMechanismSectionResults(failureMechanism, collector);
}
@@ -213,11 +194,7 @@
/// The object keeping track of read operations.
internal static void ReadAsWaterPressureAsphaltCoverFailureMechanism(this FailureMechanismEntity entity, WaterPressureAsphaltCoverFailureMechanism failureMechanism, ReadConversionCollector collector)
{
- failureMechanism.StorageId = entity.FailureMechanismEntityId;
- failureMechanism.IsRelevant = Convert.ToBoolean(entity.IsRelevant);
- failureMechanism.Comments = entity.Comments;
-
- entity.ReadFailureMechanismSections(failureMechanism, collector);
+ entity.ReadAsStandAloneFailureMechanism(failureMechanism, collector);
entity.ReadWaterPressureAsphaltCoverMechanismSectionResults(failureMechanism, collector);
}
@@ -240,11 +217,7 @@
/// The object keeping track of read operations.
internal static void ReadAsClosingStructureFailureMechanism(this FailureMechanismEntity entity, ClosingStructureFailureMechanism failureMechanism, ReadConversionCollector collector)
{
- failureMechanism.StorageId = entity.FailureMechanismEntityId;
- failureMechanism.IsRelevant = Convert.ToBoolean(entity.IsRelevant);
- failureMechanism.Comments = entity.Comments;
-
- entity.ReadFailureMechanismSections(failureMechanism, collector);
+ entity.ReadAsStandAloneFailureMechanism(failureMechanism, collector);
entity.ReadClosingStructureMechanismSectionResults(failureMechanism, collector);
}
@@ -260,6 +233,75 @@
}
///
+ /// Read the and use the information to update a .
+ ///
+ /// The to create for.
+ ///
+ /// The object keeping track of read operations.
+ internal static void ReadAsMacrostabilityInwardsFailureMechanism(this FailureMechanismEntity entity, MacrostabilityInwardsFailureMechanism failureMechanism, ReadConversionCollector collector)
+ {
+ entity.ReadAsStandAloneFailureMechanism(failureMechanism, collector);
+ entity.ReadMacrostabilityInwardsMechanismSectionResults(failureMechanism, collector);
+ }
+
+ private static void ReadMacrostabilityInwardsMechanismSectionResults(this FailureMechanismEntity entity, MacrostabilityInwardsFailureMechanism failureMechanism, ReadConversionCollector collector)
+ {
+ foreach (var sectionResultEntity in entity.FailureMechanismSectionEntities.SelectMany(fms => fms.MacrostabilityInwardsSectionResultEntities))
+ {
+ var failureMechanismSection = collector.Get(sectionResultEntity.FailureMechanismSectionEntity);
+ var result = failureMechanism.SectionResults.Single(sr => ReferenceEquals(sr.Section, failureMechanismSection));
+
+ sectionResultEntity.Read(result, collector);
+ }
+ }
+
+ ///
+ /// Read the and use the information to update a .
+ ///
+ /// The to create for.
+ ///
+ /// The object keeping track of read operations.
+ internal static void ReadAsMacrostabilityOutwardsFailureMechanism(this FailureMechanismEntity entity, MacrostabilityOutwardsFailureMechanism failureMechanism, ReadConversionCollector collector)
+ {
+ entity.ReadAsStandAloneFailureMechanism(failureMechanism, collector);
+ entity.ReadMacrostabilityOutwardsMechanismSectionResults(failureMechanism, collector);
+ }
+
+ private static void ReadMacrostabilityOutwardsMechanismSectionResults(this FailureMechanismEntity entity, MacrostabilityOutwardsFailureMechanism failureMechanism, ReadConversionCollector collector)
+ {
+ foreach (var sectionResultEntity in entity.FailureMechanismSectionEntities.SelectMany(fms => fms.MacrostabilityOutwardsSectionResultEntities))
+ {
+ var failureMechanismSection = collector.Get(sectionResultEntity.FailureMechanismSectionEntity);
+ var result = failureMechanism.SectionResults.Single(sr => ReferenceEquals(sr.Section, failureMechanismSection));
+
+ sectionResultEntity.Read(result, collector);
+ }
+ }
+
+ ///
+ /// Read the and use the information to update a .
+ ///
+ /// The to create for.
+ ///
+ /// The object keeping track of read operations.
+ internal static void ReadAsWaveImpactAsphaltCoverFailureMechanism(this FailureMechanismEntity entity, WaveImpactAsphaltCoverFailureMechanism failureMechanism, ReadConversionCollector collector)
+ {
+ entity.ReadAsStandAloneFailureMechanism(failureMechanism, collector);
+ entity.ReadWaveImpactAsphaltCoverMechanismSectionResults(failureMechanism, collector);
+ }
+
+ private static void ReadWaveImpactAsphaltCoverMechanismSectionResults(this FailureMechanismEntity entity, WaveImpactAsphaltCoverFailureMechanism failureMechanism, ReadConversionCollector collector)
+ {
+ foreach (var sectionResultEntity in entity.FailureMechanismSectionEntities.SelectMany(fms => fms.WaveImpactAsphaltCoverSectionResultEntities))
+ {
+ var failureMechanismSection = collector.Get(sectionResultEntity.FailureMechanismSectionEntity);
+ var result = failureMechanism.SectionResults.Single(sr => ReferenceEquals(sr.Section, failureMechanismSection));
+
+ sectionResultEntity.Read(result, collector);
+ }
+ }
+
+ ///
/// Read the and use the information to update a .
///
/// The to read into a .
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Read/MacrostabilityInwardsSectionResultEntityReadExtensions.cs
===================================================================
diff -u
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Read/MacrostabilityInwardsSectionResultEntityReadExtensions.cs (revision 0)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Read/MacrostabilityInwardsSectionResultEntityReadExtensions.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,61 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using Application.Ringtoets.Storage.DbContext;
+using Core.Common.Base.Data;
+using Ringtoets.Integration.Data.StandAlone.SectionResults;
+
+namespace Application.Ringtoets.Storage.Read
+{
+ ///
+ /// This class defines extension methods for read operations for a based on the
+ /// .
+ ///
+ internal static class MacrostabilityInwardsSectionResultEntityReadExtensions
+ {
+ ///
+ /// Reads the and use the information to update a
+ /// .
+ ///
+ /// The to create for.
+ /// The target of the read operation.
+ /// The object keeping track of read operations.
+ /// A new .
+ /// Thrown when is null.
+ internal static void Read(this MacrostabilityInwardsSectionResultEntity entity, MacrostabilityInwardsFailureMechanismSectionResult sectionResult, ReadConversionCollector collector)
+ {
+ if (collector == null)
+ {
+ throw new ArgumentNullException("collector");
+ }
+ if (sectionResult == null)
+ {
+ throw new ArgumentNullException("sectionResult");
+ }
+
+ sectionResult.StorageId = entity.MacrostabilityInwardsSectionResultEntityId;
+ sectionResult.AssessmentLayerOne = Convert.ToBoolean(entity.LayerOne);
+ sectionResult.AssessmentLayerTwoA = (RoundedDouble)entity.LayerTwoA.ToNanableDouble();
+ sectionResult.AssessmentLayerThree = (RoundedDouble)entity.LayerThree.ToNanableDouble();
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Read/MacrostabilityOutwardsSectionResultEntityReadExtensions.cs
===================================================================
diff -u
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Read/MacrostabilityOutwardsSectionResultEntityReadExtensions.cs (revision 0)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Read/MacrostabilityOutwardsSectionResultEntityReadExtensions.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,61 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using Application.Ringtoets.Storage.DbContext;
+using Core.Common.Base.Data;
+using Ringtoets.Integration.Data.StandAlone.SectionResults;
+
+namespace Application.Ringtoets.Storage.Read
+{
+ ///
+ /// This class defines extension methods for read operations for a based on the
+ /// .
+ ///
+ internal static class MacrostabilityOutwardsSectionResultEntityReadExtensions
+ {
+ ///
+ /// Reads the and use the information to update a
+ /// .
+ ///
+ /// The to create for.
+ /// The target of the read operation.
+ /// The object keeping track of read operations.
+ /// A new .
+ /// Thrown when is null.
+ internal static void Read(this MacrostabilityOutwardsSectionResultEntity entity, MacrostabilityOutwardsFailureMechanismSectionResult sectionResult, ReadConversionCollector collector)
+ {
+ if (collector == null)
+ {
+ throw new ArgumentNullException("collector");
+ }
+ if (sectionResult == null)
+ {
+ throw new ArgumentNullException("sectionResult");
+ }
+
+ sectionResult.StorageId = entity.MacrostabilityOutwardsSectionResultEntityId;
+ sectionResult.AssessmentLayerOne = Convert.ToBoolean(entity.LayerOne);
+ sectionResult.AssessmentLayerTwoA = (RoundedDouble)entity.LayerTwoA.ToNanableDouble();
+ sectionResult.AssessmentLayerThree = (RoundedDouble)entity.LayerThree.ToNanableDouble();
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Read/WaveImpactAsphaltCoverSectionResultEntityReadExtensions.cs
===================================================================
diff -u
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Read/WaveImpactAsphaltCoverSectionResultEntityReadExtensions.cs (revision 0)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Read/WaveImpactAsphaltCoverSectionResultEntityReadExtensions.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,61 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using Application.Ringtoets.Storage.DbContext;
+using Core.Common.Base.Data;
+using Ringtoets.Integration.Data.StandAlone.SectionResults;
+
+namespace Application.Ringtoets.Storage.Read
+{
+ ///
+ /// This class defines extension methods for read operations for a based on the
+ /// .
+ ///
+ internal static class WaveImpactAsphaltCoverSectionResultEntityReadExtensions
+ {
+ ///
+ /// Reads the and use the information to update a
+ /// .
+ ///
+ /// The to create for.
+ /// The target of the read operation.
+ /// The object keeping track of read operations.
+ /// A new .
+ /// Thrown when is null.
+ internal static void Read(this WaveImpactAsphaltCoverSectionResultEntity entity, WaveImpactAsphaltCoverFailureMechanismSectionResult sectionResult, ReadConversionCollector collector)
+ {
+ if (collector == null)
+ {
+ throw new ArgumentNullException("collector");
+ }
+ if (sectionResult == null)
+ {
+ throw new ArgumentNullException("sectionResult");
+ }
+
+ sectionResult.StorageId = entity.WaveImpactAsphaltCoverSectionResultEntityId;
+ sectionResult.AssessmentLayerOne = Convert.ToBoolean(entity.LayerOne);
+ sectionResult.AssessmentLayerTwoA = (RoundedDouble)entity.LayerTwoA.ToNanableDouble();
+ sectionResult.AssessmentLayerThree = (RoundedDouble)entity.LayerThree.ToNanableDouble();
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Update/MacrostabilityInwardsFailureMechanismSectionResultUpdateExtensions.cs
===================================================================
diff -u
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Update/MacrostabilityInwardsFailureMechanismSectionResultUpdateExtensions.cs (revision 0)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Update/MacrostabilityInwardsFailureMechanismSectionResultUpdateExtensions.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,72 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using Application.Ringtoets.Storage.Create;
+using Application.Ringtoets.Storage.DbContext;
+using Application.Ringtoets.Storage.Exceptions;
+using Ringtoets.Integration.Data.StandAlone.SectionResults;
+
+namespace Application.Ringtoets.Storage.Update
+{
+ ///
+ /// Extension methods for related to updating a
+ /// .
+ ///
+ internal static class MacrostabilityInwardsFailureMechanismSectionResultUpdateExtensions
+ {
+ ///
+ /// Updates a in the database based on the information of the
+ /// .
+ ///
+ /// The result to update the database entity for.
+ /// The object keeping track of update operations.
+ /// The context to obtain the existing entity from.
+ /// Thrown when either:
+ ///
+ /// - is null
+ /// - is null
+ ///
+ /// When
+ /// does not have a corresponding entity in the database.
+ internal static void Update(this MacrostabilityInwardsFailureMechanismSectionResult result, PersistenceRegistry registry, IRingtoetsEntities context)
+ {
+ if (context == null)
+ {
+ throw new ArgumentNullException("context");
+ }
+ if (registry == null)
+ {
+ throw new ArgumentNullException("registry");
+ }
+
+ MacrostabilityInwardsSectionResultEntity entity = result.GetCorrespondingEntity(
+ context.MacrostabilityInwardsSectionResultEntities,
+ s => s.MacrostabilityInwardsSectionResultEntityId);
+
+ entity.LayerOne = Convert.ToByte(result.AssessmentLayerOne);
+ entity.LayerTwoA = Convert.ToDecimal(result.AssessmentLayerTwoA);
+ entity.LayerThree = Convert.ToDecimal(result.AssessmentLayerThree);
+
+ registry.Register(entity, result);
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Update/MacrostabilityInwardsFailureMechanismUpdateExtensions.cs
===================================================================
diff -u
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Update/MacrostabilityInwardsFailureMechanismUpdateExtensions.cs (revision 0)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Update/MacrostabilityInwardsFailureMechanismUpdateExtensions.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,87 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using Application.Ringtoets.Storage.Create;
+using Application.Ringtoets.Storage.DbContext;
+using Application.Ringtoets.Storage.Exceptions;
+using Ringtoets.Integration.Data.StandAlone;
+
+namespace Application.Ringtoets.Storage.Update
+{
+ ///
+ /// Extension methods for related to updating a .
+ ///
+ internal static class MacrostabilityInwardsFailureMechanismUpdateExtensions
+ {
+ ///
+ /// Updates a in the database based on the information of the
+ /// .
+ ///
+ /// The mechanism to update the database entity for.
+ /// The object keeping track of update operations.
+ /// The context to obtain the existing entity from.
+ /// Thrown when either:
+ ///
+ /// - is null
+ /// - is null
+ ///
+ /// When
+ /// does not have a corresponding entity in the database.
+ internal static void Update(this MacrostabilityInwardsFailureMechanism mechanism, PersistenceRegistry registry, IRingtoetsEntities context)
+ {
+ if (context == null)
+ {
+ throw new ArgumentNullException("context");
+ }
+ if (registry == null)
+ {
+ throw new ArgumentNullException("registry");
+ }
+
+ FailureMechanismEntity entity = mechanism.GetCorrespondingEntity(
+ context.FailureMechanismEntities,
+ o => o.FailureMechanismEntityId);
+
+ entity.IsRelevant = Convert.ToByte(mechanism.IsRelevant);
+
+ mechanism.UpdateFailureMechanismSections(registry, entity, context);
+ UpdateSectionResults(mechanism, registry, context);
+
+ registry.Register(entity, mechanism);
+ }
+
+ private static void UpdateSectionResults(MacrostabilityInwardsFailureMechanism mechanism, PersistenceRegistry registry, IRingtoetsEntities context)
+ {
+ foreach (var sectionResult in mechanism.SectionResults)
+ {
+ if (sectionResult.IsNew())
+ {
+ registry.Get(sectionResult.Section).MacrostabilityInwardsSectionResultEntities.Add(sectionResult.Create(registry));
+ }
+ else
+ {
+ sectionResult.Update(registry, context);
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Update/MacrostabilityOutwardsFailureMechanismSectionResultUpdateExtensions.cs
===================================================================
diff -u
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Update/MacrostabilityOutwardsFailureMechanismSectionResultUpdateExtensions.cs (revision 0)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Update/MacrostabilityOutwardsFailureMechanismSectionResultUpdateExtensions.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,72 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using Application.Ringtoets.Storage.Create;
+using Application.Ringtoets.Storage.DbContext;
+using Application.Ringtoets.Storage.Exceptions;
+using Ringtoets.Integration.Data.StandAlone.SectionResults;
+
+namespace Application.Ringtoets.Storage.Update
+{
+ ///
+ /// Extension methods for related to updating a
+ /// .
+ ///
+ internal static class MacrostabilityOutwardsFailureMechanismSectionResultUpdateExtensions
+ {
+ ///
+ /// Updates a in the database based on the information of the
+ /// .
+ ///
+ /// The result to update the database entity for.
+ /// The object keeping track of update operations.
+ /// The context to obtain the existing entity from.
+ /// Thrown when either:
+ ///
+ /// - is null
+ /// - is null
+ ///
+ /// When
+ /// does not have a corresponding entity in the database.
+ internal static void Update(this MacrostabilityOutwardsFailureMechanismSectionResult result, PersistenceRegistry registry, IRingtoetsEntities context)
+ {
+ if (context == null)
+ {
+ throw new ArgumentNullException("context");
+ }
+ if (registry == null)
+ {
+ throw new ArgumentNullException("registry");
+ }
+
+ MacrostabilityOutwardsSectionResultEntity entity = result.GetCorrespondingEntity(
+ context.MacrostabilityOutwardsSectionResultEntities,
+ s => s.MacrostabilityOutwardsSectionResultEntityId);
+
+ entity.LayerOne = Convert.ToByte(result.AssessmentLayerOne);
+ entity.LayerTwoA = Convert.ToDecimal(result.AssessmentLayerTwoA);
+ entity.LayerThree = Convert.ToDecimal(result.AssessmentLayerThree);
+
+ registry.Register(entity, result);
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Update/MacrostabilityOutwardsFailureMechanismUpdateExtensions.cs
===================================================================
diff -u
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Update/MacrostabilityOutwardsFailureMechanismUpdateExtensions.cs (revision 0)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Update/MacrostabilityOutwardsFailureMechanismUpdateExtensions.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,87 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using Application.Ringtoets.Storage.Create;
+using Application.Ringtoets.Storage.DbContext;
+using Application.Ringtoets.Storage.Exceptions;
+using Ringtoets.Integration.Data.StandAlone;
+
+namespace Application.Ringtoets.Storage.Update
+{
+ ///
+ /// Extension methods for related to updating a .
+ ///
+ internal static class MacrostabilityOutwardsFailureMechanismUpdateExtensions
+ {
+ ///
+ /// Updates a in the database based on the information of the
+ /// .
+ ///
+ /// The mechanism to update the database entity for.
+ /// The object keeping track of update operations.
+ /// The context to obtain the existing entity from.
+ /// Thrown when either:
+ ///
+ /// - is null
+ /// - is null
+ ///
+ /// When
+ /// does not have a corresponding entity in the database.
+ internal static void Update(this MacrostabilityOutwardsFailureMechanism mechanism, PersistenceRegistry registry, IRingtoetsEntities context)
+ {
+ if (context == null)
+ {
+ throw new ArgumentNullException("context");
+ }
+ if (registry == null)
+ {
+ throw new ArgumentNullException("registry");
+ }
+
+ FailureMechanismEntity entity = mechanism.GetCorrespondingEntity(
+ context.FailureMechanismEntities,
+ o => o.FailureMechanismEntityId);
+
+ entity.IsRelevant = Convert.ToByte(mechanism.IsRelevant);
+
+ mechanism.UpdateFailureMechanismSections(registry, entity, context);
+ UpdateSectionResults(mechanism, registry, context);
+
+ registry.Register(entity, mechanism);
+ }
+
+ private static void UpdateSectionResults(MacrostabilityOutwardsFailureMechanism mechanism, PersistenceRegistry registry, IRingtoetsEntities context)
+ {
+ foreach (var sectionResult in mechanism.SectionResults)
+ {
+ if (sectionResult.IsNew())
+ {
+ registry.Get(sectionResult.Section).MacrostabilityOutwardsSectionResultEntities.Add(sectionResult.Create(registry));
+ }
+ else
+ {
+ sectionResult.Update(registry, context);
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Update/WaveImpactAsphaltCoverFailureMechanismSectionResultUpdateExtensions.cs
===================================================================
diff -u
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Update/WaveImpactAsphaltCoverFailureMechanismSectionResultUpdateExtensions.cs (revision 0)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Update/WaveImpactAsphaltCoverFailureMechanismSectionResultUpdateExtensions.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,72 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using Application.Ringtoets.Storage.Create;
+using Application.Ringtoets.Storage.DbContext;
+using Application.Ringtoets.Storage.Exceptions;
+using Ringtoets.Integration.Data.StandAlone.SectionResults;
+
+namespace Application.Ringtoets.Storage.Update
+{
+ ///
+ /// Extension methods for related to updating a
+ /// .
+ ///
+ internal static class WaveImpactAsphaltCoverFailureMechanismSectionResultUpdateExtensions
+ {
+ ///
+ /// Updates a in the database based on the information of the
+ /// .
+ ///
+ /// The result to update the database entity for.
+ /// The object keeping track of update operations.
+ /// The context to obtain the existing entity from.
+ /// Thrown when either:
+ ///
+ /// - is null
+ /// - is null
+ ///
+ /// When
+ /// does not have a corresponding entity in the database.
+ internal static void Update(this WaveImpactAsphaltCoverFailureMechanismSectionResult result, PersistenceRegistry registry, IRingtoetsEntities context)
+ {
+ if (context == null)
+ {
+ throw new ArgumentNullException("context");
+ }
+ if (registry == null)
+ {
+ throw new ArgumentNullException("registry");
+ }
+
+ WaveImpactAsphaltCoverSectionResultEntity entity = result.GetCorrespondingEntity(
+ context.WaveImpactAsphaltCoverSectionResultEntities,
+ s => s.WaveImpactAsphaltCoverSectionResultEntityId);
+
+ entity.LayerOne = Convert.ToByte(result.AssessmentLayerOne);
+ entity.LayerTwoA = Convert.ToDecimal(result.AssessmentLayerTwoA);
+ entity.LayerThree = Convert.ToDecimal(result.AssessmentLayerThree);
+
+ registry.Register(entity, result);
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Update/WaveImpactAsphaltCoverFailureMechanismUpdateExtensions.cs
===================================================================
diff -u
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Update/WaveImpactAsphaltCoverFailureMechanismUpdateExtensions.cs (revision 0)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Update/WaveImpactAsphaltCoverFailureMechanismUpdateExtensions.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,87 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using Application.Ringtoets.Storage.Create;
+using Application.Ringtoets.Storage.DbContext;
+using Application.Ringtoets.Storage.Exceptions;
+using Ringtoets.Integration.Data.StandAlone;
+
+namespace Application.Ringtoets.Storage.Update
+{
+ ///
+ /// Extension methods for related to updating a .
+ ///
+ internal static class WaveImpactAsphaltCoverFailureMechanismUpdateExtensions
+ {
+ ///
+ /// Updates a in the database based on the information of the
+ /// .
+ ///
+ /// The mechanism to update the database entity for.
+ /// The object keeping track of update operations.
+ /// The context to obtain the existing entity from.
+ /// Thrown when either:
+ ///
+ /// - is null
+ /// - is null
+ ///
+ /// When
+ /// does not have a corresponding entity in the database.
+ internal static void Update(this WaveImpactAsphaltCoverFailureMechanism mechanism, PersistenceRegistry registry, IRingtoetsEntities context)
+ {
+ if (context == null)
+ {
+ throw new ArgumentNullException("context");
+ }
+ if (registry == null)
+ {
+ throw new ArgumentNullException("registry");
+ }
+
+ FailureMechanismEntity entity = mechanism.GetCorrespondingEntity(
+ context.FailureMechanismEntities,
+ o => o.FailureMechanismEntityId);
+
+ entity.IsRelevant = Convert.ToByte(mechanism.IsRelevant);
+
+ mechanism.UpdateFailureMechanismSections(registry, entity, context);
+ UpdateSectionResults(mechanism, registry, context);
+
+ registry.Register(entity, mechanism);
+ }
+
+ private static void UpdateSectionResults(WaveImpactAsphaltCoverFailureMechanism mechanism, PersistenceRegistry registry, IRingtoetsEntities context)
+ {
+ foreach (var sectionResult in mechanism.SectionResults)
+ {
+ if (sectionResult.IsNew())
+ {
+ registry.Get(sectionResult.Section).WaveImpactAsphaltCoverSectionResultEntities.Add(sectionResult.Create(registry));
+ }
+ else
+ {
+ sectionResult.Update(registry, context);
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Application.Ringtoets.Storage.Test.csproj
===================================================================
diff -u -r5b3736b5350315a520f72c90222af261ea651019 -rb4816e19c7167c26fad825b88dd72b59dcedc13a
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Application.Ringtoets.Storage.Test.csproj (.../Application.Ringtoets.Storage.Test.csproj) (revision 5b3736b5350315a520f72c90222af261ea651019)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Application.Ringtoets.Storage.Test.csproj (.../Application.Ringtoets.Storage.Test.csproj) (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -84,6 +84,12 @@
+
+
+
+
+
+
@@ -119,6 +125,9 @@
+
+
+
@@ -154,6 +163,12 @@
+
+
+
+
+
+
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/MacrostabilityInwardsFailureMechanismCreateExtensionsTest.cs
===================================================================
diff -u
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/MacrostabilityInwardsFailureMechanismCreateExtensionsTest.cs (revision 0)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/MacrostabilityInwardsFailureMechanismCreateExtensionsTest.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,100 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Linq;
+using Application.Ringtoets.Storage.Create;
+using Application.Ringtoets.Storage.DbContext;
+using Application.Ringtoets.Storage.TestUtil;
+using NUnit.Framework;
+using Ringtoets.Integration.Data.StandAlone;
+
+namespace Application.Ringtoets.Storage.Test.Create
+{
+ [TestFixture]
+ public class MacrostabilityInwardsFailureMechanismCreateExtensionsTest
+ {
+ [Test]
+ public void Create_WithoutPersistenceRegistry_ThrowsArgumentNullException()
+ {
+ // Setup
+ var failureMechanism = new MacrostabilityInwardsFailureMechanism();
+
+ // Call
+ TestDelegate test = () => failureMechanism.Create(null);
+
+ // Assert
+ var paramName = Assert.Throws(test).ParamName;
+ Assert.AreEqual("registry", paramName);
+ }
+
+ [Test]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void Create_WithCollectorAndPropertiesSet_ReturnsFailureMechanismEntityWithPropertiesSet(bool isRelevant)
+ {
+ // Setup
+ var failureMechanism = new MacrostabilityInwardsFailureMechanism
+ {
+ IsRelevant = isRelevant,
+ Comments = "Some text"
+ };
+ var registry = new PersistenceRegistry();
+
+ // Call
+ var entity = failureMechanism.Create(registry);
+
+ // Assert
+ Assert.IsNotNull(entity);
+ Assert.AreEqual((short)FailureMechanismType.MacrostabilityInwards, entity.FailureMechanismType);
+ Assert.AreEqual(Convert.ToByte(isRelevant), entity.IsRelevant);
+ Assert.AreEqual(failureMechanism.Comments, entity.Comments);
+ }
+
+ [Test]
+ public void Create_WithoutSections_EmptyFailureMechanismSectionEntities()
+ {
+ // Setup
+ var failureMechanism = new MacrostabilityInwardsFailureMechanism();
+
+ // Call
+ var entity = failureMechanism.Create(new PersistenceRegistry());
+
+ // Assert
+ Assert.IsEmpty(entity.FailureMechanismSectionEntities);
+ }
+
+ [Test]
+ public void Create_WithSections_FailureMechanismSectionEntitiesCreated()
+ {
+ // Setup
+ var failureMechanism = new MacrostabilityInwardsFailureMechanism();
+ failureMechanism.AddSection(new TestFailureMechanismSection());
+
+ // Call
+ var entity = failureMechanism.Create(new PersistenceRegistry());
+
+ // Assert
+ Assert.AreEqual(1, entity.FailureMechanismSectionEntities.Count);
+ Assert.AreEqual(1, entity.FailureMechanismSectionEntities.SelectMany(fms => fms.MacrostabilityInwardsSectionResultEntities).Count());
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/MacrostabilityInwardsFailureMechanismSectionResultCreateExtensionsTest.cs
===================================================================
diff -u
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/MacrostabilityInwardsFailureMechanismSectionResultCreateExtensionsTest.cs (revision 0)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/MacrostabilityInwardsFailureMechanismSectionResultCreateExtensionsTest.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,97 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using Application.Ringtoets.Storage.Create;
+using Application.Ringtoets.Storage.TestUtil;
+using Core.Common.Base.Data;
+using NUnit.Framework;
+using Ringtoets.Integration.Data.StandAlone.SectionResults;
+
+namespace Application.Ringtoets.Storage.Test.Create
+{
+ [TestFixture]
+ public class MacrostabilityInwardsFailureMechanismSectionResultCreateExtensionsTest
+ {
+ [Test]
+ public void Create_WithoutPersistenceRegistry_ThrowsArgumentNullException()
+ {
+ // Setup
+ var sectionResult = new MacrostabilityInwardsFailureMechanismSectionResult(new TestFailureMechanismSection());
+
+ // Call
+ TestDelegate test = () => sectionResult.Create(null);
+
+ // Assert
+ Assert.Throws(test);
+ }
+
+ [Test]
+ public void Create_WithDifferentResults_ReturnsEntityWithExpectedResults(
+ [Values(true, false)] bool assessmentLayerOneResult,
+ [Values(0.2, 0.523)] double assessmentLayerTwoAResult,
+ [Values(3.2, 4.5)] double assessmentLayerThreeResult
+ )
+ {
+ // Setup
+ var sectionResult = new MacrostabilityInwardsFailureMechanismSectionResult(new TestFailureMechanismSection());
+ sectionResult.AssessmentLayerOne = assessmentLayerOneResult;
+ sectionResult.AssessmentLayerTwoA = (RoundedDouble) assessmentLayerTwoAResult;
+ sectionResult.AssessmentLayerThree = (RoundedDouble) assessmentLayerThreeResult;
+
+ // Call
+ var result = sectionResult.Create(new PersistenceRegistry());
+
+ // Assert
+ Assert.AreEqual(Convert.ToByte(assessmentLayerOneResult), result.LayerOne);
+ Assert.AreEqual(Convert.ToDecimal(assessmentLayerTwoAResult), result.LayerTwoA);
+ Assert.AreEqual(Convert.ToDecimal(assessmentLayerThreeResult), result.LayerThree);
+ }
+
+ [Test]
+ public void Create_WithNaNLevel2aResult_ReturnsEntityWithExpectedResults()
+ {
+ // Setup
+ var sectionResult = new MacrostabilityInwardsFailureMechanismSectionResult(new TestFailureMechanismSection());
+ sectionResult.AssessmentLayerTwoA = (RoundedDouble)double.NaN;
+
+ // Call
+ var result = sectionResult.Create(new PersistenceRegistry());
+
+ // Assert
+ Assert.IsNull(result.LayerTwoA);
+ }
+
+ [Test]
+ public void Create_WithNaNLevel3Result_ReturnsEntityWithExpectedResults()
+ {
+ // Setup
+ var sectionResult = new MacrostabilityInwardsFailureMechanismSectionResult(new TestFailureMechanismSection());
+ sectionResult.AssessmentLayerThree = (RoundedDouble) double.NaN;
+
+ // Call
+ var result = sectionResult.Create(new PersistenceRegistry());
+
+ // Assert
+ Assert.IsNull(result.LayerThree);
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/MacrostabilityOutwardsFailureMechanismCreateExtensionsTest.cs
===================================================================
diff -u
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/MacrostabilityOutwardsFailureMechanismCreateExtensionsTest.cs (revision 0)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/MacrostabilityOutwardsFailureMechanismCreateExtensionsTest.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,100 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Linq;
+using Application.Ringtoets.Storage.Create;
+using Application.Ringtoets.Storage.DbContext;
+using Application.Ringtoets.Storage.TestUtil;
+using NUnit.Framework;
+using Ringtoets.Integration.Data.StandAlone;
+
+namespace Application.Ringtoets.Storage.Test.Create
+{
+ [TestFixture]
+ public class MacrostabilityOutwardsFailureMechanismCreateExtensionsTest
+ {
+ [Test]
+ public void Create_WithoutPersistenceRegistry_ThrowsArgumentNullException()
+ {
+ // Setup
+ var failureMechanism = new MacrostabilityOutwardsFailureMechanism();
+
+ // Call
+ TestDelegate test = () => failureMechanism.Create(null);
+
+ // Assert
+ var paramName = Assert.Throws(test).ParamName;
+ Assert.AreEqual("registry", paramName);
+ }
+
+ [Test]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void Create_WithCollectorAndPropertiesSet_ReturnsFailureMechanismEntityWithPropertiesSet(bool isRelevant)
+ {
+ // Setup
+ var failureMechanism = new MacrostabilityOutwardsFailureMechanism
+ {
+ IsRelevant = isRelevant,
+ Comments = "Some text"
+ };
+ var registry = new PersistenceRegistry();
+
+ // Call
+ var entity = failureMechanism.Create(registry);
+
+ // Assert
+ Assert.IsNotNull(entity);
+ Assert.AreEqual((short)FailureMechanismType.MacrostabilityOutwards, entity.FailureMechanismType);
+ Assert.AreEqual(Convert.ToByte(isRelevant), entity.IsRelevant);
+ Assert.AreEqual(failureMechanism.Comments, entity.Comments);
+ }
+
+ [Test]
+ public void Create_WithoutSections_EmptyFailureMechanismSectionEntities()
+ {
+ // Setup
+ var failureMechanism = new MacrostabilityOutwardsFailureMechanism();
+
+ // Call
+ var entity = failureMechanism.Create(new PersistenceRegistry());
+
+ // Assert
+ Assert.IsEmpty(entity.FailureMechanismSectionEntities);
+ }
+
+ [Test]
+ public void Create_WithSections_FailureMechanismSectionEntitiesCreated()
+ {
+ // Setup
+ var failureMechanism = new MacrostabilityOutwardsFailureMechanism();
+ failureMechanism.AddSection(new TestFailureMechanismSection());
+
+ // Call
+ var entity = failureMechanism.Create(new PersistenceRegistry());
+
+ // Assert
+ Assert.AreEqual(1, entity.FailureMechanismSectionEntities.Count);
+ Assert.AreEqual(1, entity.FailureMechanismSectionEntities.SelectMany(fms => fms.MacrostabilityOutwardsSectionResultEntities).Count());
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/MacrostabilityOutwardsFailureMechanismSectionResultCreateExtensionsTest.cs
===================================================================
diff -u
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/MacrostabilityOutwardsFailureMechanismSectionResultCreateExtensionsTest.cs (revision 0)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/MacrostabilityOutwardsFailureMechanismSectionResultCreateExtensionsTest.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,97 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using Application.Ringtoets.Storage.Create;
+using Application.Ringtoets.Storage.TestUtil;
+using Core.Common.Base.Data;
+using NUnit.Framework;
+using Ringtoets.Integration.Data.StandAlone.SectionResults;
+
+namespace Application.Ringtoets.Storage.Test.Create
+{
+ [TestFixture]
+ public class MacrostabilityOutwardsFailureMechanismSectionResultCreateExtensionsTest
+ {
+ [Test]
+ public void Create_WithoutPersistenceRegistry_ThrowsArgumentNullException()
+ {
+ // Setup
+ var sectionResult = new MacrostabilityOutwardsFailureMechanismSectionResult(new TestFailureMechanismSection());
+
+ // Call
+ TestDelegate test = () => sectionResult.Create(null);
+
+ // Assert
+ Assert.Throws(test);
+ }
+
+ [Test]
+ public void Create_WithDifferentResults_ReturnsEntityWithExpectedResults(
+ [Values(true, false)] bool assessmentLayerOneResult,
+ [Values(0.2, 0.523)] double assessmentLayerTwoAResult,
+ [Values(3.2, 4.5)] double assessmentLayerThreeResult
+ )
+ {
+ // Setup
+ var sectionResult = new MacrostabilityOutwardsFailureMechanismSectionResult(new TestFailureMechanismSection());
+ sectionResult.AssessmentLayerOne = assessmentLayerOneResult;
+ sectionResult.AssessmentLayerTwoA = (RoundedDouble) assessmentLayerTwoAResult;
+ sectionResult.AssessmentLayerThree = (RoundedDouble) assessmentLayerThreeResult;
+
+ // Call
+ var result = sectionResult.Create(new PersistenceRegistry());
+
+ // Assert
+ Assert.AreEqual(Convert.ToByte(assessmentLayerOneResult), result.LayerOne);
+ Assert.AreEqual(Convert.ToDecimal(assessmentLayerTwoAResult), result.LayerTwoA);
+ Assert.AreEqual(Convert.ToDecimal(assessmentLayerThreeResult), result.LayerThree);
+ }
+
+ [Test]
+ public void Create_WithNaNLevel2aResult_ReturnsEntityWithExpectedResults()
+ {
+ // Setup
+ var sectionResult = new MacrostabilityOutwardsFailureMechanismSectionResult(new TestFailureMechanismSection());
+ sectionResult.AssessmentLayerTwoA = (RoundedDouble)double.NaN;
+
+ // Call
+ var result = sectionResult.Create(new PersistenceRegistry());
+
+ // Assert
+ Assert.IsNull(result.LayerTwoA);
+ }
+
+ [Test]
+ public void Create_WithNaNLevel3Result_ReturnsEntityWithExpectedResults()
+ {
+ // Setup
+ var sectionResult = new MacrostabilityOutwardsFailureMechanismSectionResult(new TestFailureMechanismSection());
+ sectionResult.AssessmentLayerThree = (RoundedDouble) double.NaN;
+
+ // Call
+ var result = sectionResult.Create(new PersistenceRegistry());
+
+ // Assert
+ Assert.IsNull(result.LayerThree);
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/PersistenceRegistryTest.cs
===================================================================
diff -u -r1cd3618f5f8916ef15992d69ec3b447b311c2f72 -rb4816e19c7167c26fad825b88dd72b59dcedc13a
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/PersistenceRegistryTest.cs (.../PersistenceRegistryTest.cs) (revision 1cd3618f5f8916ef15992d69ec3b447b311c2f72)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/PersistenceRegistryTest.cs (.../PersistenceRegistryTest.cs) (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -21,11 +21,9 @@
using System;
using System.Linq;
-
using Application.Ringtoets.Storage.Create;
using Application.Ringtoets.Storage.DbContext;
using Application.Ringtoets.Storage.TestUtil;
-
using Core.Common.Base.Data;
using Core.Common.Base.Geometry;
using NUnit.Framework;
@@ -1076,6 +1074,90 @@
}
[Test]
+ public void Register_WithNullMacrostabilityInwardsFailureMechanismSectionResult_ThrowsArgumentNullException()
+ {
+ // Setup
+ var registry = new PersistenceRegistry();
+
+ // Call
+ TestDelegate test = () => registry.Register(new MacrostabilityInwardsSectionResultEntity(), null);
+
+ // Assert
+ var paramName = Assert.Throws(test).ParamName;
+ Assert.AreEqual("model", paramName);
+ }
+
+ [Test]
+ public void Register_WithNullMacrostabilityInwardsSectionResultEntity_ThrowsArgumentNullException()
+ {
+ // Setup
+ var registry = new PersistenceRegistry();
+
+ // Call
+ TestDelegate test = () => registry.Register(null, new MacrostabilityInwardsFailureMechanismSectionResult(new TestFailureMechanismSection()));
+
+ // Assert
+ var paramName = Assert.Throws(test).ParamName;
+ Assert.AreEqual("entity", paramName);
+ }
+
+ [Test]
+ public void Register_WithNullMacrostabilityOutwardsFailureMechanismSectionResult_ThrowsArgumentNullException()
+ {
+ // Setup
+ var registry = new PersistenceRegistry();
+
+ // Call
+ TestDelegate test = () => registry.Register(new MacrostabilityOutwardsSectionResultEntity(), null);
+
+ // Assert
+ var paramName = Assert.Throws(test).ParamName;
+ Assert.AreEqual("model", paramName);
+ }
+
+ [Test]
+ public void Register_WithNullMacrostabilityOutwardsSectionResultEntity_ThrowsArgumentNullException()
+ {
+ // Setup
+ var registry = new PersistenceRegistry();
+
+ // Call
+ TestDelegate test = () => registry.Register(null, new MacrostabilityOutwardsFailureMechanismSectionResult(new TestFailureMechanismSection()));
+
+ // Assert
+ var paramName = Assert.Throws(test).ParamName;
+ Assert.AreEqual("entity", paramName);
+ }
+
+ [Test]
+ public void Register_WithNullWaveImpactAsphaltCoverFailureMechanismSectionResult_ThrowsArgumentNullException()
+ {
+ // Setup
+ var registry = new PersistenceRegistry();
+
+ // Call
+ TestDelegate test = () => registry.Register(new WaveImpactAsphaltCoverSectionResultEntity(), null);
+
+ // Assert
+ var paramName = Assert.Throws(test).ParamName;
+ Assert.AreEqual("model", paramName);
+ }
+
+ [Test]
+ public void Register_WithNullWaveImpactAsphaltCoverSectionResultEntity_ThrowsArgumentNullException()
+ {
+ // Setup
+ var registry = new PersistenceRegistry();
+
+ // Call
+ TestDelegate test = () => registry.Register(null, new WaveImpactAsphaltCoverFailureMechanismSectionResult(new TestFailureMechanismSection()));
+
+ // Assert
+ var paramName = Assert.Throws(test).ParamName;
+ Assert.AreEqual("entity", paramName);
+ }
+
+ [Test]
public void Register_WithNullHydraulicLocationEntity_ThrowsArgumentNullException()
{
// Setup
@@ -1529,7 +1611,7 @@
var registry = new PersistenceRegistry();
long storageId = new Random(21).Next(1,4000);
- var entity = new PipingSectionResultEntity()
+ var entity = new PipingSectionResultEntity
{
PipingSectionResultEntityId = storageId
};
@@ -1550,7 +1632,7 @@
var registry = new PersistenceRegistry();
long storageId = new Random(21).Next(1,4000);
- var entity = new GrassCoverErosionInwardsSectionResultEntity()
+ var entity = new GrassCoverErosionInwardsSectionResultEntity
{
GrassCoverErosionInwardsSectionResultEntityId = storageId
};
@@ -1571,7 +1653,7 @@
var registry = new PersistenceRegistry();
long storageId = new Random(21).Next(1,4000);
- var entity = new HeightStructuresSectionResultEntity()
+ var entity = new HeightStructuresSectionResultEntity
{
HeightStructuresSectionResultEntityId = storageId
};
@@ -1592,7 +1674,7 @@
var registry = new PersistenceRegistry();
long storageId = new Random(21).Next(1,4000);
- var entity = new StrengthStabilityLengthwiseConstructionSectionResultEntity()
+ var entity = new StrengthStabilityLengthwiseConstructionSectionResultEntity
{
StrengthStabilityLengthwiseConstructionSectionResultEntityId = storageId
};
@@ -1613,7 +1695,7 @@
var registry = new PersistenceRegistry();
long storageId = new Random(21).Next(1,4000);
- var entity = new TechnicalInnovationSectionResultEntity()
+ var entity = new TechnicalInnovationSectionResultEntity
{
TechnicalInnovationSectionResultEntityId = storageId
};
@@ -1634,7 +1716,7 @@
var registry = new PersistenceRegistry();
long storageId = new Random(21).Next(1,4000);
- var entity = new WaterPressureAsphaltCoverSectionResultEntity()
+ var entity = new WaterPressureAsphaltCoverSectionResultEntity
{
WaterPressureAsphaltCoverSectionResultEntityId = storageId
};
@@ -1655,7 +1737,7 @@
var registry = new PersistenceRegistry();
long storageId = new Random(21).Next(1,4000);
- var entity = new ClosingStructureSectionResultEntity()
+ var entity = new ClosingStructureSectionResultEntity
{
ClosingStructureSectionResultEntityId = storageId
};
@@ -1670,6 +1752,69 @@
}
[Test]
+ public void TransferIds_WithMacrostabilityInwardsSectionResultEntityAddedWithMacrostabilityInwardsFailureMechanismSectionResult_EqualMacrostabilityInwardsSectionEntityIdAndMacrostabilityInwardsFailureMechanismSectionResultStorageId()
+ {
+ // Setup
+ var registry = new PersistenceRegistry();
+
+ long storageId = new Random(21).Next(1,4000);
+ var entity = new MacrostabilityInwardsSectionResultEntity
+ {
+ MacrostabilityInwardsSectionResultEntityId = storageId
+ };
+ var model = new MacrostabilityInwardsFailureMechanismSectionResult(new TestFailureMechanismSection());
+ registry.Register(entity, model);
+
+ // Call
+ registry.TransferIds();
+
+ // Assert
+ Assert.AreEqual(storageId, model.StorageId);
+ }
+
+ [Test]
+ public void TransferIds_WithMacrostabilityOutwardsSectionResultEntityAddedWithMacrostabilityOutwardsFailureMechanismSectionResult_EqualMacrostabilityOutwardsSectionEntityIdAndMacrostabilityOutwardsFailureMechanismSectionResultStorageId()
+ {
+ // Setup
+ var registry = new PersistenceRegistry();
+
+ long storageId = new Random(21).Next(1,4000);
+ var entity = new MacrostabilityOutwardsSectionResultEntity
+ {
+ MacrostabilityOutwardsSectionResultEntityId = storageId
+ };
+ var model = new MacrostabilityOutwardsFailureMechanismSectionResult(new TestFailureMechanismSection());
+ registry.Register(entity, model);
+
+ // Call
+ registry.TransferIds();
+
+ // Assert
+ Assert.AreEqual(storageId, model.StorageId);
+ }
+
+ [Test]
+ public void TransferIds_WithWaveImpactAsphaltCoverSectionResultEntityAddedWithWaveImpactAsphaltCoverFailureMechanismSectionResult_EqualWaveImpactAsphaltCoverSectionEntityIdAndWaveImpactAsphaltCoverFailureMechanismSectionResultStorageId()
+ {
+ // Setup
+ var registry = new PersistenceRegistry();
+
+ long storageId = new Random(21).Next(1,4000);
+ var entity = new WaveImpactAsphaltCoverSectionResultEntity
+ {
+ WaveImpactAsphaltCoverSectionResultEntityId = storageId
+ };
+ var model = new WaveImpactAsphaltCoverFailureMechanismSectionResult(new TestFailureMechanismSection());
+ registry.Register(entity, model);
+
+ // Call
+ registry.TransferIds();
+
+ // Assert
+ Assert.AreEqual(storageId, model.StorageId);
+ }
+
+ [Test]
public void TransferIds_WithHydraulicLocationEntityAdded_EqualHydraulicLocationEntityIdAndHydraulicBoundaryLocationStorageId()
{
// Setup
@@ -2311,6 +2456,114 @@
}
[Test]
+ public void RemoveUntouched_MacrostabilityInwardsSectionResultEntity_OrphanedEntityIsRemovedFromRingtoetsEntities()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ IRingtoetsEntities dbContext = RingtoetsEntitiesHelper.CreateStub(mocks);
+ mocks.ReplayAll();
+
+ var orphanedEntity = new MacrostabilityInwardsSectionResultEntity
+ {
+ MacrostabilityInwardsSectionResultEntityId = 1
+ };
+ var persistentEntity = new MacrostabilityInwardsSectionResultEntity
+ {
+ MacrostabilityInwardsSectionResultEntityId = 2
+ };
+ dbContext.MacrostabilityInwardsSectionResultEntities.Add(orphanedEntity);
+ dbContext.MacrostabilityInwardsSectionResultEntities.Add(persistentEntity);
+
+ var section = new MacrostabilityInwardsFailureMechanismSectionResult(new TestFailureMechanismSection())
+ {
+ StorageId = persistentEntity.MacrostabilityInwardsSectionResultEntityId
+ };
+
+ var registry = new PersistenceRegistry();
+ registry.Register(persistentEntity, section);
+
+ // Call
+ registry.RemoveUntouched(dbContext);
+
+ // Assert
+ Assert.AreEqual(1, dbContext.MacrostabilityInwardsSectionResultEntities.Count());
+ CollectionAssert.Contains(dbContext.MacrostabilityInwardsSectionResultEntities, persistentEntity);
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void RemoveUntouched_MacrostabilityOutwardsSectionResultEntity_OrphanedEntityIsRemovedFromRingtoetsEntities()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ IRingtoetsEntities dbContext = RingtoetsEntitiesHelper.CreateStub(mocks);
+ mocks.ReplayAll();
+
+ var orphanedEntity = new MacrostabilityOutwardsSectionResultEntity
+ {
+ MacrostabilityOutwardsSectionResultEntityId = 1
+ };
+ var persistentEntity = new MacrostabilityOutwardsSectionResultEntity
+ {
+ MacrostabilityOutwardsSectionResultEntityId = 2
+ };
+ dbContext.MacrostabilityOutwardsSectionResultEntities.Add(orphanedEntity);
+ dbContext.MacrostabilityOutwardsSectionResultEntities.Add(persistentEntity);
+
+ var section = new MacrostabilityOutwardsFailureMechanismSectionResult(new TestFailureMechanismSection())
+ {
+ StorageId = persistentEntity.MacrostabilityOutwardsSectionResultEntityId
+ };
+
+ var registry = new PersistenceRegistry();
+ registry.Register(persistentEntity, section);
+
+ // Call
+ registry.RemoveUntouched(dbContext);
+
+ // Assert
+ Assert.AreEqual(1, dbContext.MacrostabilityOutwardsSectionResultEntities.Count());
+ CollectionAssert.Contains(dbContext.MacrostabilityOutwardsSectionResultEntities, persistentEntity);
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void RemoveUntouched_WaveImpactAsphaltCoverSectionResultEntity_OrphanedEntityIsRemovedFromRingtoetsEntities()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ IRingtoetsEntities dbContext = RingtoetsEntitiesHelper.CreateStub(mocks);
+ mocks.ReplayAll();
+
+ var orphanedEntity = new WaveImpactAsphaltCoverSectionResultEntity
+ {
+ WaveImpactAsphaltCoverSectionResultEntityId = 1
+ };
+ var persistentEntity = new WaveImpactAsphaltCoverSectionResultEntity
+ {
+ WaveImpactAsphaltCoverSectionResultEntityId = 2
+ };
+ dbContext.WaveImpactAsphaltCoverSectionResultEntities.Add(orphanedEntity);
+ dbContext.WaveImpactAsphaltCoverSectionResultEntities.Add(persistentEntity);
+
+ var section = new WaveImpactAsphaltCoverFailureMechanismSectionResult(new TestFailureMechanismSection())
+ {
+ StorageId = persistentEntity.WaveImpactAsphaltCoverSectionResultEntityId
+ };
+
+ var registry = new PersistenceRegistry();
+ registry.Register(persistentEntity, section);
+
+ // Call
+ registry.RemoveUntouched(dbContext);
+
+ // Assert
+ Assert.AreEqual(1, dbContext.WaveImpactAsphaltCoverSectionResultEntities.Count());
+ CollectionAssert.Contains(dbContext.WaveImpactAsphaltCoverSectionResultEntities, persistentEntity);
+ mocks.VerifyAll();
+ }
+
+ [Test]
public void RemoveUntouched_HydraulicLocationEntity_OrphanedEntityIsRemovedFromRingtoetsEntities()
{
// Setup
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/WaveImpactAsphaltCoverFailureMechanismCreateExtensionsTest.cs
===================================================================
diff -u
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/WaveImpactAsphaltCoverFailureMechanismCreateExtensionsTest.cs (revision 0)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/WaveImpactAsphaltCoverFailureMechanismCreateExtensionsTest.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,100 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Linq;
+using Application.Ringtoets.Storage.Create;
+using Application.Ringtoets.Storage.DbContext;
+using Application.Ringtoets.Storage.TestUtil;
+using NUnit.Framework;
+using Ringtoets.Integration.Data.StandAlone;
+
+namespace Application.Ringtoets.Storage.Test.Create
+{
+ [TestFixture]
+ public class WaveImpactAsphaltCoverFailureMechanismCreateExtensionsTest
+ {
+ [Test]
+ public void Create_WithoutPersistenceRegistry_ThrowsArgumentNullException()
+ {
+ // Setup
+ var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism();
+
+ // Call
+ TestDelegate test = () => failureMechanism.Create(null);
+
+ // Assert
+ var paramName = Assert.Throws(test).ParamName;
+ Assert.AreEqual("registry", paramName);
+ }
+
+ [Test]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void Create_WithCollectorAndPropertiesSet_ReturnsFailureMechanismEntityWithPropertiesSet(bool isRelevant)
+ {
+ // Setup
+ var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism
+ {
+ IsRelevant = isRelevant,
+ Comments = "Some text"
+ };
+ var registry = new PersistenceRegistry();
+
+ // Call
+ var entity = failureMechanism.Create(registry);
+
+ // Assert
+ Assert.IsNotNull(entity);
+ Assert.AreEqual((short)FailureMechanismType.WaveImpactOnAsphaltRevetment, entity.FailureMechanismType);
+ Assert.AreEqual(Convert.ToByte(isRelevant), entity.IsRelevant);
+ Assert.AreEqual(failureMechanism.Comments, entity.Comments);
+ }
+
+ [Test]
+ public void Create_WithoutSections_EmptyFailureMechanismSectionEntities()
+ {
+ // Setup
+ var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism();
+
+ // Call
+ var entity = failureMechanism.Create(new PersistenceRegistry());
+
+ // Assert
+ Assert.IsEmpty(entity.FailureMechanismSectionEntities);
+ }
+
+ [Test]
+ public void Create_WithSections_FailureMechanismSectionEntitiesCreated()
+ {
+ // Setup
+ var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism();
+ failureMechanism.AddSection(new TestFailureMechanismSection());
+
+ // Call
+ var entity = failureMechanism.Create(new PersistenceRegistry());
+
+ // Assert
+ Assert.AreEqual(1, entity.FailureMechanismSectionEntities.Count);
+ Assert.AreEqual(1, entity.FailureMechanismSectionEntities.SelectMany(fms => fms.WaveImpactAsphaltCoverSectionResultEntities).Count());
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/WaveImpactAsphaltCoverFailureMechanismSectionResultCreateExtensionsTest.cs
===================================================================
diff -u
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/WaveImpactAsphaltCoverFailureMechanismSectionResultCreateExtensionsTest.cs (revision 0)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/WaveImpactAsphaltCoverFailureMechanismSectionResultCreateExtensionsTest.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,97 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using Application.Ringtoets.Storage.Create;
+using Application.Ringtoets.Storage.TestUtil;
+using Core.Common.Base.Data;
+using NUnit.Framework;
+using Ringtoets.Integration.Data.StandAlone.SectionResults;
+
+namespace Application.Ringtoets.Storage.Test.Create
+{
+ [TestFixture]
+ public class WaveImpactAsphaltCoverFailureMechanismSectionResultCreateExtensionsTest
+ {
+ [Test]
+ public void Create_WithoutPersistenceRegistry_ThrowsArgumentNullException()
+ {
+ // Setup
+ var sectionResult = new WaveImpactAsphaltCoverFailureMechanismSectionResult(new TestFailureMechanismSection());
+
+ // Call
+ TestDelegate test = () => sectionResult.Create(null);
+
+ // Assert
+ Assert.Throws(test);
+ }
+
+ [Test]
+ public void Create_WithDifferentResults_ReturnsEntityWithExpectedResults(
+ [Values(true, false)] bool assessmentLayerOneResult,
+ [Values(0.2, 0.523)] double assessmentLayerTwoAResult,
+ [Values(3.2, 4.5)] double assessmentLayerThreeResult
+ )
+ {
+ // Setup
+ var sectionResult = new WaveImpactAsphaltCoverFailureMechanismSectionResult(new TestFailureMechanismSection());
+ sectionResult.AssessmentLayerOne = assessmentLayerOneResult;
+ sectionResult.AssessmentLayerTwoA = (RoundedDouble) assessmentLayerTwoAResult;
+ sectionResult.AssessmentLayerThree = (RoundedDouble) assessmentLayerThreeResult;
+
+ // Call
+ var result = sectionResult.Create(new PersistenceRegistry());
+
+ // Assert
+ Assert.AreEqual(Convert.ToByte(assessmentLayerOneResult), result.LayerOne);
+ Assert.AreEqual(Convert.ToDecimal(assessmentLayerTwoAResult), result.LayerTwoA);
+ Assert.AreEqual(Convert.ToDecimal(assessmentLayerThreeResult), result.LayerThree);
+ }
+
+ [Test]
+ public void Create_WithNaNLevel2aResult_ReturnsEntityWithExpectedResults()
+ {
+ // Setup
+ var sectionResult = new WaveImpactAsphaltCoverFailureMechanismSectionResult(new TestFailureMechanismSection());
+ sectionResult.AssessmentLayerTwoA = (RoundedDouble)double.NaN;
+
+ // Call
+ var result = sectionResult.Create(new PersistenceRegistry());
+
+ // Assert
+ Assert.IsNull(result.LayerTwoA);
+ }
+
+ [Test]
+ public void Create_WithNaNLevel3Result_ReturnsEntityWithExpectedResults()
+ {
+ // Setup
+ var sectionResult = new WaveImpactAsphaltCoverFailureMechanismSectionResult(new TestFailureMechanismSection());
+ sectionResult.AssessmentLayerThree = (RoundedDouble) double.NaN;
+
+ // Call
+ var result = sectionResult.Create(new PersistenceRegistry());
+
+ // Assert
+ Assert.IsNull(result.LayerThree);
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/IntegrationTests/StorageSqLiteIntegrationTest.cs
===================================================================
diff -u -r1cd3618f5f8916ef15992d69ec3b447b311c2f72 -rb4816e19c7167c26fad825b88dd72b59dcedc13a
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/IntegrationTests/StorageSqLiteIntegrationTest.cs (.../StorageSqLiteIntegrationTest.cs) (revision 1cd3618f5f8916ef15992d69ec3b447b311c2f72)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/IntegrationTests/StorageSqLiteIntegrationTest.cs (.../StorageSqLiteIntegrationTest.cs) (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -275,6 +275,15 @@
AssertFailureMechanismSectionResults(
expectedAssessmentSection.ClosingStructure.SectionResults,
actualAssessmentSection.ClosingStructure.SectionResults);
+ AssertFailureMechanismSectionResults(
+ expectedAssessmentSection.MacrostabilityOutwards.SectionResults,
+ actualAssessmentSection.MacrostabilityOutwards.SectionResults);
+ AssertFailureMechanismSectionResults(
+ expectedAssessmentSection.MacrostabilityInwards.SectionResults,
+ actualAssessmentSection.MacrostabilityInwards.SectionResults);
+ AssertFailureMechanismSectionResults(
+ expectedAssessmentSection.WaveImpactAsphaltCover.SectionResults,
+ actualAssessmentSection.WaveImpactAsphaltCover.SectionResults);
}
}
@@ -400,6 +409,60 @@
}
}
+ private void AssertFailureMechanismSectionResults(IEnumerable expectedSectionResults, IEnumerable actualSectionResults)
+ {
+ var expectedSectionResultsArray = expectedSectionResults.ToArray();
+ var actualSectionResultsArray = actualSectionResults.ToArray();
+
+ Assert.AreEqual(expectedSectionResultsArray.Length, actualSectionResultsArray.Length);
+
+ for (var i = 0; i < expectedSectionResultsArray.Length; i++)
+ {
+ MacrostabilityInwardsFailureMechanismSectionResult expectedSection = expectedSectionResultsArray[i];
+ MacrostabilityInwardsFailureMechanismSectionResult actualSection = actualSectionResultsArray[i];
+
+ Assert.AreEqual(expectedSection.AssessmentLayerOne, actualSection.AssessmentLayerOne);
+ Assert.AreEqual(expectedSection.AssessmentLayerTwoA, actualSection.AssessmentLayerTwoA);
+ Assert.AreEqual(expectedSection.AssessmentLayerThree, actualSection.AssessmentLayerThree);
+ }
+ }
+
+ private void AssertFailureMechanismSectionResults(IEnumerable expectedSectionResults, IEnumerable actualSectionResults)
+ {
+ var expectedSectionResultsArray = expectedSectionResults.ToArray();
+ var actualSectionResultsArray = actualSectionResults.ToArray();
+
+ Assert.AreEqual(expectedSectionResultsArray.Length, actualSectionResultsArray.Length);
+
+ for (var i = 0; i < expectedSectionResultsArray.Length; i++)
+ {
+ MacrostabilityOutwardsFailureMechanismSectionResult expectedSection = expectedSectionResultsArray[i];
+ MacrostabilityOutwardsFailureMechanismSectionResult actualSection = actualSectionResultsArray[i];
+
+ Assert.AreEqual(expectedSection.AssessmentLayerOne, actualSection.AssessmentLayerOne);
+ Assert.AreEqual(expectedSection.AssessmentLayerTwoA, actualSection.AssessmentLayerTwoA);
+ Assert.AreEqual(expectedSection.AssessmentLayerThree, actualSection.AssessmentLayerThree);
+ }
+ }
+
+ private void AssertFailureMechanismSectionResults(IEnumerable expectedSectionResults, IEnumerable actualSectionResults)
+ {
+ var expectedSectionResultsArray = expectedSectionResults.ToArray();
+ var actualSectionResultsArray = actualSectionResults.ToArray();
+
+ Assert.AreEqual(expectedSectionResultsArray.Length, actualSectionResultsArray.Length);
+
+ for (var i = 0; i < expectedSectionResultsArray.Length; i++)
+ {
+ WaveImpactAsphaltCoverFailureMechanismSectionResult expectedSection = expectedSectionResultsArray[i];
+ WaveImpactAsphaltCoverFailureMechanismSectionResult actualSection = actualSectionResultsArray[i];
+
+ Assert.AreEqual(expectedSection.AssessmentLayerOne, actualSection.AssessmentLayerOne);
+ Assert.AreEqual(expectedSection.AssessmentLayerTwoA, actualSection.AssessmentLayerTwoA);
+ Assert.AreEqual(expectedSection.AssessmentLayerThree, actualSection.AssessmentLayerThree);
+ }
+ }
+
private void AssertFailureMechanism(IFailureMechanism expectedFailureMechanism, IFailureMechanism actualFailureMechanism)
{
Assert.AreEqual(expectedFailureMechanism.Name, actualFailureMechanism.Name);
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/MacrostabilityInwardsSectionResultEntityReadExtensionsTest.cs
===================================================================
diff -u
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/MacrostabilityInwardsSectionResultEntityReadExtensionsTest.cs (revision 0)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/MacrostabilityInwardsSectionResultEntityReadExtensionsTest.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,147 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using Application.Ringtoets.Storage.DbContext;
+using Application.Ringtoets.Storage.Read;
+using Application.Ringtoets.Storage.TestUtil;
+using NUnit.Framework;
+using Ringtoets.Integration.Data.StandAlone.SectionResults;
+
+namespace Application.Ringtoets.Storage.Test.Read
+{
+ [TestFixture]
+ public class MacrostabilityInwardsSectionResultEntityReadExtensionsTest
+ {
+ [Test]
+ public void Read_CollectorIsNull_ThrowArgumentNullException()
+ {
+ // Setup
+ var entity = new MacrostabilityInwardsSectionResultEntity();
+
+ // Call
+ TestDelegate call = () => entity.Read(new MacrostabilityInwardsFailureMechanismSectionResult(new TestFailureMechanismSection()), null);
+
+ // Assert
+ string paramName = Assert.Throws(call).ParamName;
+ Assert.AreEqual("collector", paramName);
+ }
+
+ [Test]
+ public void Read_SectionResultIsNull_ThrowArgumentNullException()
+ {
+ // Setup
+ var entity = new MacrostabilityInwardsSectionResultEntity();
+
+ // Call
+ TestDelegate call = () => entity.Read(null, new ReadConversionCollector());
+
+ // Assert
+ string paramName = Assert.Throws(call).ParamName;
+ Assert.AreEqual("sectionResult", paramName);
+ }
+
+ [Test]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void Read_WithDecimalParameterValues_ReturnMacrostabilityInwardsSoilLayerWithDoubleParameterValues(bool layerOne)
+ {
+ // Setup
+ var random = new Random(21);
+ var entityId = random.Next(1, 502);
+ double layerThree = random.NextDouble();
+ double layerTwoA = random.NextDouble();
+ var collector = new ReadConversionCollector();
+
+ var failureMechanismSectionEntity = new FailureMechanismSectionEntity();
+ collector.Read(failureMechanismSectionEntity, new TestFailureMechanismSection());
+ var entity = new MacrostabilityInwardsSectionResultEntity
+ {
+ MacrostabilityInwardsSectionResultEntityId = entityId,
+ LayerThree = Convert.ToDecimal(layerThree),
+ LayerTwoA = Convert.ToDecimal(layerTwoA),
+ LayerOne = Convert.ToByte(layerOne),
+ FailureMechanismSectionEntity = failureMechanismSectionEntity
+ };
+ var sectionResult = new MacrostabilityInwardsFailureMechanismSectionResult(new TestFailureMechanismSection());
+
+ // Call
+ entity.Read(sectionResult, collector);
+
+ // Assert
+ Assert.IsNotNull(sectionResult);
+ Assert.AreEqual(entityId, sectionResult.StorageId);
+ Assert.AreEqual(layerOne, sectionResult.AssessmentLayerOne);
+ Assert.AreEqual(layerTwoA, sectionResult.AssessmentLayerTwoA, 1e-6);
+ Assert.AreEqual(layerThree, sectionResult.AssessmentLayerThree, 1e-6);
+ }
+
+ [Test]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void Read_WithNullLayerTwoA_ReturnMacrostabilityInwardsSoilLayerWithNullParameters(bool layerOne)
+ {
+ // Setup
+ var collector = new ReadConversionCollector();
+ var failureMechanismSectionEntity = new FailureMechanismSectionEntity();
+ collector.Read(failureMechanismSectionEntity, new TestFailureMechanismSection());
+ var entity = new MacrostabilityInwardsSectionResultEntity
+ {
+ LayerOne = Convert.ToByte(layerOne),
+ LayerTwoA = null,
+ LayerThree = Convert.ToDecimal(new Random(21).NextDouble()),
+ FailureMechanismSectionEntity = failureMechanismSectionEntity
+ };
+ var sectionResult = new MacrostabilityInwardsFailureMechanismSectionResult(new TestFailureMechanismSection());
+
+ // Call
+ entity.Read(sectionResult, collector);
+
+ // Assert
+ Assert.IsNaN(sectionResult.AssessmentLayerTwoA);
+ }
+
+ [Test]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void Read_WithNullLayerThree_ReturnMacrostabilityInwardsSoilLayerWithNullParameters(bool layerOne)
+ {
+ // Setup
+ var collector = new ReadConversionCollector();
+ var failureMechanismSectionEntity = new FailureMechanismSectionEntity();
+ collector.Read(failureMechanismSectionEntity, new TestFailureMechanismSection());
+ var entity = new MacrostabilityInwardsSectionResultEntity
+ {
+ LayerOne = Convert.ToByte(layerOne),
+ LayerTwoA = Convert.ToDecimal(new Random(21).NextDouble()),
+ LayerThree = null,
+ FailureMechanismSectionEntity = failureMechanismSectionEntity
+ };
+ var sectionResult = new MacrostabilityInwardsFailureMechanismSectionResult(new TestFailureMechanismSection());
+
+ // Call
+ entity.Read(sectionResult, collector);
+
+ // Assert
+ Assert.IsNaN(sectionResult.AssessmentLayerThree);
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/MacrostabilityOutwardsSectionResultEntityReadExtensionsTest.cs
===================================================================
diff -u
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/MacrostabilityOutwardsSectionResultEntityReadExtensionsTest.cs (revision 0)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/MacrostabilityOutwardsSectionResultEntityReadExtensionsTest.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,147 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using Application.Ringtoets.Storage.DbContext;
+using Application.Ringtoets.Storage.Read;
+using Application.Ringtoets.Storage.TestUtil;
+using NUnit.Framework;
+using Ringtoets.Integration.Data.StandAlone.SectionResults;
+
+namespace Application.Ringtoets.Storage.Test.Read
+{
+ [TestFixture]
+ public class MacrostabilityOutwardsSectionResultEntityReadExtensionsTest
+ {
+ [Test]
+ public void Read_CollectorIsNull_ThrowArgumentNullException()
+ {
+ // Setup
+ var entity = new MacrostabilityOutwardsSectionResultEntity();
+
+ // Call
+ TestDelegate call = () => entity.Read(new MacrostabilityOutwardsFailureMechanismSectionResult(new TestFailureMechanismSection()), null);
+
+ // Assert
+ string paramName = Assert.Throws(call).ParamName;
+ Assert.AreEqual("collector", paramName);
+ }
+
+ [Test]
+ public void Read_SectionResultIsNull_ThrowArgumentNullException()
+ {
+ // Setup
+ var entity = new MacrostabilityOutwardsSectionResultEntity();
+
+ // Call
+ TestDelegate call = () => entity.Read(null, new ReadConversionCollector());
+
+ // Assert
+ string paramName = Assert.Throws(call).ParamName;
+ Assert.AreEqual("sectionResult", paramName);
+ }
+
+ [Test]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void Read_WithDecimalParameterValues_ReturnMacrostabilityOutwardsSoilLayerWithDoubleParameterValues(bool layerOne)
+ {
+ // Setup
+ var random = new Random(21);
+ var entityId = random.Next(1, 502);
+ double layerThree = random.NextDouble();
+ double layerTwoA = random.NextDouble();
+ var collector = new ReadConversionCollector();
+
+ var failureMechanismSectionEntity = new FailureMechanismSectionEntity();
+ collector.Read(failureMechanismSectionEntity, new TestFailureMechanismSection());
+ var entity = new MacrostabilityOutwardsSectionResultEntity
+ {
+ MacrostabilityOutwardsSectionResultEntityId = entityId,
+ LayerThree = Convert.ToDecimal(layerThree),
+ LayerTwoA = Convert.ToDecimal(layerTwoA),
+ LayerOne = Convert.ToByte(layerOne),
+ FailureMechanismSectionEntity = failureMechanismSectionEntity
+ };
+ var sectionResult = new MacrostabilityOutwardsFailureMechanismSectionResult(new TestFailureMechanismSection());
+
+ // Call
+ entity.Read(sectionResult, collector);
+
+ // Assert
+ Assert.IsNotNull(sectionResult);
+ Assert.AreEqual(entityId, sectionResult.StorageId);
+ Assert.AreEqual(layerOne, sectionResult.AssessmentLayerOne);
+ Assert.AreEqual(layerTwoA, sectionResult.AssessmentLayerTwoA, 1e-6);
+ Assert.AreEqual(layerThree, sectionResult.AssessmentLayerThree, 1e-6);
+ }
+
+ [Test]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void Read_WithNullLayerTwoA_ReturnMacrostabilityOutwardsSoilLayerWithNullParameters(bool layerOne)
+ {
+ // Setup
+ var collector = new ReadConversionCollector();
+ var failureMechanismSectionEntity = new FailureMechanismSectionEntity();
+ collector.Read(failureMechanismSectionEntity, new TestFailureMechanismSection());
+ var entity = new MacrostabilityOutwardsSectionResultEntity
+ {
+ LayerOne = Convert.ToByte(layerOne),
+ LayerTwoA = null,
+ LayerThree = Convert.ToDecimal(new Random(21).NextDouble()),
+ FailureMechanismSectionEntity = failureMechanismSectionEntity
+ };
+ var sectionResult = new MacrostabilityOutwardsFailureMechanismSectionResult(new TestFailureMechanismSection());
+
+ // Call
+ entity.Read(sectionResult, collector);
+
+ // Assert
+ Assert.IsNaN(sectionResult.AssessmentLayerTwoA);
+ }
+
+ [Test]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void Read_WithNullLayerThree_ReturnMacrostabilityOutwardsSoilLayerWithNullParameters(bool layerOne)
+ {
+ // Setup
+ var collector = new ReadConversionCollector();
+ var failureMechanismSectionEntity = new FailureMechanismSectionEntity();
+ collector.Read(failureMechanismSectionEntity, new TestFailureMechanismSection());
+ var entity = new MacrostabilityOutwardsSectionResultEntity
+ {
+ LayerOne = Convert.ToByte(layerOne),
+ LayerTwoA = Convert.ToDecimal(new Random(21).NextDouble()),
+ LayerThree = null,
+ FailureMechanismSectionEntity = failureMechanismSectionEntity
+ };
+ var sectionResult = new MacrostabilityOutwardsFailureMechanismSectionResult(new TestFailureMechanismSection());
+
+ // Call
+ entity.Read(sectionResult, collector);
+
+ // Assert
+ Assert.IsNaN(sectionResult.AssessmentLayerThree);
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/WaveImpactAsphaltCoverSectionResultEntityReadExtensionsTest.cs
===================================================================
diff -u
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/WaveImpactAsphaltCoverSectionResultEntityReadExtensionsTest.cs (revision 0)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/WaveImpactAsphaltCoverSectionResultEntityReadExtensionsTest.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,147 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using Application.Ringtoets.Storage.DbContext;
+using Application.Ringtoets.Storage.Read;
+using Application.Ringtoets.Storage.TestUtil;
+using NUnit.Framework;
+using Ringtoets.Integration.Data.StandAlone.SectionResults;
+
+namespace Application.Ringtoets.Storage.Test.Read
+{
+ [TestFixture]
+ public class WaveImpactAsphaltCoverSectionResultEntityReadExtensionsTest
+ {
+ [Test]
+ public void Read_CollectorIsNull_ThrowArgumentNullException()
+ {
+ // Setup
+ var entity = new WaveImpactAsphaltCoverSectionResultEntity();
+
+ // Call
+ TestDelegate call = () => entity.Read(new WaveImpactAsphaltCoverFailureMechanismSectionResult(new TestFailureMechanismSection()), null);
+
+ // Assert
+ string paramName = Assert.Throws(call).ParamName;
+ Assert.AreEqual("collector", paramName);
+ }
+
+ [Test]
+ public void Read_SectionResultIsNull_ThrowArgumentNullException()
+ {
+ // Setup
+ var entity = new WaveImpactAsphaltCoverSectionResultEntity();
+
+ // Call
+ TestDelegate call = () => entity.Read(null, new ReadConversionCollector());
+
+ // Assert
+ string paramName = Assert.Throws(call).ParamName;
+ Assert.AreEqual("sectionResult", paramName);
+ }
+
+ [Test]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void Read_WithDecimalParameterValues_ReturnWaveImpactAsphaltCoverSoilLayerWithDoubleParameterValues(bool layerOne)
+ {
+ // Setup
+ var random = new Random(21);
+ var entityId = random.Next(1, 502);
+ double layerThree = random.NextDouble();
+ double layerTwoA = random.NextDouble();
+ var collector = new ReadConversionCollector();
+
+ var failureMechanismSectionEntity = new FailureMechanismSectionEntity();
+ collector.Read(failureMechanismSectionEntity, new TestFailureMechanismSection());
+ var entity = new WaveImpactAsphaltCoverSectionResultEntity
+ {
+ WaveImpactAsphaltCoverSectionResultEntityId = entityId,
+ LayerThree = Convert.ToDecimal(layerThree),
+ LayerTwoA = Convert.ToDecimal(layerTwoA),
+ LayerOne = Convert.ToByte(layerOne),
+ FailureMechanismSectionEntity = failureMechanismSectionEntity
+ };
+ var sectionResult = new WaveImpactAsphaltCoverFailureMechanismSectionResult(new TestFailureMechanismSection());
+
+ // Call
+ entity.Read(sectionResult, collector);
+
+ // Assert
+ Assert.IsNotNull(sectionResult);
+ Assert.AreEqual(entityId, sectionResult.StorageId);
+ Assert.AreEqual(layerOne, sectionResult.AssessmentLayerOne);
+ Assert.AreEqual(layerTwoA, sectionResult.AssessmentLayerTwoA, 1e-6);
+ Assert.AreEqual(layerThree, sectionResult.AssessmentLayerThree, 1e-6);
+ }
+
+ [Test]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void Read_WithNullLayerTwoA_ReturnWaveImpactAsphaltCoverSoilLayerWithNullParameters(bool layerOne)
+ {
+ // Setup
+ var collector = new ReadConversionCollector();
+ var failureMechanismSectionEntity = new FailureMechanismSectionEntity();
+ collector.Read(failureMechanismSectionEntity, new TestFailureMechanismSection());
+ var entity = new WaveImpactAsphaltCoverSectionResultEntity
+ {
+ LayerOne = Convert.ToByte(layerOne),
+ LayerTwoA = null,
+ LayerThree = Convert.ToDecimal(new Random(21).NextDouble()),
+ FailureMechanismSectionEntity = failureMechanismSectionEntity
+ };
+ var sectionResult = new WaveImpactAsphaltCoverFailureMechanismSectionResult(new TestFailureMechanismSection());
+
+ // Call
+ entity.Read(sectionResult, collector);
+
+ // Assert
+ Assert.IsNaN(sectionResult.AssessmentLayerTwoA);
+ }
+
+ [Test]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void Read_WithNullLayerThree_ReturnWaveImpactAsphaltCoverSoilLayerWithNullParameters(bool layerOne)
+ {
+ // Setup
+ var collector = new ReadConversionCollector();
+ var failureMechanismSectionEntity = new FailureMechanismSectionEntity();
+ collector.Read(failureMechanismSectionEntity, new TestFailureMechanismSection());
+ var entity = new WaveImpactAsphaltCoverSectionResultEntity
+ {
+ LayerOne = Convert.ToByte(layerOne),
+ LayerTwoA = Convert.ToDecimal(new Random(21).NextDouble()),
+ LayerThree = null,
+ FailureMechanismSectionEntity = failureMechanismSectionEntity
+ };
+ var sectionResult = new WaveImpactAsphaltCoverFailureMechanismSectionResult(new TestFailureMechanismSection());
+
+ // Call
+ entity.Read(sectionResult, collector);
+
+ // Assert
+ Assert.IsNaN(sectionResult.AssessmentLayerThree);
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/MacrostabilityInwardsFailureMechanismSectionResultUpdateExtensionsTest.cs
===================================================================
diff -u
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/MacrostabilityInwardsFailureMechanismSectionResultUpdateExtensionsTest.cs (revision 0)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/MacrostabilityInwardsFailureMechanismSectionResultUpdateExtensionsTest.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,162 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using Application.Ringtoets.Storage.Create;
+using Application.Ringtoets.Storage.DbContext;
+using Application.Ringtoets.Storage.Exceptions;
+using Application.Ringtoets.Storage.TestUtil;
+using Application.Ringtoets.Storage.Update;
+using Core.Common.Base.Data;
+using NUnit.Framework;
+using Rhino.Mocks;
+using Ringtoets.Integration.Data.StandAlone.SectionResults;
+
+namespace Application.Ringtoets.Storage.Test.Update
+{
+ [TestFixture]
+ public class MacrostabilityInwardsFailureMechanismSectionResultUpdateExtensionsTest
+ {
+ [Test]
+ public void Update_WithoutContext_ArgumentNullException()
+ {
+ // Setup
+ var sectionResult = new MacrostabilityInwardsFailureMechanismSectionResult(new TestFailureMechanismSection());
+
+ // Call
+ TestDelegate test = () => sectionResult.Update(new PersistenceRegistry(), null);
+
+ // Assert
+ var paramName = Assert.Throws(test).ParamName;
+ Assert.AreEqual("context", paramName);
+ }
+
+ [Test]
+ public void Update_WithoutPersistenceRegistry_ArgumentNullException()
+ {
+ // Setup
+ var sectionResult = new MacrostabilityInwardsFailureMechanismSectionResult(new TestFailureMechanismSection());
+
+ // Call
+ TestDelegate test = () =>
+ {
+ using (var ringtoetsEntities = new RingtoetsEntities())
+ {
+ sectionResult.Update(null, ringtoetsEntities);
+ }
+ };
+
+ // Assert
+ var paramName = Assert.Throws(test).ParamName;
+ Assert.AreEqual("registry", paramName);
+ }
+
+ [Test]
+ public void Update_ContextWithNoMacrostabilityInwardsSectionResult_EntityNotFoundException()
+ {
+ // Setup
+ var sectionResult = new MacrostabilityInwardsFailureMechanismSectionResult(new TestFailureMechanismSection());
+
+ // Call
+ TestDelegate test = () =>
+ {
+ using (var ringtoetsEntities = new RingtoetsEntities())
+ {
+ sectionResult.Update(new PersistenceRegistry(), ringtoetsEntities);
+ }
+ };
+
+ // Assert
+ var expectedMessage = String.Format("Het object 'MacrostabilityInwardsSectionResultEntity' met id '{0}' is niet gevonden.", 0);
+ EntityNotFoundException exception = Assert.Throws(test);
+ Assert.AreEqual(expectedMessage, exception.Message);
+ }
+
+ [Test]
+ public void Update_ContextWithNoMacrostabilityInwardsSectionResultWithId_EntityNotFoundException()
+ {
+ // Setup
+ MockRepository mocks = new MockRepository();
+ var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks);
+
+ mocks.ReplayAll();
+
+ var storageId = 1;
+ var sectionResult = new MacrostabilityInwardsFailureMechanismSectionResult(new TestFailureMechanismSection())
+ {
+ StorageId = storageId
+ };
+
+ ringtoetsEntities.MacrostabilityInwardsSectionResultEntities.Add(new MacrostabilityInwardsSectionResultEntity
+ {
+ MacrostabilityInwardsSectionResultEntityId = 2
+ });
+
+ // Call
+ TestDelegate test = () => sectionResult.Update(new PersistenceRegistry(), ringtoetsEntities);
+
+ // Assert
+ var expectedMessage = String.Format("Het object 'MacrostabilityInwardsSectionResultEntity' met id '{0}' is niet gevonden.", storageId);
+ EntityNotFoundException exception = Assert.Throws(test);
+ Assert.AreEqual(expectedMessage, exception.Message);
+
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void Update_WithMacrostabilityInwardsSectionResult_PropertiesUpdated()
+ {
+ // Setup
+ MockRepository mocks = new MockRepository();
+ var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks);
+
+ mocks.ReplayAll();
+
+ var sectionResult = new MacrostabilityInwardsFailureMechanismSectionResult(new TestFailureMechanismSection())
+ {
+ StorageId = 1,
+ AssessmentLayerOne = true,
+ AssessmentLayerTwoA = (RoundedDouble) 0.4,
+ AssessmentLayerThree = (RoundedDouble) 4.4
+ };
+
+ var sectionResultEntity = new MacrostabilityInwardsSectionResultEntity
+ {
+ MacrostabilityInwardsSectionResultEntityId = sectionResult.StorageId,
+ LayerOne = Convert.ToByte(false),
+ LayerTwoA = 2.1m,
+ LayerThree = 1.1m,
+ };
+
+ ringtoetsEntities.MacrostabilityInwardsSectionResultEntities.Add(sectionResultEntity);
+
+ // Call
+ sectionResult.Update(new PersistenceRegistry(), ringtoetsEntities);
+
+ // Assert
+ Assert.AreEqual(Convert.ToByte(true), sectionResultEntity.LayerOne);
+ Assert.AreEqual(sectionResult.AssessmentLayerTwoA.Value.ToNullableDecimal(), sectionResultEntity.LayerTwoA);
+ Assert.AreEqual(sectionResult.AssessmentLayerThree.Value.ToNullableDecimal(), sectionResultEntity.LayerThree);
+
+ mocks.VerifyAll();
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/MacrostabilityInwardsFailureMechanismUpdateExtensionsTest.cs
===================================================================
diff -u
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/MacrostabilityInwardsFailureMechanismUpdateExtensionsTest.cs (revision 0)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/MacrostabilityInwardsFailureMechanismUpdateExtensionsTest.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,243 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Linq;
+
+using Application.Ringtoets.Storage.Create;
+using Application.Ringtoets.Storage.DbContext;
+using Application.Ringtoets.Storage.Exceptions;
+using Application.Ringtoets.Storage.TestUtil;
+using Application.Ringtoets.Storage.Update;
+using Core.Common.Base.Geometry;
+using NUnit.Framework;
+using Rhino.Mocks;
+using Ringtoets.Common.Data.FailureMechanism;
+using Ringtoets.Integration.Data.StandAlone;
+
+namespace Application.Ringtoets.Storage.Test.Update
+{
+ [TestFixture]
+ public class MacrostabilityInwardsFailureMechanismUpdateExtensionsTest
+ {
+ [Test]
+ public void Update_WithoutContext_ThrowsArgumentNullException()
+ {
+ // Setup
+ var failureMechanism = new MacrostabilityInwardsFailureMechanism();
+
+ // Call
+ TestDelegate test = () => failureMechanism.Update(new PersistenceRegistry(), null);
+
+ // Assert
+ var paramName = Assert.Throws(test).ParamName;
+ Assert.AreEqual("context", paramName);
+ }
+
+ [Test]
+ public void Update_WithoutPersistenceRegistry_ThrowsArgumentNullException()
+ {
+ // Setup
+ var failureMechanism = new MacrostabilityInwardsFailureMechanism();
+
+ // Call
+ TestDelegate test = () =>
+ {
+ using (var ringtoetsEntities = new RingtoetsEntities())
+ {
+ failureMechanism.Update(null, ringtoetsEntities);
+ }
+ };
+
+ // Assert
+ var paramName = Assert.Throws(test).ParamName;
+ Assert.AreEqual("registry", paramName);
+ }
+
+ [Test]
+ public void Update_ContextWithNoMacrostabilityInwardsFailureMechanism_ThrowsEntityNotFoundException()
+ {
+ // Setup
+ var failureMechanism = new MacrostabilityInwardsFailureMechanism();
+
+ // Call
+ TestDelegate test = () =>
+ {
+ using (var ringtoetsEntities = new RingtoetsEntities())
+ {
+ failureMechanism.Update(new PersistenceRegistry(), ringtoetsEntities);
+ }
+ };
+
+ // Assert
+ var expectedMessage = String.Format("Het object 'FailureMechanismEntity' met id '{0}' is niet gevonden.", 0);
+ EntityNotFoundException exception = Assert.Throws(test);
+ Assert.AreEqual(expectedMessage, exception.Message);
+ }
+
+ [Test]
+ public void Update_ContextWithNoMacrostabilityInwardsFailureMechanismWithId_ThrowsEntityNotFoundException()
+ {
+ // Setup
+ MockRepository mocks = new MockRepository();
+ var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks);
+
+ mocks.ReplayAll();
+
+ var storageId = 1;
+ var failureMechanism = new MacrostabilityInwardsFailureMechanism
+ {
+ StorageId = storageId
+ };
+
+ ringtoetsEntities.FailureMechanismEntities.Add(new FailureMechanismEntity
+ {
+ FailureMechanismEntityId = 2
+ });
+
+ // Call
+ TestDelegate test = () => failureMechanism.Update(new PersistenceRegistry(), ringtoetsEntities);
+
+ // Assert
+ var expectedMessage = String.Format("Het object 'FailureMechanismEntity' met id '{0}' is niet gevonden.", storageId);
+ EntityNotFoundException exception = Assert.Throws(test);
+ Assert.AreEqual(expectedMessage, exception.Message);
+
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void Update_ContextWithMacrostabilityInwardsFailureMechanism_PropertiesUpdated()
+ {
+ // Setup
+ MockRepository mocks = new MockRepository();
+ var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks);
+
+ mocks.ReplayAll();
+
+ var failureMechanism = new MacrostabilityInwardsFailureMechanism
+ {
+ StorageId = 1,
+ IsRelevant = true
+ };
+
+ var failureMechanismEntity = new FailureMechanismEntity
+ {
+ FailureMechanismEntityId = 1,
+ IsRelevant = Convert.ToByte(false)
+ };
+
+ ringtoetsEntities.FailureMechanismEntities.Add(failureMechanismEntity);
+
+ // Call
+ failureMechanism.Update(new PersistenceRegistry(), ringtoetsEntities);
+
+ // Assert
+ Assert.AreEqual(Convert.ToByte(true), failureMechanismEntity.IsRelevant);
+
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void Update_ContextWithNewFailureMechanismSections_FailureMechanismSectionsAdded()
+ {
+ // Setup
+ MockRepository mocks = new MockRepository();
+ var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks);
+
+ mocks.ReplayAll();
+
+ var failureMechanism = new MacrostabilityInwardsFailureMechanism
+ {
+ StorageId = 1
+ };
+ failureMechanism.AddSection(new FailureMechanismSection("", new[]
+ {
+ new Point2D(0, 0)
+ }));
+
+ var failureMechanismEntity = new FailureMechanismEntity
+ {
+ FailureMechanismEntityId = 1,
+ };
+
+ ringtoetsEntities.FailureMechanismEntities.Add(failureMechanismEntity);
+
+ // Call
+ failureMechanism.Update(new PersistenceRegistry(), ringtoetsEntities);
+
+ // Assert
+ Assert.AreEqual(1, failureMechanismEntity.FailureMechanismSectionEntities.Count);
+ Assert.AreEqual(1, failureMechanismEntity.FailureMechanismSectionEntities.SelectMany(fms => fms.MacrostabilityInwardsSectionResultEntities).Count());
+
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void Update_ContextWithUpdatedFailureMechanismSections_NoNewFailureMechanismSectionsAdded()
+ {
+ // Setup
+ MockRepository mocks = new MockRepository();
+ var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks);
+
+ mocks.ReplayAll();
+
+ var failureMechanism = new MacrostabilityInwardsFailureMechanism
+ {
+ StorageId = 1
+ };
+ var testName = "testName";
+ failureMechanism.AddSection(new FailureMechanismSection(testName, new[]
+ {
+ new Point2D(0, 0)
+ })
+ {
+ StorageId = 1
+ });
+
+ var failureMechanismSectionEntity = new FailureMechanismSectionEntity
+ {
+ FailureMechanismSectionEntityId = 1,
+ };
+ var failureMechanismEntity = new FailureMechanismEntity
+ {
+ FailureMechanismEntityId = 1,
+ FailureMechanismSectionEntities =
+ {
+ failureMechanismSectionEntity
+ }
+ };
+
+ ringtoetsEntities.FailureMechanismEntities.Add(failureMechanismEntity);
+ ringtoetsEntities.FailureMechanismSectionEntities.Add(failureMechanismSectionEntity);
+
+ // Call
+ failureMechanism.Update(new PersistenceRegistry(), ringtoetsEntities);
+
+ // Assert
+ Assert.AreEqual(1, failureMechanismEntity.FailureMechanismSectionEntities.Count);
+ Assert.AreEqual(1, failureMechanismEntity.FailureMechanismSectionEntities.SelectMany(fms => fms.MacrostabilityInwardsSectionResultEntities).Count());
+ Assert.AreEqual(testName, failureMechanismEntity.FailureMechanismSectionEntities.ElementAt(0).Name);
+
+ mocks.VerifyAll();
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/MacrostabilityOutwardsFailureMechanismSectionResultUpdateExtensionsTest.cs
===================================================================
diff -u
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/MacrostabilityOutwardsFailureMechanismSectionResultUpdateExtensionsTest.cs (revision 0)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/MacrostabilityOutwardsFailureMechanismSectionResultUpdateExtensionsTest.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,162 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using Application.Ringtoets.Storage.Create;
+using Application.Ringtoets.Storage.DbContext;
+using Application.Ringtoets.Storage.Exceptions;
+using Application.Ringtoets.Storage.TestUtil;
+using Application.Ringtoets.Storage.Update;
+using Core.Common.Base.Data;
+using NUnit.Framework;
+using Rhino.Mocks;
+using Ringtoets.Integration.Data.StandAlone.SectionResults;
+
+namespace Application.Ringtoets.Storage.Test.Update
+{
+ [TestFixture]
+ public class MacrostabilityOutwardsFailureMechanismSectionResultUpdateExtensionsTest
+ {
+ [Test]
+ public void Update_WithoutContext_ArgumentNullException()
+ {
+ // Setup
+ var sectionResult = new MacrostabilityOutwardsFailureMechanismSectionResult(new TestFailureMechanismSection());
+
+ // Call
+ TestDelegate test = () => sectionResult.Update(new PersistenceRegistry(), null);
+
+ // Assert
+ var paramName = Assert.Throws(test).ParamName;
+ Assert.AreEqual("context", paramName);
+ }
+
+ [Test]
+ public void Update_WithoutPersistenceRegistry_ArgumentNullException()
+ {
+ // Setup
+ var sectionResult = new MacrostabilityOutwardsFailureMechanismSectionResult(new TestFailureMechanismSection());
+
+ // Call
+ TestDelegate test = () =>
+ {
+ using (var ringtoetsEntities = new RingtoetsEntities())
+ {
+ sectionResult.Update(null, ringtoetsEntities);
+ }
+ };
+
+ // Assert
+ var paramName = Assert.Throws(test).ParamName;
+ Assert.AreEqual("registry", paramName);
+ }
+
+ [Test]
+ public void Update_ContextWithNoMacrostabilityOutwardsSectionResult_EntityNotFoundException()
+ {
+ // Setup
+ var sectionResult = new MacrostabilityOutwardsFailureMechanismSectionResult(new TestFailureMechanismSection());
+
+ // Call
+ TestDelegate test = () =>
+ {
+ using (var ringtoetsEntities = new RingtoetsEntities())
+ {
+ sectionResult.Update(new PersistenceRegistry(), ringtoetsEntities);
+ }
+ };
+
+ // Assert
+ var expectedMessage = String.Format("Het object 'MacrostabilityOutwardsSectionResultEntity' met id '{0}' is niet gevonden.", 0);
+ EntityNotFoundException exception = Assert.Throws(test);
+ Assert.AreEqual(expectedMessage, exception.Message);
+ }
+
+ [Test]
+ public void Update_ContextWithNoMacrostabilityOutwardsSectionResultWithId_EntityNotFoundException()
+ {
+ // Setup
+ MockRepository mocks = new MockRepository();
+ var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks);
+
+ mocks.ReplayAll();
+
+ var storageId = 1;
+ var sectionResult = new MacrostabilityOutwardsFailureMechanismSectionResult(new TestFailureMechanismSection())
+ {
+ StorageId = storageId
+ };
+
+ ringtoetsEntities.MacrostabilityOutwardsSectionResultEntities.Add(new MacrostabilityOutwardsSectionResultEntity
+ {
+ MacrostabilityOutwardsSectionResultEntityId = 2
+ });
+
+ // Call
+ TestDelegate test = () => sectionResult.Update(new PersistenceRegistry(), ringtoetsEntities);
+
+ // Assert
+ var expectedMessage = String.Format("Het object 'MacrostabilityOutwardsSectionResultEntity' met id '{0}' is niet gevonden.", storageId);
+ EntityNotFoundException exception = Assert.Throws(test);
+ Assert.AreEqual(expectedMessage, exception.Message);
+
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void Update_WithMacrostabilityOutwardsSectionResult_PropertiesUpdated()
+ {
+ // Setup
+ MockRepository mocks = new MockRepository();
+ var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks);
+
+ mocks.ReplayAll();
+
+ var sectionResult = new MacrostabilityOutwardsFailureMechanismSectionResult(new TestFailureMechanismSection())
+ {
+ StorageId = 1,
+ AssessmentLayerOne = true,
+ AssessmentLayerTwoA = (RoundedDouble) 0.4,
+ AssessmentLayerThree = (RoundedDouble) 4.4
+ };
+
+ var sectionResultEntity = new MacrostabilityOutwardsSectionResultEntity
+ {
+ MacrostabilityOutwardsSectionResultEntityId = sectionResult.StorageId,
+ LayerOne = Convert.ToByte(false),
+ LayerTwoA = 2.1m,
+ LayerThree = 1.1m,
+ };
+
+ ringtoetsEntities.MacrostabilityOutwardsSectionResultEntities.Add(sectionResultEntity);
+
+ // Call
+ sectionResult.Update(new PersistenceRegistry(), ringtoetsEntities);
+
+ // Assert
+ Assert.AreEqual(Convert.ToByte(true), sectionResultEntity.LayerOne);
+ Assert.AreEqual(sectionResult.AssessmentLayerTwoA.Value.ToNullableDecimal(), sectionResultEntity.LayerTwoA);
+ Assert.AreEqual(sectionResult.AssessmentLayerThree.Value.ToNullableDecimal(), sectionResultEntity.LayerThree);
+
+ mocks.VerifyAll();
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/MacrostabilityOutwardsFailureMechanismUpdateExtensionsTest.cs
===================================================================
diff -u
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/MacrostabilityOutwardsFailureMechanismUpdateExtensionsTest.cs (revision 0)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/MacrostabilityOutwardsFailureMechanismUpdateExtensionsTest.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,243 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Linq;
+
+using Application.Ringtoets.Storage.Create;
+using Application.Ringtoets.Storage.DbContext;
+using Application.Ringtoets.Storage.Exceptions;
+using Application.Ringtoets.Storage.TestUtil;
+using Application.Ringtoets.Storage.Update;
+using Core.Common.Base.Geometry;
+using NUnit.Framework;
+using Rhino.Mocks;
+using Ringtoets.Common.Data.FailureMechanism;
+using Ringtoets.Integration.Data.StandAlone;
+
+namespace Application.Ringtoets.Storage.Test.Update
+{
+ [TestFixture]
+ public class MacrostabilityOutwardsFailureMechanismUpdateExtensionsTest
+ {
+ [Test]
+ public void Update_WithoutContext_ThrowsArgumentNullException()
+ {
+ // Setup
+ var failureMechanism = new MacrostabilityOutwardsFailureMechanism();
+
+ // Call
+ TestDelegate test = () => failureMechanism.Update(new PersistenceRegistry(), null);
+
+ // Assert
+ var paramName = Assert.Throws(test).ParamName;
+ Assert.AreEqual("context", paramName);
+ }
+
+ [Test]
+ public void Update_WithoutPersistenceRegistry_ThrowsArgumentNullException()
+ {
+ // Setup
+ var failureMechanism = new MacrostabilityOutwardsFailureMechanism();
+
+ // Call
+ TestDelegate test = () =>
+ {
+ using (var ringtoetsEntities = new RingtoetsEntities())
+ {
+ failureMechanism.Update(null, ringtoetsEntities);
+ }
+ };
+
+ // Assert
+ var paramName = Assert.Throws(test).ParamName;
+ Assert.AreEqual("registry", paramName);
+ }
+
+ [Test]
+ public void Update_ContextWithNoMacrostabilityOutwardsFailureMechanism_ThrowsEntityNotFoundException()
+ {
+ // Setup
+ var failureMechanism = new MacrostabilityOutwardsFailureMechanism();
+
+ // Call
+ TestDelegate test = () =>
+ {
+ using (var ringtoetsEntities = new RingtoetsEntities())
+ {
+ failureMechanism.Update(new PersistenceRegistry(), ringtoetsEntities);
+ }
+ };
+
+ // Assert
+ var expectedMessage = String.Format("Het object 'FailureMechanismEntity' met id '{0}' is niet gevonden.", 0);
+ EntityNotFoundException exception = Assert.Throws(test);
+ Assert.AreEqual(expectedMessage, exception.Message);
+ }
+
+ [Test]
+ public void Update_ContextWithNoMacrostabilityOutwardsFailureMechanismWithId_ThrowsEntityNotFoundException()
+ {
+ // Setup
+ MockRepository mocks = new MockRepository();
+ var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks);
+
+ mocks.ReplayAll();
+
+ var storageId = 1;
+ var failureMechanism = new MacrostabilityOutwardsFailureMechanism
+ {
+ StorageId = storageId
+ };
+
+ ringtoetsEntities.FailureMechanismEntities.Add(new FailureMechanismEntity
+ {
+ FailureMechanismEntityId = 2
+ });
+
+ // Call
+ TestDelegate test = () => failureMechanism.Update(new PersistenceRegistry(), ringtoetsEntities);
+
+ // Assert
+ var expectedMessage = String.Format("Het object 'FailureMechanismEntity' met id '{0}' is niet gevonden.", storageId);
+ EntityNotFoundException exception = Assert.Throws(test);
+ Assert.AreEqual(expectedMessage, exception.Message);
+
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void Update_ContextWithMacrostabilityOutwardsFailureMechanism_PropertiesUpdated()
+ {
+ // Setup
+ MockRepository mocks = new MockRepository();
+ var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks);
+
+ mocks.ReplayAll();
+
+ var failureMechanism = new MacrostabilityOutwardsFailureMechanism
+ {
+ StorageId = 1,
+ IsRelevant = true
+ };
+
+ var failureMechanismEntity = new FailureMechanismEntity
+ {
+ FailureMechanismEntityId = 1,
+ IsRelevant = Convert.ToByte(false)
+ };
+
+ ringtoetsEntities.FailureMechanismEntities.Add(failureMechanismEntity);
+
+ // Call
+ failureMechanism.Update(new PersistenceRegistry(), ringtoetsEntities);
+
+ // Assert
+ Assert.AreEqual(Convert.ToByte(true), failureMechanismEntity.IsRelevant);
+
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void Update_ContextWithNewFailureMechanismSections_FailureMechanismSectionsAdded()
+ {
+ // Setup
+ MockRepository mocks = new MockRepository();
+ var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks);
+
+ mocks.ReplayAll();
+
+ var failureMechanism = new MacrostabilityOutwardsFailureMechanism
+ {
+ StorageId = 1
+ };
+ failureMechanism.AddSection(new FailureMechanismSection("", new[]
+ {
+ new Point2D(0, 0)
+ }));
+
+ var failureMechanismEntity = new FailureMechanismEntity
+ {
+ FailureMechanismEntityId = 1,
+ };
+
+ ringtoetsEntities.FailureMechanismEntities.Add(failureMechanismEntity);
+
+ // Call
+ failureMechanism.Update(new PersistenceRegistry(), ringtoetsEntities);
+
+ // Assert
+ Assert.AreEqual(1, failureMechanismEntity.FailureMechanismSectionEntities.Count);
+ Assert.AreEqual(1, failureMechanismEntity.FailureMechanismSectionEntities.SelectMany(fms => fms.MacrostabilityOutwardsSectionResultEntities).Count());
+
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void Update_ContextWithUpdatedFailureMechanismSections_NoNewFailureMechanismSectionsAdded()
+ {
+ // Setup
+ MockRepository mocks = new MockRepository();
+ var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks);
+
+ mocks.ReplayAll();
+
+ var failureMechanism = new MacrostabilityOutwardsFailureMechanism
+ {
+ StorageId = 1
+ };
+ var testName = "testName";
+ failureMechanism.AddSection(new FailureMechanismSection(testName, new[]
+ {
+ new Point2D(0, 0)
+ })
+ {
+ StorageId = 1
+ });
+
+ var failureMechanismSectionEntity = new FailureMechanismSectionEntity
+ {
+ FailureMechanismSectionEntityId = 1,
+ };
+ var failureMechanismEntity = new FailureMechanismEntity
+ {
+ FailureMechanismEntityId = 1,
+ FailureMechanismSectionEntities =
+ {
+ failureMechanismSectionEntity
+ }
+ };
+
+ ringtoetsEntities.FailureMechanismEntities.Add(failureMechanismEntity);
+ ringtoetsEntities.FailureMechanismSectionEntities.Add(failureMechanismSectionEntity);
+
+ // Call
+ failureMechanism.Update(new PersistenceRegistry(), ringtoetsEntities);
+
+ // Assert
+ Assert.AreEqual(1, failureMechanismEntity.FailureMechanismSectionEntities.Count);
+ Assert.AreEqual(1, failureMechanismEntity.FailureMechanismSectionEntities.SelectMany(fms => fms.MacrostabilityOutwardsSectionResultEntities).Count());
+ Assert.AreEqual(testName, failureMechanismEntity.FailureMechanismSectionEntities.ElementAt(0).Name);
+
+ mocks.VerifyAll();
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/WaveImpactAsphaltCoverFailureMechanismSectionResultUpdateExtensionsTest.cs
===================================================================
diff -u
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/WaveImpactAsphaltCoverFailureMechanismSectionResultUpdateExtensionsTest.cs (revision 0)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/WaveImpactAsphaltCoverFailureMechanismSectionResultUpdateExtensionsTest.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,162 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using Application.Ringtoets.Storage.Create;
+using Application.Ringtoets.Storage.DbContext;
+using Application.Ringtoets.Storage.Exceptions;
+using Application.Ringtoets.Storage.TestUtil;
+using Application.Ringtoets.Storage.Update;
+using Core.Common.Base.Data;
+using NUnit.Framework;
+using Rhino.Mocks;
+using Ringtoets.Integration.Data.StandAlone.SectionResults;
+
+namespace Application.Ringtoets.Storage.Test.Update
+{
+ [TestFixture]
+ public class WaveImpactAsphaltCoverFailureMechanismSectionResultUpdateExtensionsTest
+ {
+ [Test]
+ public void Update_WithoutContext_ArgumentNullException()
+ {
+ // Setup
+ var sectionResult = new WaveImpactAsphaltCoverFailureMechanismSectionResult(new TestFailureMechanismSection());
+
+ // Call
+ TestDelegate test = () => sectionResult.Update(new PersistenceRegistry(), null);
+
+ // Assert
+ var paramName = Assert.Throws(test).ParamName;
+ Assert.AreEqual("context", paramName);
+ }
+
+ [Test]
+ public void Update_WithoutPersistenceRegistry_ArgumentNullException()
+ {
+ // Setup
+ var sectionResult = new WaveImpactAsphaltCoverFailureMechanismSectionResult(new TestFailureMechanismSection());
+
+ // Call
+ TestDelegate test = () =>
+ {
+ using (var ringtoetsEntities = new RingtoetsEntities())
+ {
+ sectionResult.Update(null, ringtoetsEntities);
+ }
+ };
+
+ // Assert
+ var paramName = Assert.Throws(test).ParamName;
+ Assert.AreEqual("registry", paramName);
+ }
+
+ [Test]
+ public void Update_ContextWithNoWaveImpactAsphaltCoverSectionResult_EntityNotFoundException()
+ {
+ // Setup
+ var sectionResult = new WaveImpactAsphaltCoverFailureMechanismSectionResult(new TestFailureMechanismSection());
+
+ // Call
+ TestDelegate test = () =>
+ {
+ using (var ringtoetsEntities = new RingtoetsEntities())
+ {
+ sectionResult.Update(new PersistenceRegistry(), ringtoetsEntities);
+ }
+ };
+
+ // Assert
+ var expectedMessage = String.Format("Het object 'WaveImpactAsphaltCoverSectionResultEntity' met id '{0}' is niet gevonden.", 0);
+ EntityNotFoundException exception = Assert.Throws(test);
+ Assert.AreEqual(expectedMessage, exception.Message);
+ }
+
+ [Test]
+ public void Update_ContextWithNoWaveImpactAsphaltCoverSectionResultWithId_EntityNotFoundException()
+ {
+ // Setup
+ MockRepository mocks = new MockRepository();
+ var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks);
+
+ mocks.ReplayAll();
+
+ var storageId = 1;
+ var sectionResult = new WaveImpactAsphaltCoverFailureMechanismSectionResult(new TestFailureMechanismSection())
+ {
+ StorageId = storageId
+ };
+
+ ringtoetsEntities.WaveImpactAsphaltCoverSectionResultEntities.Add(new WaveImpactAsphaltCoverSectionResultEntity
+ {
+ WaveImpactAsphaltCoverSectionResultEntityId = 2
+ });
+
+ // Call
+ TestDelegate test = () => sectionResult.Update(new PersistenceRegistry(), ringtoetsEntities);
+
+ // Assert
+ var expectedMessage = String.Format("Het object 'WaveImpactAsphaltCoverSectionResultEntity' met id '{0}' is niet gevonden.", storageId);
+ EntityNotFoundException exception = Assert.Throws(test);
+ Assert.AreEqual(expectedMessage, exception.Message);
+
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void Update_WithWaveImpactAsphaltCoverSectionResult_PropertiesUpdated()
+ {
+ // Setup
+ MockRepository mocks = new MockRepository();
+ var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks);
+
+ mocks.ReplayAll();
+
+ var sectionResult = new WaveImpactAsphaltCoverFailureMechanismSectionResult(new TestFailureMechanismSection())
+ {
+ StorageId = 1,
+ AssessmentLayerOne = true,
+ AssessmentLayerTwoA = (RoundedDouble) 0.4,
+ AssessmentLayerThree = (RoundedDouble) 4.4
+ };
+
+ var sectionResultEntity = new WaveImpactAsphaltCoverSectionResultEntity
+ {
+ WaveImpactAsphaltCoverSectionResultEntityId = sectionResult.StorageId,
+ LayerOne = Convert.ToByte(false),
+ LayerTwoA = 2.1m,
+ LayerThree = 1.1m,
+ };
+
+ ringtoetsEntities.WaveImpactAsphaltCoverSectionResultEntities.Add(sectionResultEntity);
+
+ // Call
+ sectionResult.Update(new PersistenceRegistry(), ringtoetsEntities);
+
+ // Assert
+ Assert.AreEqual(Convert.ToByte(true), sectionResultEntity.LayerOne);
+ Assert.AreEqual(sectionResult.AssessmentLayerTwoA.Value.ToNullableDecimal(), sectionResultEntity.LayerTwoA);
+ Assert.AreEqual(sectionResult.AssessmentLayerThree.Value.ToNullableDecimal(), sectionResultEntity.LayerThree);
+
+ mocks.VerifyAll();
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/WaveImpactAsphaltCoverFailureMechanismUpdateExtensionsTest.cs
===================================================================
diff -u
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/WaveImpactAsphaltCoverFailureMechanismUpdateExtensionsTest.cs (revision 0)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/WaveImpactAsphaltCoverFailureMechanismUpdateExtensionsTest.cs (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -0,0 +1,243 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Linq;
+
+using Application.Ringtoets.Storage.Create;
+using Application.Ringtoets.Storage.DbContext;
+using Application.Ringtoets.Storage.Exceptions;
+using Application.Ringtoets.Storage.TestUtil;
+using Application.Ringtoets.Storage.Update;
+using Core.Common.Base.Geometry;
+using NUnit.Framework;
+using Rhino.Mocks;
+using Ringtoets.Common.Data.FailureMechanism;
+using Ringtoets.Integration.Data.StandAlone;
+
+namespace Application.Ringtoets.Storage.Test.Update
+{
+ [TestFixture]
+ public class WaveImpactAsphaltCoverFailureMechanismUpdateExtensionsTest
+ {
+ [Test]
+ public void Update_WithoutContext_ThrowsArgumentNullException()
+ {
+ // Setup
+ var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism();
+
+ // Call
+ TestDelegate test = () => failureMechanism.Update(new PersistenceRegistry(), null);
+
+ // Assert
+ var paramName = Assert.Throws(test).ParamName;
+ Assert.AreEqual("context", paramName);
+ }
+
+ [Test]
+ public void Update_WithoutPersistenceRegistry_ThrowsArgumentNullException()
+ {
+ // Setup
+ var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism();
+
+ // Call
+ TestDelegate test = () =>
+ {
+ using (var ringtoetsEntities = new RingtoetsEntities())
+ {
+ failureMechanism.Update(null, ringtoetsEntities);
+ }
+ };
+
+ // Assert
+ var paramName = Assert.Throws(test).ParamName;
+ Assert.AreEqual("registry", paramName);
+ }
+
+ [Test]
+ public void Update_ContextWithNoWaveImpactAsphaltCoverFailureMechanism_ThrowsEntityNotFoundException()
+ {
+ // Setup
+ var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism();
+
+ // Call
+ TestDelegate test = () =>
+ {
+ using (var ringtoetsEntities = new RingtoetsEntities())
+ {
+ failureMechanism.Update(new PersistenceRegistry(), ringtoetsEntities);
+ }
+ };
+
+ // Assert
+ var expectedMessage = String.Format("Het object 'FailureMechanismEntity' met id '{0}' is niet gevonden.", 0);
+ EntityNotFoundException exception = Assert.Throws(test);
+ Assert.AreEqual(expectedMessage, exception.Message);
+ }
+
+ [Test]
+ public void Update_ContextWithNoWaveImpactAsphaltCoverFailureMechanismWithId_ThrowsEntityNotFoundException()
+ {
+ // Setup
+ MockRepository mocks = new MockRepository();
+ var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks);
+
+ mocks.ReplayAll();
+
+ var storageId = 1;
+ var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism
+ {
+ StorageId = storageId
+ };
+
+ ringtoetsEntities.FailureMechanismEntities.Add(new FailureMechanismEntity
+ {
+ FailureMechanismEntityId = 2
+ });
+
+ // Call
+ TestDelegate test = () => failureMechanism.Update(new PersistenceRegistry(), ringtoetsEntities);
+
+ // Assert
+ var expectedMessage = String.Format("Het object 'FailureMechanismEntity' met id '{0}' is niet gevonden.", storageId);
+ EntityNotFoundException exception = Assert.Throws(test);
+ Assert.AreEqual(expectedMessage, exception.Message);
+
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void Update_ContextWithWaveImpactAsphaltCoverFailureMechanism_PropertiesUpdated()
+ {
+ // Setup
+ MockRepository mocks = new MockRepository();
+ var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks);
+
+ mocks.ReplayAll();
+
+ var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism
+ {
+ StorageId = 1,
+ IsRelevant = true
+ };
+
+ var failureMechanismEntity = new FailureMechanismEntity
+ {
+ FailureMechanismEntityId = 1,
+ IsRelevant = Convert.ToByte(false)
+ };
+
+ ringtoetsEntities.FailureMechanismEntities.Add(failureMechanismEntity);
+
+ // Call
+ failureMechanism.Update(new PersistenceRegistry(), ringtoetsEntities);
+
+ // Assert
+ Assert.AreEqual(Convert.ToByte(true), failureMechanismEntity.IsRelevant);
+
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void Update_ContextWithNewFailureMechanismSections_FailureMechanismSectionsAdded()
+ {
+ // Setup
+ MockRepository mocks = new MockRepository();
+ var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks);
+
+ mocks.ReplayAll();
+
+ var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism
+ {
+ StorageId = 1
+ };
+ failureMechanism.AddSection(new FailureMechanismSection("", new[]
+ {
+ new Point2D(0, 0)
+ }));
+
+ var failureMechanismEntity = new FailureMechanismEntity
+ {
+ FailureMechanismEntityId = 1,
+ };
+
+ ringtoetsEntities.FailureMechanismEntities.Add(failureMechanismEntity);
+
+ // Call
+ failureMechanism.Update(new PersistenceRegistry(), ringtoetsEntities);
+
+ // Assert
+ Assert.AreEqual(1, failureMechanismEntity.FailureMechanismSectionEntities.Count);
+ Assert.AreEqual(1, failureMechanismEntity.FailureMechanismSectionEntities.SelectMany(fms => fms.WaveImpactAsphaltCoverSectionResultEntities).Count());
+
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void Update_ContextWithUpdatedFailureMechanismSections_NoNewFailureMechanismSectionsAdded()
+ {
+ // Setup
+ MockRepository mocks = new MockRepository();
+ var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks);
+
+ mocks.ReplayAll();
+
+ var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism
+ {
+ StorageId = 1
+ };
+ var testName = "testName";
+ failureMechanism.AddSection(new FailureMechanismSection(testName, new[]
+ {
+ new Point2D(0, 0)
+ })
+ {
+ StorageId = 1
+ });
+
+ var failureMechanismSectionEntity = new FailureMechanismSectionEntity
+ {
+ FailureMechanismSectionEntityId = 1,
+ };
+ var failureMechanismEntity = new FailureMechanismEntity
+ {
+ FailureMechanismEntityId = 1,
+ FailureMechanismSectionEntities =
+ {
+ failureMechanismSectionEntity
+ }
+ };
+
+ ringtoetsEntities.FailureMechanismEntities.Add(failureMechanismEntity);
+ ringtoetsEntities.FailureMechanismSectionEntities.Add(failureMechanismSectionEntity);
+
+ // Call
+ failureMechanism.Update(new PersistenceRegistry(), ringtoetsEntities);
+
+ // Assert
+ Assert.AreEqual(1, failureMechanismEntity.FailureMechanismSectionEntities.Count);
+ Assert.AreEqual(1, failureMechanismEntity.FailureMechanismSectionEntities.SelectMany(fms => fms.WaveImpactAsphaltCoverSectionResultEntities).Count());
+ Assert.AreEqual(testName, failureMechanismEntity.FailureMechanismSectionEntities.ElementAt(0).Name);
+
+ mocks.VerifyAll();
+ }
+ }
+}
\ No newline at end of file
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsEntitiesHelper.cs
===================================================================
diff -u -r1cd3618f5f8916ef15992d69ec3b447b311c2f72 -rb4816e19c7167c26fad825b88dd72b59dcedc13a
--- Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsEntitiesHelper.cs (.../RingtoetsEntitiesHelper.cs) (revision 1cd3618f5f8916ef15992d69ec3b447b311c2f72)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsEntitiesHelper.cs (.../RingtoetsEntitiesHelper.cs) (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -48,6 +48,9 @@
DbSet technicalInnovationSectionResultsSet = CreateEmptyTestDbSet();
DbSet waterPressureAsphaltCoverSectionResultsSet = CreateEmptyTestDbSet();
DbSet closingStructureSectionResultsSet = CreateEmptyTestDbSet();
+ DbSet macrostabilityInwardsSectionResultsSet = CreateEmptyTestDbSet();
+ DbSet macrostabilityOutwardsSectionResultsSet = CreateEmptyTestDbSet();
+ DbSet waveImpactAsphaltCoverSectionResultsSet = CreateEmptyTestDbSet();
DbSet assessmentSectionsSet = CreateEmptyTestDbSet();
DbSet referenceLinesSet = CreateEmptyTestDbSet();
DbSet calculationGroupsSet = CreateEmptyTestDbSet();
@@ -77,6 +80,9 @@
ringtoetsEntities.Stub(r => r.TechnicalInnovationSectionResultEntities).Return(technicalInnovationSectionResultsSet);
ringtoetsEntities.Stub(r => r.WaterPressureAsphaltCoverSectionResultEntities).Return(waterPressureAsphaltCoverSectionResultsSet);
ringtoetsEntities.Stub(r => r.ClosingStructureSectionResultEntities).Return(closingStructureSectionResultsSet);
+ ringtoetsEntities.Stub(r => r.MacrostabilityInwardsSectionResultEntities).Return(macrostabilityInwardsSectionResultsSet);
+ ringtoetsEntities.Stub(r => r.MacrostabilityOutwardsSectionResultEntities).Return(macrostabilityOutwardsSectionResultsSet);
+ ringtoetsEntities.Stub(r => r.WaveImpactAsphaltCoverSectionResultEntities).Return(waveImpactAsphaltCoverSectionResultsSet);
ringtoetsEntities.Stub(r => r.AssessmentSectionEntities).Return(assessmentSectionsSet);
ringtoetsEntities.Stub(r => r.ReferenceLinePointEntities).Return(referenceLinesSet);
ringtoetsEntities.Stub(r => r.CalculationGroupEntities).Return(calculationGroupsSet);
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsProjectHelper.cs
===================================================================
diff -u -r1cd3618f5f8916ef15992d69ec3b447b311c2f72 -rb4816e19c7167c26fad825b88dd72b59dcedc13a
--- Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsProjectHelper.cs (.../RingtoetsProjectHelper.cs) (revision 1cd3618f5f8916ef15992d69ec3b447b311c2f72)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsProjectHelper.cs (.../RingtoetsProjectHelper.cs) (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -217,10 +217,13 @@
AddSections(assessmentSection.GrassCoverErosionInwards);
SetSectionResults(assessmentSection.GrassCoverErosionInwards.SectionResults);
AddSections(assessmentSection.MacrostabilityInwards);
+ SetSectionResults(assessmentSection.MacrostabilityInwards.SectionResults);
AddSections(assessmentSection.MacrostabilityOutwards);
+ SetSectionResults(assessmentSection.MacrostabilityOutwards.SectionResults);
AddSections(assessmentSection.Microstability);
AddSections(assessmentSection.StabilityStoneCover);
AddSections(assessmentSection.WaveImpactAsphaltCover);
+ SetSectionResults(assessmentSection.WaveImpactAsphaltCover.SectionResults);
AddSections(assessmentSection.WaterPressureAsphaltCover);
SetSectionResults(assessmentSection.WaterPressureAsphaltCover.SectionResults);
AddSections(assessmentSection.GrassCoverErosionOutwards);
@@ -312,6 +315,39 @@
}
}
+ private static void SetSectionResults(IEnumerable sectionResults)
+ {
+ var random = new Random(21);
+ foreach (var sectionResult in sectionResults)
+ {
+ sectionResult.AssessmentLayerOne = Convert.ToBoolean(random.Next(0, 2));
+ sectionResult.AssessmentLayerTwoA = (RoundedDouble)random.NextDouble();
+ sectionResult.AssessmentLayerThree = (RoundedDouble)random.NextDouble();
+ }
+ }
+
+ private static void SetSectionResults(IEnumerable sectionResults)
+ {
+ var random = new Random(21);
+ foreach (var sectionResult in sectionResults)
+ {
+ sectionResult.AssessmentLayerOne = Convert.ToBoolean(random.Next(0, 2));
+ sectionResult.AssessmentLayerTwoA = (RoundedDouble)random.NextDouble();
+ sectionResult.AssessmentLayerThree = (RoundedDouble)random.NextDouble();
+ }
+ }
+
+ private static void SetSectionResults(IEnumerable sectionResults)
+ {
+ var random = new Random(21);
+ foreach (var sectionResult in sectionResults)
+ {
+ sectionResult.AssessmentLayerOne = Convert.ToBoolean(random.Next(0, 2));
+ sectionResult.AssessmentLayerTwoA = (RoundedDouble)random.NextDouble();
+ sectionResult.AssessmentLayerThree = (RoundedDouble)random.NextDouble();
+ }
+ }
+
private static void AddSections(IFailureMechanism failureMechanism)
{
failureMechanism.AddSection(new FailureMechanismSection("section 1", new[]
Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/SectionResults/MacrostabilityInwardsFailureMechanismSectionResult.cs
===================================================================
diff -u -rf72f906a6875250a4378945ce814997ff8aaf1a7 -rb4816e19c7167c26fad825b88dd72b59dcedc13a
--- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/SectionResults/MacrostabilityInwardsFailureMechanismSectionResult.cs (.../MacrostabilityInwardsFailureMechanismSectionResult.cs) (revision f72f906a6875250a4378945ce814997ff8aaf1a7)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/SectionResults/MacrostabilityInwardsFailureMechanismSectionResult.cs (.../MacrostabilityInwardsFailureMechanismSectionResult.cs) (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -21,6 +21,7 @@
using System;
using Core.Common.Base.Data;
+using Core.Common.Base.Storage;
using Ringtoets.Common.Data.FailureMechanism;
using Ringtoets.Common.Data.Properties;
@@ -30,7 +31,7 @@
/// This class holds information about the result of a calculation on section level for the
/// Macrostability Inwards failure mechanism.
///
- public class MacrostabilityInwardsFailureMechanismSectionResult : FailureMechanismSectionResult
+ public class MacrostabilityInwardsFailureMechanismSectionResult : FailureMechanismSectionResult, IStorable
{
private RoundedDouble assessmentLayerTwoA;
@@ -75,5 +76,7 @@
/// Gets or sets the value of the tailored assessment of safety.
///
public RoundedDouble AssessmentLayerThree { get; set; }
+
+ public long StorageId { get; set; }
}
}
Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/SectionResults/MacrostabilityOutwardsFailureMechanismSectionResult.cs
===================================================================
diff -u -rf72f906a6875250a4378945ce814997ff8aaf1a7 -rb4816e19c7167c26fad825b88dd72b59dcedc13a
--- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/SectionResults/MacrostabilityOutwardsFailureMechanismSectionResult.cs (.../MacrostabilityOutwardsFailureMechanismSectionResult.cs) (revision f72f906a6875250a4378945ce814997ff8aaf1a7)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/SectionResults/MacrostabilityOutwardsFailureMechanismSectionResult.cs (.../MacrostabilityOutwardsFailureMechanismSectionResult.cs) (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -21,6 +21,7 @@
using System;
using Core.Common.Base.Data;
+using Core.Common.Base.Storage;
using Ringtoets.Common.Data.FailureMechanism;
using Ringtoets.Common.Data.Properties;
@@ -30,7 +31,7 @@
/// This class holds information about the result of a calculation on section level for the
/// Macrostability Outwards failure mechanism.
///
- public class MacrostabilityOutwardsFailureMechanismSectionResult : FailureMechanismSectionResult
+ public class MacrostabilityOutwardsFailureMechanismSectionResult : FailureMechanismSectionResult, IStorable
{
private RoundedDouble assessmentLayerTwoA;
@@ -75,5 +76,7 @@
/// Gets or sets the value of the tailored assessment of safety.
///
public RoundedDouble AssessmentLayerThree { get; set; }
+
+ public long StorageId { get; set; }
}
}
Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/SectionResults/WaveImpactAsphaltCoverFailureMechanismSectionResult.cs
===================================================================
diff -u -rf72f906a6875250a4378945ce814997ff8aaf1a7 -rb4816e19c7167c26fad825b88dd72b59dcedc13a
--- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/SectionResults/WaveImpactAsphaltCoverFailureMechanismSectionResult.cs (.../WaveImpactAsphaltCoverFailureMechanismSectionResult.cs) (revision f72f906a6875250a4378945ce814997ff8aaf1a7)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/SectionResults/WaveImpactAsphaltCoverFailureMechanismSectionResult.cs (.../WaveImpactAsphaltCoverFailureMechanismSectionResult.cs) (revision b4816e19c7167c26fad825b88dd72b59dcedc13a)
@@ -21,6 +21,7 @@
using System;
using Core.Common.Base.Data;
+using Core.Common.Base.Storage;
using Ringtoets.Common.Data.FailureMechanism;
namespace Ringtoets.Integration.Data.StandAlone.SectionResults
@@ -29,7 +30,7 @@
/// This class holds information about the result of a calculation on section level for the
/// Wave Impact on Asphalt failure mechanism.
///
- public class WaveImpactAsphaltCoverFailureMechanismSectionResult : FailureMechanismSectionResult
+ public class WaveImpactAsphaltCoverFailureMechanismSectionResult : FailureMechanismSectionResult, IStorable
{
///
/// Creates a new instance of .
@@ -53,5 +54,7 @@
/// Gets or sets the value of the tailored assessment of safety.
///
public RoundedDouble AssessmentLayerThree { get; set; }
+
+ public long StorageId { get; set; }
}
}