Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/GrassCoverErosionOutwards/GrassCoverErosionOutwardsWaveConditionsCalculationCreateExtensions.cs =================================================================== diff -u -r5cc8a49cc445a67f425ced8216c772b9170ea517 -r3d99e0cb89356292c191806d05763b8e2d869d34 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/GrassCoverErosionOutwards/GrassCoverErosionOutwardsWaveConditionsCalculationCreateExtensions.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationCreateExtensions.cs) (revision 5cc8a49cc445a67f425ced8216c772b9170ea517) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/GrassCoverErosionOutwards/GrassCoverErosionOutwardsWaveConditionsCalculationCreateExtensions.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationCreateExtensions.cs) (revision 3d99e0cb89356292c191806d05763b8e2d869d34) @@ -23,6 +23,7 @@ using Application.Ringtoets.Storage.DbContext; using Ringtoets.GrassCoverErosionOutwards.Data; using Ringtoets.HydraRing.Data; +using Ringtoets.Revetment.Data; namespace Application.Ringtoets.Storage.Create.GrassCoverErosionOutwards { @@ -41,8 +42,8 @@ /// The index at which resides within its parent. /// A new . /// Thrown when is null. - internal static GrassCoverErosionOutwardsWaveConditionsCalculationEntity Create(this GrassCoverErosionOutwardsWaveConditionsCalculation calculation, - PersistenceRegistry registry, int order) + internal static GrassCoverErosionOutwardsWaveConditionsCalculationEntity Create(this GrassCoverErosionOutwardsWaveConditionsCalculation calculation, + PersistenceRegistry registry, int order) { if (registry == null) { @@ -56,7 +57,7 @@ Comments = calculation.Comments.DeepClone(), Orientation = calculation.InputParameters.Orientation, UseBreakWater = Convert.ToByte(calculation.InputParameters.UseBreakWater), - BreakWaterType = (byte)calculation.InputParameters.BreakWater.Type, + BreakWaterType = (byte) calculation.InputParameters.BreakWater.Type, BreakWaterHeight = calculation.InputParameters.BreakWater.Height, UseForeshore = Convert.ToByte(calculation.InputParameters.UseForeshore), UpperBoundaryRevetment = calculation.InputParameters.UpperBoundaryRevetment, @@ -75,7 +76,23 @@ { entity.ForeshoreProfileEntity = calculation.InputParameters.ForeshoreProfile.Create(registry, 0); } + + if (calculation.HasOutput) + { + AddEntityForStabilityStoneCoverWaveConditionsOutput(calculation.Output, registry, entity); + } + return entity; } + + private static void AddEntityForStabilityStoneCoverWaveConditionsOutput(GrassCoverErosionOutwardsWaveConditionsOutput outputs, + PersistenceRegistry registry, + GrassCoverErosionOutwardsWaveConditionsCalculationEntity entity) + { + foreach (WaveConditionsOutput output in outputs.Items) + { + entity.GrassCoverErosionOutwardsWaveConditionsOutputEntities.Add(output.CreateGrassCoverErosionOutwardsWaveConditionsOutputEntity(registry)); + } + } } } \ No newline at end of file Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/StabilityStoneCover/StabilityStoneCoverWaveConditionsCalculationCreateExtensions.cs =================================================================== diff -u -rcd386b0b37f478679e5d5566276150e30b4118de -r3d99e0cb89356292c191806d05763b8e2d869d34 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/StabilityStoneCover/StabilityStoneCoverWaveConditionsCalculationCreateExtensions.cs (.../StabilityStoneCoverWaveConditionsCalculationCreateExtensions.cs) (revision cd386b0b37f478679e5d5566276150e30b4118de) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/StabilityStoneCover/StabilityStoneCoverWaveConditionsCalculationCreateExtensions.cs (.../StabilityStoneCoverWaveConditionsCalculationCreateExtensions.cs) (revision 3d99e0cb89356292c191806d05763b8e2d869d34) @@ -88,11 +88,13 @@ { foreach (var output in stabilityStoneCoverWaveConditionsOutputs.BlocksOutput) { - entity.StabilityStoneCoverWaveConditionsOutputEntities.Add(output.CreateStabilityStoneCoverWaveConditionsOutput(WaveConditionsOutputType.Blocks, registry)); + entity.StabilityStoneCoverWaveConditionsOutputEntities.Add( + output.CreateStabilityStoneCoverWaveConditionsOutputEntity(WaveConditionsOutputType.Blocks, registry)); } foreach (var output in stabilityStoneCoverWaveConditionsOutputs.ColumnsOutput) { - entity.StabilityStoneCoverWaveConditionsOutputEntities.Add(output.CreateStabilityStoneCoverWaveConditionsOutput(WaveConditionsOutputType.Columns, registry)); + entity.StabilityStoneCoverWaveConditionsOutputEntities.Add( + output.CreateStabilityStoneCoverWaveConditionsOutputEntity(WaveConditionsOutputType.Columns, registry)); } } } Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/WaveConditionsOutputCreateExtensions.cs =================================================================== diff -u -rb0f517aa5c87ef9036f146a5181a88508b135c23 -r3d99e0cb89356292c191806d05763b8e2d869d34 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/WaveConditionsOutputCreateExtensions.cs (.../WaveConditionsOutputCreateExtensions.cs) (revision b0f517aa5c87ef9036f146a5181a88508b135c23) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/WaveConditionsOutputCreateExtensions.cs (.../WaveConditionsOutputCreateExtensions.cs) (revision 3d99e0cb89356292c191806d05763b8e2d869d34) @@ -41,7 +41,7 @@ /// The object keeping track of create operations. /// A new . /// Thrown when is null. - internal static GrassCoverErosionOutwardsWaveConditionsOutputEntity CreateGrassCoverErosionOutwardsWaveConditionsOutput( + internal static GrassCoverErosionOutwardsWaveConditionsOutputEntity CreateGrassCoverErosionOutwardsWaveConditionsOutputEntity( this WaveConditionsOutput output, PersistenceRegistry registry) { if (registry == null) @@ -68,7 +68,7 @@ /// The object keeping track of create operations. /// A new . /// Thrown when is null. - internal static StabilityStoneCoverWaveConditionsOutputEntity CreateStabilityStoneCoverWaveConditionsOutput( + internal static StabilityStoneCoverWaveConditionsOutputEntity CreateStabilityStoneCoverWaveConditionsOutputEntity( this WaveConditionsOutput output, WaveConditionsOutputType type, PersistenceRegistry registry) { if (registry == null) Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Read/GrassCoverErosionOutwards/GrassCoverErosionOutwardsWaveConditionsCalculationEntityReadExtensions.cs =================================================================== diff -u -rcd386b0b37f478679e5d5566276150e30b4118de -r3d99e0cb89356292c191806d05763b8e2d869d34 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Read/GrassCoverErosionOutwards/GrassCoverErosionOutwardsWaveConditionsCalculationEntityReadExtensions.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationEntityReadExtensions.cs) (revision cd386b0b37f478679e5d5566276150e30b4118de) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Read/GrassCoverErosionOutwards/GrassCoverErosionOutwardsWaveConditionsCalculationEntityReadExtensions.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationEntityReadExtensions.cs) (revision 3d99e0cb89356292c191806d05763b8e2d869d34) @@ -20,6 +20,7 @@ // All rights reserved. using System; +using System.Linq; using Application.Ringtoets.Storage.DbContext; using Core.Common.Base.Data; using Ringtoets.Common.Data.DikeProfiles; @@ -75,9 +76,23 @@ } }; + ReadCalculationOutputs(entity, calculation); + return calculation; } + private static void ReadCalculationOutputs(GrassCoverErosionOutwardsWaveConditionsCalculationEntity entity, + GrassCoverErosionOutwardsWaveConditionsCalculation calculation) + { + if (!entity.GrassCoverErosionOutwardsWaveConditionsOutputEntities.Any()) + { + return; + } + + var waveConditionsOutputs = entity.GrassCoverErosionOutwardsWaveConditionsOutputEntities.Select(e => e.Read()).ToList(); + calculation.Output = new GrassCoverErosionOutwardsWaveConditionsOutput(waveConditionsOutputs); + } + private static ForeshoreProfile GetDikeProfileValue(ForeshoreProfileEntity foreshoreProfileEntity, ReadConversionCollector collector) { if (foreshoreProfileEntity != null) Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/GrassCoverErosionOutwards/GrassCoverErosionOutwardsWaveConditionsCalculationCreateExtensionsTest.cs =================================================================== diff -u -r5cc8a49cc445a67f425ced8216c772b9170ea517 -r3d99e0cb89356292c191806d05763b8e2d869d34 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/GrassCoverErosionOutwards/GrassCoverErosionOutwardsWaveConditionsCalculationCreateExtensionsTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationCreateExtensionsTest.cs) (revision 5cc8a49cc445a67f425ced8216c772b9170ea517) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/GrassCoverErosionOutwards/GrassCoverErosionOutwardsWaveConditionsCalculationCreateExtensionsTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationCreateExtensionsTest.cs) (revision 3d99e0cb89356292c191806d05763b8e2d869d34) @@ -125,6 +125,7 @@ Assert.AreEqual(order, entity.Order); Assert.AreEqual(0, entity.GrassCoverErosionOutwardsWaveConditionsCalculationEntityId); Assert.IsNull(entity.CalculationGroupEntity); + Assert.AreEqual(0, entity.GrassCoverErosionOutwardsWaveConditionsOutputEntities.Count); Assert.IsNull(entity.ForeshoreProfileEntity); Assert.IsNull(entity.GrassCoverErosionOutwardsHydraulicLocationEntity); } @@ -203,5 +204,25 @@ // Assert Assert.IsNotNull(entity.ForeshoreProfileEntity); } + + [Test] + public void Create_HasCalculationOutput_EntityHasCalculationOutputEntity() + { + // Setup + var registry = new PersistenceRegistry(); + var calculation = new GrassCoverErosionOutwardsWaveConditionsCalculation + { + Output = new GrassCoverErosionOutwardsWaveConditionsOutput(new[] + { + new WaveConditionsOutput(1, 2, 3, 4) + }) + }; + + // Call + GrassCoverErosionOutwardsWaveConditionsCalculationEntity entity = calculation.Create(registry, 0); + + // Assert + Assert.AreEqual(1, entity.GrassCoverErosionOutwardsWaveConditionsOutputEntities.Count); + } } } \ No newline at end of file Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/GrassCoverErosionOutwards/GrassCoverErosionOutwardsWaveConditionsOutputCreateExtensionsTest.cs =================================================================== diff -u -rb0f517aa5c87ef9036f146a5181a88508b135c23 -r3d99e0cb89356292c191806d05763b8e2d869d34 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/GrassCoverErosionOutwards/GrassCoverErosionOutwardsWaveConditionsOutputCreateExtensionsTest.cs (.../GrassCoverErosionOutwardsWaveConditionsOutputCreateExtensionsTest.cs) (revision b0f517aa5c87ef9036f146a5181a88508b135c23) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/GrassCoverErosionOutwards/GrassCoverErosionOutwardsWaveConditionsOutputCreateExtensionsTest.cs (.../GrassCoverErosionOutwardsWaveConditionsOutputCreateExtensionsTest.cs) (revision 3d99e0cb89356292c191806d05763b8e2d869d34) @@ -38,7 +38,7 @@ var output = new WaveConditionsOutput(1.1, 2.2, 3.3, 4.4); // Call - TestDelegate call = () => output.CreateGrassCoverErosionOutwardsWaveConditionsOutput(null); + TestDelegate call = () => output.CreateGrassCoverErosionOutwardsWaveConditionsOutputEntity(null); // Assert string paramName = Assert.Throws(call).ParamName; @@ -54,7 +54,7 @@ var registry = new PersistenceRegistry(); // Call - GrassCoverErosionOutwardsWaveConditionsOutputEntity entity = output.CreateGrassCoverErosionOutwardsWaveConditionsOutput(registry); + GrassCoverErosionOutwardsWaveConditionsOutputEntity entity = output.CreateGrassCoverErosionOutwardsWaveConditionsOutputEntity(registry); // Assert Assert.AreEqual(output.WaterLevel, entity.WaterLevel, output.WaterLevel.GetAccuracy()); @@ -74,7 +74,7 @@ var registry = new PersistenceRegistry(); // Call - GrassCoverErosionOutwardsWaveConditionsOutputEntity entity = output.CreateGrassCoverErosionOutwardsWaveConditionsOutput(registry); + GrassCoverErosionOutwardsWaveConditionsOutputEntity entity = output.CreateGrassCoverErosionOutwardsWaveConditionsOutputEntity(registry); // Assert Assert.IsNull(entity.WaterLevel); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/StabilityStoneCover/StabilityStoneCoverWaveConditionsOutputCreateExtensionsTest.cs =================================================================== diff -u -rb0f517aa5c87ef9036f146a5181a88508b135c23 -r3d99e0cb89356292c191806d05763b8e2d869d34 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/StabilityStoneCover/StabilityStoneCoverWaveConditionsOutputCreateExtensionsTest.cs (.../StabilityStoneCoverWaveConditionsOutputCreateExtensionsTest.cs) (revision b0f517aa5c87ef9036f146a5181a88508b135c23) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/StabilityStoneCover/StabilityStoneCoverWaveConditionsOutputCreateExtensionsTest.cs (.../StabilityStoneCoverWaveConditionsOutputCreateExtensionsTest.cs) (revision 3d99e0cb89356292c191806d05763b8e2d869d34) @@ -38,7 +38,7 @@ var output = new WaveConditionsOutput(1.1, 2.2, 3.3, 4.4); // Call - TestDelegate call = () => output.CreateStabilityStoneCoverWaveConditionsOutput(WaveConditionsOutputType.Columns, null); + TestDelegate call = () => output.CreateStabilityStoneCoverWaveConditionsOutputEntity(WaveConditionsOutputType.Columns, null); // Assert string paramName = Assert.Throws(call).ParamName; @@ -56,7 +56,7 @@ var registry = new PersistenceRegistry(); // Call - StabilityStoneCoverWaveConditionsOutputEntity entity = output.CreateStabilityStoneCoverWaveConditionsOutput(outputType, registry); + StabilityStoneCoverWaveConditionsOutputEntity entity = output.CreateStabilityStoneCoverWaveConditionsOutputEntity(outputType, registry); // Assert Assert.AreEqual(output.WaterLevel, entity.WaterLevel, output.WaterLevel.GetAccuracy()); @@ -80,7 +80,7 @@ var registry = new PersistenceRegistry(); // Call - StabilityStoneCoverWaveConditionsOutputEntity entity = output.CreateStabilityStoneCoverWaveConditionsOutput(outputType, registry); + StabilityStoneCoverWaveConditionsOutputEntity entity = output.CreateStabilityStoneCoverWaveConditionsOutputEntity(outputType, registry); // Assert Assert.IsNull(entity.WaterLevel); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/GrassCoverErosionOutwards/GrassCoverErosionOutwardsWaveConditionsCalculationEntityReadExtensionsTest.cs =================================================================== diff -u -rcd386b0b37f478679e5d5566276150e30b4118de -r3d99e0cb89356292c191806d05763b8e2d869d34 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/GrassCoverErosionOutwards/GrassCoverErosionOutwardsWaveConditionsCalculationEntityReadExtensionsTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationEntityReadExtensionsTest.cs) (revision cd386b0b37f478679e5d5566276150e30b4118de) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/GrassCoverErosionOutwards/GrassCoverErosionOutwardsWaveConditionsCalculationEntityReadExtensionsTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationEntityReadExtensionsTest.cs) (revision 3d99e0cb89356292c191806d05763b8e2d869d34) @@ -253,6 +253,27 @@ Assert.IsTrue(collector.Contains(hydraulicLocationEntity)); } + [Test] + public void Read_EntityWithCalculationOutputEntity_CalculationWithOutput() + { + // Setup + var entity = new GrassCoverErosionOutwardsWaveConditionsCalculationEntity + { + GrassCoverErosionOutwardsWaveConditionsOutputEntities = + { + new GrassCoverErosionOutwardsWaveConditionsOutputEntity() + } + }; + + var collector = new ReadConversionCollector(); + + // Call + GrassCoverErosionOutwardsWaveConditionsCalculation calculation = entity.Read(collector); + + // Assert + Assert.IsNotNull(calculation.Output); + } + private static void AssertRoundedDouble(double expectedValue, RoundedDouble actualValue) { Assert.AreEqual(expectedValue, actualValue, actualValue.GetAccuracy());