Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Application.Ringtoets.Storage.csproj =================================================================== diff -u -r9e1b97e9540df6cbd635120135c83de0260aa6d1 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Application.Ringtoets.Storage.csproj (.../Application.Ringtoets.Storage.csproj) (revision 9e1b97e9540df6cbd635120135c83de0260aa6d1) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Application.Ringtoets.Storage.csproj (.../Application.Ringtoets.Storage.csproj) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -163,7 +163,6 @@ - Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/CreateConversionCollector.cs =================================================================== diff -u -r8a2d2653ceff765beecfcedab41a6be91df7d16e -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/CreateConversionCollector.cs (.../CreateConversionCollector.cs) (revision 8a2d2653ceff765beecfcedab41a6be91df7d16e) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/CreateConversionCollector.cs (.../CreateConversionCollector.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -50,7 +50,9 @@ private readonly Dictionary stochasticSoilProfiles = new Dictionary(new ReferenceEqualityComparer()); private readonly Dictionary soilProfiles = new Dictionary(new ReferenceEqualityComparer()); private readonly Dictionary soilLayers = new Dictionary(new ReferenceEqualityComparer()); + private readonly Dictionary surfaceLines = new Dictionary(new ReferenceEqualityComparer()); private readonly Dictionary surfaceLinePoints = new Dictionary(new ReferenceEqualityComparer()); + private readonly Dictionary characteristicPoints = new Dictionary(new ReferenceEqualityComparer()); /// /// Registers a create operation for and the that @@ -223,6 +225,20 @@ } /// + /// Obtains the which was created for the given . + /// + /// The that was constructed. + /// The corresponding + /// the newly create database entity. + /// Thrown when is null. + /// Thrown when no create operation has been registered for + /// . + internal void Create(SurfaceLineEntity entity, RingtoetsPipingSurfaceLine model) + { + Create(surfaceLines, entity, model); + } + + /// /// Registers a create operation for and the /// that was constructed with the information. /// @@ -245,7 +261,6 @@ /// /// The surfaceline geometry for which /// a create operation has been registered. - /// The constructed . /// Thrown when is null. /// Thrown when no create operation /// has been registered for . @@ -257,6 +272,21 @@ } /// + /// Obtains the which was created for the + /// given . + /// + /// The that was constructed. + /// The surfaceline geometry that is marked + /// as being a characteristic points and for which a create operation has been registered. + /// Thrown when is null. + /// Thrown when no create operation + /// has been registered for . + internal void Create(CharacteristicPointEntity entity, Point3D model) + { + Create(characteristicPoints, entity, model); + } + + /// /// Transfer ids from the created entities to the domain model objects' property. /// internal void TransferIds() @@ -306,12 +336,111 @@ soilLayers[entity].StorageId = entity.SoilLayerEntityId; } + foreach (var entity in surfaceLines.Keys) + { + surfaceLines[entity].StorageId = entity.SurfaceLineEntityId; + } + foreach (var entity in surfaceLinePoints.Keys) { surfaceLinePoints[entity].StorageId = entity.SurfaceLinePointEntityId; } + + // CharacteristicPoints do not really have a 'identity' within the object-model. + // As such, no need to copy StorageId. This is already covered by surfaceLinePoints. } + /// + /// Removes all the entities for which no update operation was registered from the . + /// + /// The from which to remove the entities. + internal void RemoveUntouched(IRingtoetsEntities dbContext) + { + var projectEntities = dbContext.ProjectEntities; + var projectEntitiesToRemove = projectEntities + .Local + .Where(entity => entity.ProjectEntityId > 0) + .Except(projects.Keys); + projectEntities.RemoveRange(projectEntitiesToRemove); + + var assessmentSectionEntities = dbContext.AssessmentSectionEntities; + var assessmentSectionEntitiesToRemove = assessmentSectionEntities + .Local + .Where(entity => entity.AssessmentSectionEntityId > 0) + .Except(assessmentSections.Keys); + assessmentSectionEntities.RemoveRange(assessmentSectionEntitiesToRemove); + + var failureMechanismEntities = dbContext.FailureMechanismEntities; + var failureMechanismEntitiesToRemove = failureMechanismEntities + .Local + .Where(entity => entity.FailureMechanismEntityId > 0) + .Except(failureMechanisms.Keys); + failureMechanismEntities.RemoveRange(failureMechanismEntitiesToRemove); + + var failureMechanismSectionEntities = dbContext.FailureMechanismSectionEntities; + var failureMechanismSectionEntitiesToRemove = failureMechanismSectionEntities + .Local + .Where(entity => entity.FailureMechanismSectionEntityId > 0) + .Except(failureMechanismSections.Keys); + failureMechanismSectionEntities.RemoveRange(failureMechanismSectionEntitiesToRemove); + + var hydraulicLocationEntities = dbContext.HydraulicLocationEntities; + var hydraulicLocationEntitiesToRemove = hydraulicLocationEntities + .Local + .Where(entity => entity.HydraulicLocationEntityId > 0) + .Except(hydraulicLocations.Keys); + hydraulicLocationEntities.RemoveRange(hydraulicLocationEntitiesToRemove); + + var stochasticSoilModelEntities = dbContext.StochasticSoilModelEntities; + var stochasticSoilModelEntitiesToRemove = stochasticSoilModelEntities + .Local + .Where(entity => entity.StochasticSoilModelEntityId > 0) + .Except(stochasticSoilModels.Keys); + stochasticSoilModelEntities.RemoveRange(stochasticSoilModelEntitiesToRemove); + + var stochasticSoilProfileEntities = dbContext.StochasticSoilProfileEntities; + var stochasticSoilProfileEntitiesToRemove = stochasticSoilProfileEntities + .Local + .Where(entity => entity.StochasticSoilProfileEntityId > 0) + .Except(stochasticSoilProfiles.Keys); + stochasticSoilProfileEntities.RemoveRange(stochasticSoilProfileEntitiesToRemove); + + var soilProfileEntities = dbContext.SoilProfileEntities; + var soilProfileEntitiesToRemove = soilProfileEntities + .Local + .Where(entity => entity.SoilProfileEntityId > 0) + .Except(soilProfiles.Keys); + soilProfileEntities.RemoveRange(soilProfileEntitiesToRemove); + + var soilLayerEntities = dbContext.SoilLayerEntities; + var soilLayerEntitiesToRemove = soilLayerEntities + .Local + .Where(entity => entity.SoilLayerEntityId > 0) + .Except(soilLayers.Keys); + soilLayerEntities.RemoveRange(soilLayerEntitiesToRemove); + + var surfaceLineEntities = dbContext.SurfaceLineEntities; + var surfaceLineEntitiesToRemove = surfaceLineEntities + .Local + .Where(entity => entity.SurfaceLineEntityId > 0) + .Except(surfaceLines.Keys); + surfaceLineEntities.RemoveRange(surfaceLineEntitiesToRemove); + + var surfaceLinePointEntities = dbContext.SurfaceLinePointEntities; + var surfaceLinePointEntitiesToRemove = surfaceLinePointEntities + .Local + .Where(entity => entity.SurfaceLinePointEntityId > 0) + .Except(surfaceLinePoints.Keys); + surfaceLinePointEntities.RemoveRange(surfaceLinePointEntitiesToRemove); + + var characteristicPointEntities = dbContext.CharacteristicPointEntities; + var characteristicPointEntitiesToRemove = characteristicPointEntities + .Local + .Where(entity => entity.CharacteristicPointEntityId > 0) + .Except(characteristicPoints.Keys); + characteristicPointEntities.RemoveRange(characteristicPointEntitiesToRemove); + } + private bool ContainsValue(Dictionary collection, U model) { if (model == null) Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/PipingFailureMechanismCreateExtensions.cs =================================================================== diff -u -r35408ec0912670519b01cff44a19a3e2fb12d8d6 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/PipingFailureMechanismCreateExtensions.cs (.../PipingFailureMechanismCreateExtensions.cs) (revision 35408ec0912670519b01cff44a19a3e2fb12d8d6) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/PipingFailureMechanismCreateExtensions.cs (.../PipingFailureMechanismCreateExtensions.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -22,6 +22,7 @@ using System; using Application.Ringtoets.Storage.DbContext; using Ringtoets.Piping.Data; +using Ringtoets.Piping.Primitives; namespace Application.Ringtoets.Storage.Create { @@ -51,6 +52,7 @@ }; AddEntitiesForStochasticSoilModels(mechanism, collector, entity); + AddEntitiesForSurfaceLines(mechanism, collector, entity); mechanism.AddEntitiesForFailureMechanismSections(collector, entity); collector.Create(entity, mechanism); @@ -64,5 +66,13 @@ entity.StochasticSoilModelEntities.Add(stochasticSoilModel.Create(collector)); } } + + private static void AddEntitiesForSurfaceLines(PipingFailureMechanism mechanism, CreateConversionCollector collector, FailureMechanismEntity entity) + { + foreach (RingtoetsPipingSurfaceLine surfaceLine in mechanism.SurfaceLines) + { + entity.SurfaceLineEntities.Add(surfaceLine.Create(collector)); + } + } } } \ No newline at end of file Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/RingtoetsPipingSurfaceLineCreateExtensions.cs =================================================================== diff -u -r9e1b97e9540df6cbd635120135c83de0260aa6d1 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/RingtoetsPipingSurfaceLineCreateExtensions.cs (.../RingtoetsPipingSurfaceLineCreateExtensions.cs) (revision 9e1b97e9540df6cbd635120135c83de0260aa6d1) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/RingtoetsPipingSurfaceLineCreateExtensions.cs (.../RingtoetsPipingSurfaceLineCreateExtensions.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -51,11 +51,15 @@ var entity = new SurfaceLineEntity { - Name = surfaceLine.Name + Name = surfaceLine.Name, + ReferenceLineIntersectionX = Convert.ToDecimal(surfaceLine.ReferenceLineIntersectionWorldPoint.X), + ReferenceLineIntersectionY = Convert.ToDecimal(surfaceLine.ReferenceLineIntersectionWorldPoint.Y) }; CreateSurfaceLinePointEntities(surfaceLine, collector, entity); CreateCharacteristicPointEntities(surfaceLine, collector, entity); + collector.Create(entity, surfaceLine); + return entity; } Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Read/AssessmentSectionEntityReadExtensions.cs =================================================================== diff -u -r213b20e92891887167ab4b031ca4a4b6250a4c2a -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Read/AssessmentSectionEntityReadExtensions.cs (.../AssessmentSectionEntityReadExtensions.cs) (revision 213b20e92891887167ab4b031ca4a4b6250a4c2a) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Read/AssessmentSectionEntityReadExtensions.cs (.../AssessmentSectionEntityReadExtensions.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -27,6 +27,7 @@ using Ringtoets.HydraRing.Data; using Ringtoets.Integration.Data; using Ringtoets.Integration.Data.StandAlone; +using Ringtoets.Piping.Primitives; namespace Application.Ringtoets.Storage.Read { @@ -106,6 +107,10 @@ { pipingFailureMechanism.AddSection(failureMechanismSection); } + foreach (RingtoetsPipingSurfaceLine surfaceLine in failureMechanism.SurfaceLines) + { + pipingFailureMechanism.SurfaceLines.Add(surfaceLine); + } } } Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Read/FailureMechanismEntityReadExtensions.cs =================================================================== diff -u -r20bb156dfc129b1602ddbcddc73c0806807f19ab -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Read/FailureMechanismEntityReadExtensions.cs (.../FailureMechanismEntityReadExtensions.cs) (revision 20bb156dfc129b1602ddbcddc73c0806807f19ab) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Read/FailureMechanismEntityReadExtensions.cs (.../FailureMechanismEntityReadExtensions.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -58,6 +58,10 @@ { failureMechanism.StochasticSoilModels.Add(stochasticSoilModelEntity.Read(collector)); } + foreach (SurfaceLineEntity surfaceLineEntity in entity.SurfaceLineEntities) + { + failureMechanism.SurfaceLines.Add(surfaceLineEntity.Read(collector)); + } entity.ReadFailureMechanismSections(failureMechanism); Index: Application/Ringtoets/src/Application.Ringtoets.Storage/StorageSqLite.cs =================================================================== diff -u -r062281754a35164e1095479c9f1ccb8ee821f939 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/src/Application.Ringtoets.Storage/StorageSqLite.cs (.../StorageSqLite.cs) (revision 062281754a35164e1095479c9f1ccb8ee821f939) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/StorageSqLite.cs (.../StorageSqLite.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -134,7 +134,7 @@ { try { - var updateCollector = new UpdateConversionCollector(); + var updateCollector = new CreateConversionCollector(); project.Update(updateCollector, dbContext); updateCollector.RemoveUntouched(dbContext); var changes = dbContext.SaveChanges(); @@ -215,7 +215,7 @@ { try { - var updateConversionCollector = new UpdateConversionCollector(); + var updateConversionCollector = new CreateConversionCollector(); project.Update(updateConversionCollector, dbContext); updateConversionCollector.RemoveUntouched(dbContext); Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Update/AssessmentSectionUpdateExtensions.cs =================================================================== diff -u -r213b20e92891887167ab4b031ca4a4b6250a4c2a -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Update/AssessmentSectionUpdateExtensions.cs (.../AssessmentSectionUpdateExtensions.cs) (revision 213b20e92891887167ab4b031ca4a4b6250a4c2a) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Update/AssessmentSectionUpdateExtensions.cs (.../AssessmentSectionUpdateExtensions.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -49,7 +49,7 @@ /// is null /// is null /// - internal static void Update(this AssessmentSection section, UpdateConversionCollector collector, IRingtoetsEntities context) + internal static void Update(this AssessmentSection section, CreateConversionCollector collector, IRingtoetsEntities context) { if (context == null) { @@ -70,10 +70,10 @@ UpdateReferenceLine(section, entity, context); UpdateStandAloneFailureMechanisms(section, collector, context); - collector.Update(entity); + collector.Create(entity, section); } - private static void UpdateStandAloneFailureMechanisms(AssessmentSection section, UpdateConversionCollector collector, IRingtoetsEntities context) + private static void UpdateStandAloneFailureMechanisms(AssessmentSection section, CreateConversionCollector collector, IRingtoetsEntities context) { section.MacrostabilityInwards.Update(collector, context); section.StabilityStoneCover.Update(collector, context); @@ -99,12 +99,12 @@ } } - private static void UpdatePipingFailureMechanism(AssessmentSection section, UpdateConversionCollector collector, IRingtoetsEntities context) + private static void UpdatePipingFailureMechanism(AssessmentSection section, CreateConversionCollector collector, IRingtoetsEntities context) { section.PipingFailureMechanism.Update(collector, context); } - private static void UpdateGrassCoverErosionInwardsFailureMechanism(AssessmentSection section, UpdateConversionCollector collector, IRingtoetsEntities context) + private static void UpdateGrassCoverErosionInwardsFailureMechanism(AssessmentSection section, CreateConversionCollector collector, IRingtoetsEntities context) { section.GrassCoverErosionInwards.Update(collector, context); } @@ -130,7 +130,7 @@ } } - private static void UpdateHydraulicDatabase(AssessmentSection section, AssessmentSectionEntity entity, UpdateConversionCollector collector, IRingtoetsEntities context) + private static void UpdateHydraulicDatabase(AssessmentSection section, AssessmentSectionEntity entity, CreateConversionCollector collector, IRingtoetsEntities context) { if (section.HydraulicBoundaryDatabase != null) { Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Update/FailureMechanismBaseUpdateExtensions.cs =================================================================== diff -u -r41fac7fff0a505c08945108d795dcb877f10b816 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Update/FailureMechanismBaseUpdateExtensions.cs (.../FailureMechanismBaseUpdateExtensions.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Update/FailureMechanismBaseUpdateExtensions.cs (.../FailureMechanismBaseUpdateExtensions.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -46,7 +46,7 @@ /// is null /// /// - internal static void UpdateFailureMechanismSections(this IFailureMechanism mechanism, UpdateConversionCollector collector, FailureMechanismEntity entity, IRingtoetsEntities context) + internal static void UpdateFailureMechanismSections(this IFailureMechanism mechanism, CreateConversionCollector collector, FailureMechanismEntity entity, IRingtoetsEntities context) { if (collector == null) { Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Update/FailureMechanismSectionUpdateExtensions.cs =================================================================== diff -u -r5969ec704a34c08bc99fb44f826f7b89e19340de -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Update/FailureMechanismSectionUpdateExtensions.cs (.../FailureMechanismSectionUpdateExtensions.cs) (revision 5969ec704a34c08bc99fb44f826f7b89e19340de) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Update/FailureMechanismSectionUpdateExtensions.cs (.../FailureMechanismSectionUpdateExtensions.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -45,7 +45,7 @@ /// is null /// is null /// - internal static void Update(this FailureMechanismSection section, UpdateConversionCollector collector, IRingtoetsEntities context) + internal static void Update(this FailureMechanismSection section, CreateConversionCollector collector, IRingtoetsEntities context) { if (context == null) { @@ -61,7 +61,7 @@ UpdateGeometry(section, entity, context); - collector.Update(entity); + collector.Create(entity, section); } private static FailureMechanismSectionEntity GetSingleFailureMechanismSection(FailureMechanismSection section, IRingtoetsEntities context) Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Update/GrassCoverErosionInwardsFailureMechanismUpdateExtensions.cs =================================================================== diff -u -r062281754a35164e1095479c9f1ccb8ee821f939 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Update/GrassCoverErosionInwardsFailureMechanismUpdateExtensions.cs (.../GrassCoverErosionInwardsFailureMechanismUpdateExtensions.cs) (revision 062281754a35164e1095479c9f1ccb8ee821f939) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Update/GrassCoverErosionInwardsFailureMechanismUpdateExtensions.cs (.../GrassCoverErosionInwardsFailureMechanismUpdateExtensions.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -21,6 +21,8 @@ using System; using System.Linq; + +using Application.Ringtoets.Storage.Create; using Application.Ringtoets.Storage.DbContext; using Application.Ringtoets.Storage.Exceptions; using Application.Ringtoets.Storage.Properties; @@ -45,7 +47,7 @@ /// is null /// is null /// - internal static void Update(this GrassCoverErosionInwardsFailureMechanism mechanism, UpdateConversionCollector collector, IRingtoetsEntities context) + internal static void Update(this GrassCoverErosionInwardsFailureMechanism mechanism, CreateConversionCollector collector, IRingtoetsEntities context) { if (context == null) { @@ -61,7 +63,7 @@ mechanism.UpdateFailureMechanismSections(collector, entity, context); - collector.Update(entity); + collector.Create(entity, mechanism); } private static FailureMechanismEntity GetSingleFailureMechanism(GrassCoverErosionInwardsFailureMechanism mechanism, IRingtoetsEntities context) Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Update/HydraulicBoundaryLocationUpdateExtensions.cs =================================================================== diff -u -r062281754a35164e1095479c9f1ccb8ee821f939 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Update/HydraulicBoundaryLocationUpdateExtensions.cs (.../HydraulicBoundaryLocationUpdateExtensions.cs) (revision 062281754a35164e1095479c9f1ccb8ee821f939) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Update/HydraulicBoundaryLocationUpdateExtensions.cs (.../HydraulicBoundaryLocationUpdateExtensions.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -21,6 +21,8 @@ using System; using System.Linq; + +using Application.Ringtoets.Storage.Create; using Application.Ringtoets.Storage.DbContext; using Application.Ringtoets.Storage.Exceptions; using Application.Ringtoets.Storage.Properties; @@ -45,7 +47,7 @@ /// is null /// is null /// - internal static void Update(this HydraulicBoundaryLocation location, UpdateConversionCollector collector, IRingtoetsEntities context) + internal static void Update(this HydraulicBoundaryLocation location, CreateConversionCollector collector, IRingtoetsEntities context) { if (context == null) { @@ -62,7 +64,7 @@ entity.LocationY = Convert.ToDecimal(location.Location.Y); entity.DesignWaterLevel = double.IsNaN(location.DesignWaterLevel) ? (double?) null : Convert.ToDouble(location.DesignWaterLevel); - collector.Update(entity); + collector.Create(entity, location); } private static HydraulicLocationEntity GetSingleHydraulicBoundaryLocation(HydraulicBoundaryLocation location, IRingtoetsEntities context) Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Update/PipingFailureMechanismUpdateExtensions.cs =================================================================== diff -u -r062281754a35164e1095479c9f1ccb8ee821f939 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Update/PipingFailureMechanismUpdateExtensions.cs (.../PipingFailureMechanismUpdateExtensions.cs) (revision 062281754a35164e1095479c9f1ccb8ee821f939) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Update/PipingFailureMechanismUpdateExtensions.cs (.../PipingFailureMechanismUpdateExtensions.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -26,6 +26,7 @@ using Application.Ringtoets.Storage.Exceptions; using Application.Ringtoets.Storage.Properties; using Ringtoets.Piping.Data; +using Ringtoets.Piping.Primitives; namespace Application.Ringtoets.Storage.Update { @@ -46,7 +47,7 @@ /// is null /// is null /// - internal static void Update(this PipingFailureMechanism mechanism, UpdateConversionCollector collector, IRingtoetsEntities context) + internal static void Update(this PipingFailureMechanism mechanism, CreateConversionCollector collector, IRingtoetsEntities context) { if (context == null) { @@ -61,12 +62,13 @@ entity.IsRelevant = Convert.ToByte(mechanism.IsRelevant); UpdateSoilModels(mechanism, collector, context, entity); + UpdateSurfaceLines(mechanism, collector, context, entity); mechanism.UpdateFailureMechanismSections(collector, entity, context); - collector.Update(entity); + collector.Create(entity, mechanism); } - private static void UpdateSoilModels(PipingFailureMechanism mechanism, UpdateConversionCollector collector, IRingtoetsEntities context, FailureMechanismEntity entity) + private static void UpdateSoilModels(PipingFailureMechanism mechanism, CreateConversionCollector collector, IRingtoetsEntities context, FailureMechanismEntity entity) { foreach (var stochasticSoilModel in mechanism.StochasticSoilModels) { @@ -81,6 +83,21 @@ } } + private static void UpdateSurfaceLines(PipingFailureMechanism failureMechanism, CreateConversionCollector collector, IRingtoetsEntities context, FailureMechanismEntity entity) + { + foreach (RingtoetsPipingSurfaceLine surfaceLine in failureMechanism.SurfaceLines) + { + if (surfaceLine.IsNew()) + { + entity.SurfaceLineEntities.Add(surfaceLine.Create(collector)); + } + else + { + surfaceLine.Update(collector, context); + } + } + } + private static FailureMechanismEntity GetSingleFailureMechanism(PipingFailureMechanism mechanism, IRingtoetsEntities context) { try Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Update/PipingSoilLayerUpdateExtensions.cs =================================================================== diff -u -r062281754a35164e1095479c9f1ccb8ee821f939 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Update/PipingSoilLayerUpdateExtensions.cs (.../PipingSoilLayerUpdateExtensions.cs) (revision 062281754a35164e1095479c9f1ccb8ee821f939) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Update/PipingSoilLayerUpdateExtensions.cs (.../PipingSoilLayerUpdateExtensions.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -21,6 +21,8 @@ using System; using System.Linq; + +using Application.Ringtoets.Storage.Create; using Application.Ringtoets.Storage.DbContext; using Application.Ringtoets.Storage.Exceptions; using Application.Ringtoets.Storage.Properties; @@ -45,7 +47,7 @@ /// is null /// is null /// - internal static void Update(this PipingSoilLayer layer, UpdateConversionCollector collector, IRingtoetsEntities context) + internal static void Update(this PipingSoilLayer layer, CreateConversionCollector collector, IRingtoetsEntities context) { if (context == null) { @@ -61,7 +63,7 @@ entity.IsAquifer = Convert.ToByte(layer.IsAquifer); entity.Top = Convert.ToDecimal(layer.Top); - collector.Update(entity); + collector.Create(entity, layer); } private static SoilLayerEntity GetSingleSoilLayer(PipingSoilLayer layer, IRingtoetsEntities context) Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Update/PipingSoilProfileUpdateExtensions.cs =================================================================== diff -u -r062281754a35164e1095479c9f1ccb8ee821f939 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Update/PipingSoilProfileUpdateExtensions.cs (.../PipingSoilProfileUpdateExtensions.cs) (revision 062281754a35164e1095479c9f1ccb8ee821f939) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Update/PipingSoilProfileUpdateExtensions.cs (.../PipingSoilProfileUpdateExtensions.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -46,7 +46,7 @@ /// is null /// is null /// - internal static void Update(this PipingSoilProfile profile, UpdateConversionCollector collector, IRingtoetsEntities context) + internal static void Update(this PipingSoilProfile profile, CreateConversionCollector collector, IRingtoetsEntities context) { if (context == null) { @@ -73,7 +73,7 @@ } } - collector.Update(entity); + collector.Create(entity, profile); } private static SoilProfileEntity GetSinglePipingSoilProfile(PipingSoilProfile profile, IRingtoetsEntities context) Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Update/ProjectUpdateExtensions.cs =================================================================== diff -u -r062281754a35164e1095479c9f1ccb8ee821f939 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Update/ProjectUpdateExtensions.cs (.../ProjectUpdateExtensions.cs) (revision 062281754a35164e1095479c9f1ccb8ee821f939) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Update/ProjectUpdateExtensions.cs (.../ProjectUpdateExtensions.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -47,7 +47,7 @@ /// is null /// is null /// - internal static void Update(this Project project, UpdateConversionCollector collector, IRingtoetsEntities context) + internal static void Update(this Project project, CreateConversionCollector collector, IRingtoetsEntities context) { if (context == null) { @@ -73,7 +73,7 @@ } } - collector.Update(entity); + collector.Create(entity, project); } private static ProjectEntity ReadSingleProject(Project project, IRingtoetsEntities context) Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Update/RingtoetsPipingSurfaceLineUpdateExtensions.cs =================================================================== diff -u -r9e1b97e9540df6cbd635120135c83de0260aa6d1 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Update/RingtoetsPipingSurfaceLineUpdateExtensions.cs (.../RingtoetsPipingSurfaceLineUpdateExtensions.cs) (revision 9e1b97e9540df6cbd635120135c83de0260aa6d1) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Update/RingtoetsPipingSurfaceLineUpdateExtensions.cs (.../RingtoetsPipingSurfaceLineUpdateExtensions.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -53,7 +53,7 @@ /// /// When no /// can be found in that matches . - internal static void Update(this RingtoetsPipingSurfaceLine surfaceLine, UpdateConversionCollector collector, IRingtoetsEntities context) + internal static void Update(this RingtoetsPipingSurfaceLine surfaceLine, CreateConversionCollector collector, IRingtoetsEntities context) { if (collector == null) { @@ -72,15 +72,25 @@ UpdateGeometry(surfaceLine, entity, context, collector); UpdateCharacteristicPoints(surfaceLine, entity, collector); + + collector.Create(entity, surfaceLine); } - private static void UpdateGeometry(RingtoetsPipingSurfaceLine surfaceLine, SurfaceLineEntity entity, IRingtoetsEntities context, UpdateConversionCollector collector) + private static void UpdateGeometry(RingtoetsPipingSurfaceLine surfaceLine, SurfaceLineEntity entity, IRingtoetsEntities context, CreateConversionCollector collector) { if (HasGeometryChanges(surfaceLine, entity)) { context.SurfaceLinePointEntities.RemoveRange(entity.SurfaceLinePointEntities); UpdateGeometryPoints(surfaceLine, entity, collector); } + else + { + var orderedPointEntities = context.SurfaceLinePointEntities.OrderBy(pe => pe.Order).ToArray(); + for (int i = 0; i < surfaceLine.Points.Length; i++) + { + collector.Create(orderedPointEntities[i], surfaceLine.Points[i]); + } + } } private static bool HasGeometryChanges(RingtoetsPipingSurfaceLine surfaceLine, SurfaceLineEntity entity) @@ -101,7 +111,7 @@ return false; } - private static void UpdateGeometryPoints(RingtoetsPipingSurfaceLine surfaceLine, SurfaceLineEntity entity, UpdateConversionCollector collector) + private static void UpdateGeometryPoints(RingtoetsPipingSurfaceLine surfaceLine, SurfaceLineEntity entity, CreateConversionCollector collector) { int order = 0; foreach (Point3D geometryPoint in surfaceLine.Points) @@ -110,7 +120,7 @@ } } - private static void UpdateCharacteristicPoints(RingtoetsPipingSurfaceLine surfaceLine, SurfaceLineEntity entity, UpdateConversionCollector collector) + private static void UpdateCharacteristicPoints(RingtoetsPipingSurfaceLine surfaceLine, SurfaceLineEntity entity, CreateConversionCollector collector) { CharacteristicPointEntity[] currentCharacteristicPointEntities = entity.SurfaceLinePointEntities .SelectMany(pe => pe.CharacteristicPointEntities) @@ -132,7 +142,7 @@ private static void UpdateCharacteristicPoint(Point3D currentCharacteristicPoint, CharacteristicPointType type, CharacteristicPointEntity[] currentCharacteristicPointEntities, - UpdateConversionCollector collector) + CreateConversionCollector collector) { short typeValue = (short)type; CharacteristicPointEntity characteristicPointEntity = currentCharacteristicPointEntities @@ -155,6 +165,7 @@ else if (characteristicPointEntity.SurfaceLinePointEntity != geometryPointEntity) { characteristicPointEntity.SurfaceLinePointEntity = geometryPointEntity; + collector.Create(characteristicPointEntity, currentCharacteristicPoint); } } } Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Update/StandAloneFailureMechanismUpdateExtensions.cs =================================================================== diff -u -r20bb156dfc129b1602ddbcddc73c0806807f19ab -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Update/StandAloneFailureMechanismUpdateExtensions.cs (.../StandAloneFailureMechanismUpdateExtensions.cs) (revision 20bb156dfc129b1602ddbcddc73c0806807f19ab) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Update/StandAloneFailureMechanismUpdateExtensions.cs (.../StandAloneFailureMechanismUpdateExtensions.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -21,6 +21,8 @@ using System; using System.Linq; + +using Application.Ringtoets.Storage.Create; using Application.Ringtoets.Storage.DbContext; using Application.Ringtoets.Storage.Exceptions; using Application.Ringtoets.Storage.Properties; @@ -46,7 +48,7 @@ /// is null /// is null /// - internal static void Update(this IFailureMechanism mechanism, UpdateConversionCollector collector, IRingtoetsEntities context) + internal static void Update(this IFailureMechanism mechanism, CreateConversionCollector collector, IRingtoetsEntities context) { if (context == null) { @@ -62,7 +64,7 @@ mechanism.UpdateFailureMechanismSections(collector, entity, context); - collector.Update(entity); + collector.Create(entity, mechanism); } private static FailureMechanismEntity GetSingleFailureMechanism(this IFailureMechanism mechanism, IRingtoetsEntities context) Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Update/StochasticSoilModelUpdateExtensions.cs =================================================================== diff -u -r062281754a35164e1095479c9f1ccb8ee821f939 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Update/StochasticSoilModelUpdateExtensions.cs (.../StochasticSoilModelUpdateExtensions.cs) (revision 062281754a35164e1095479c9f1ccb8ee821f939) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Update/StochasticSoilModelUpdateExtensions.cs (.../StochasticSoilModelUpdateExtensions.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -46,7 +46,7 @@ /// is null /// is null /// - internal static void Update(this StochasticSoilModel model, UpdateConversionCollector collector, IRingtoetsEntities context) + internal static void Update(this StochasticSoilModel model, CreateConversionCollector collector, IRingtoetsEntities context) { if (context == null) { @@ -73,7 +73,7 @@ } } - collector.Update(entity); + collector.Create(entity, model); } private static StochasticSoilModelEntity GetSingleStochasticSoilModel(StochasticSoilModel model, IRingtoetsEntities context) Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Update/StochasticSoilProfileUpdateExtensions.cs =================================================================== diff -u -r062281754a35164e1095479c9f1ccb8ee821f939 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Update/StochasticSoilProfileUpdateExtensions.cs (.../StochasticSoilProfileUpdateExtensions.cs) (revision 062281754a35164e1095479c9f1ccb8ee821f939) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Update/StochasticSoilProfileUpdateExtensions.cs (.../StochasticSoilProfileUpdateExtensions.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -46,7 +46,7 @@ /// is null /// is null /// - internal static void Update(this StochasticSoilProfile profile, UpdateConversionCollector collector, IRingtoetsEntities context) + internal static void Update(this StochasticSoilProfile profile, CreateConversionCollector collector, IRingtoetsEntities context) { if (context == null) { @@ -69,7 +69,7 @@ profile.SoilProfile.Update(collector, context); } - collector.Update(entity); + collector.Create(entity, profile); } private static StochasticSoilProfileEntity GetSingleStochasticSoilProfile(StochasticSoilProfile profile, IRingtoetsEntities context) Fisheye: Tag 36ed0869d04cd54d2aee0abbd0ec88100334e097 refers to a dead (removed) revision in file `Application/Ringtoets/src/Application.Ringtoets.Storage/Update/UpdateConversionCollector.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Application.Ringtoets.Storage.Test.csproj =================================================================== diff -u -rea99af5c043eadf5c2ba83b82a847ae009181191 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Application.Ringtoets.Storage.Test.csproj (.../Application.Ringtoets.Storage.Test.csproj) (revision ea99af5c043eadf5c2ba83b82a847ae009181191) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Application.Ringtoets.Storage.Test.csproj (.../Application.Ringtoets.Storage.Test.csproj) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -129,7 +129,6 @@ - Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/CreateConversionCollectorTest.cs =================================================================== diff -u -r20bb156dfc129b1602ddbcddc73c0806807f19ab -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/CreateConversionCollectorTest.cs (.../CreateConversionCollectorTest.cs) (revision 20bb156dfc129b1602ddbcddc73c0806807f19ab) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/CreateConversionCollectorTest.cs (.../CreateConversionCollectorTest.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -423,9 +423,10 @@ { // Setup var collector = new CreateConversionCollector(); + SurfaceLinePointEntity entity = null; // Call - TestDelegate call = () => collector.Create(null, new Point3D(1.1, 2.2, 3.3)); + TestDelegate call = () => collector.Create(entity, new Point3D(1.1, 2.2, 3.3)); // Assert var paramName = Assert.Throws(call).ParamName; @@ -661,6 +662,27 @@ } [Test] + public void TransferId_WithSurfaceLineEntityAdded_EqualSurfaceLineEntityIdAndRingtoetsPipingSurfaceLineStorageId() + { + // Setup + var collector = new CreateConversionCollector(); + + long storageId = new Random(21).Next(1, 4000); + var entity = new SurfaceLineEntity + { + SurfaceLineEntityId = storageId + }; + var model = new RingtoetsPipingSurfaceLine(); + collector.Create(entity, model); + + // Call + collector.TransferIds(); + + // Assert + Assert.AreEqual(storageId, model.StorageId); + } + + [Test] public void TransferId_WithSurfaceLinePointEntityAdded_EqualSurfaceLinePointEntityIdAndPoint3DStorageId() { // Setup Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/PipingFailureMechanismCreateExtensionsTest.cs =================================================================== diff -u -r4bb55feac151da4010e81849de3103327f7f40ae -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/PipingFailureMechanismCreateExtensionsTest.cs (.../PipingFailureMechanismCreateExtensionsTest.cs) (revision 4bb55feac151da4010e81849de3103327f7f40ae) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/PipingFailureMechanismCreateExtensionsTest.cs (.../PipingFailureMechanismCreateExtensionsTest.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -20,12 +20,14 @@ // All rights reserved. using System; + using Application.Ringtoets.Storage.Create; using Application.Ringtoets.Storage.DbContext; using Core.Common.Base.Geometry; using NUnit.Framework; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Piping.Data; +using Ringtoets.Piping.Primitives; namespace Application.Ringtoets.Storage.Test.Create { @@ -105,5 +107,49 @@ Assert.IsNotNull(entity); Assert.AreEqual(2, entity.FailureMechanismSectionEntities.Count); } + + [Test] + [TestCase(true)] + [TestCase(false)] + public void Create_WithSurfaceLines_ReturnFailureMechanismEntityWithSurfaceLineEntities(bool isRelevant) + { + // Setup + var random = new Random(); + var failureMechanism = new PipingFailureMechanism(); + failureMechanism.SurfaceLines.Add(CreateSurfaceLine(random)); + + var collector = new CreateConversionCollector(); + + // Call + FailureMechanismEntity entity = failureMechanism.Create(collector); + + // Assert + Assert.IsNotNull(entity); + Assert.AreEqual(failureMechanism.SurfaceLines.Count, entity.SurfaceLineEntities.Count); + } + + private RingtoetsPipingSurfaceLine CreateSurfaceLine(Random random) + { + + var surfaceLine = new RingtoetsPipingSurfaceLine(); + surfaceLine.Name = "A"; + surfaceLine.ReferenceLineIntersectionWorldPoint = new Point2D(random.NextDouble(), random.NextDouble()); + + var geometryPoints = new Point3D[10]; + for (int i = 0; i < 10; i++) + { + geometryPoints[i] = new Point3D(random.NextDouble(), random.NextDouble(), random.NextDouble()); + } + surfaceLine.SetGeometry(geometryPoints); + + surfaceLine.SetBottomDitchDikeSideAt(geometryPoints[1]); + surfaceLine.SetBottomDitchPolderSideAt(geometryPoints[2]); + surfaceLine.SetDikeToeAtPolderAt(geometryPoints[3]); + surfaceLine.SetDikeToeAtRiverAt(geometryPoints[4]); + surfaceLine.SetDitchDikeSideAt(geometryPoints[5]); + surfaceLine.SetDitchPolderSideAt(geometryPoints[7]); + + return surfaceLine; + } } } \ No newline at end of file Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/RingtoetsPipingSurfaceLineCreateExtensionsTest.cs =================================================================== diff -u -r9e1b97e9540df6cbd635120135c83de0260aa6d1 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/RingtoetsPipingSurfaceLineCreateExtensionsTest.cs (.../RingtoetsPipingSurfaceLineCreateExtensionsTest.cs) (revision 9e1b97e9540df6cbd635120135c83de0260aa6d1) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/RingtoetsPipingSurfaceLineCreateExtensionsTest.cs (.../RingtoetsPipingSurfaceLineCreateExtensionsTest.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -56,14 +56,17 @@ var collector = new CreateConversionCollector(); var surfaceLine = new RingtoetsPipingSurfaceLine { - Name = "Test" + Name = "Test", + ReferenceLineIntersectionWorldPoint = new Point2D(1235.439, 49308.346) }; // Call SurfaceLineEntity entity = surfaceLine.Create(collector); // Assert Assert.AreEqual(surfaceLine.Name, entity.Name); + Assert.AreEqual(surfaceLine.ReferenceLineIntersectionWorldPoint.X, entity.ReferenceLineIntersectionX); + Assert.AreEqual(surfaceLine.ReferenceLineIntersectionWorldPoint.Y, entity.ReferenceLineIntersectionY); Assert.AreEqual(0, entity.SurfaceLineEntityId); Assert.AreEqual(0, entity.FailureMechanismEntityId); @@ -84,7 +87,8 @@ }; var surfaceLine = new RingtoetsPipingSurfaceLine { - Name = "Test" + Name = "Test", + ReferenceLineIntersectionWorldPoint = new Point2D(1.1, 2.2) }; surfaceLine.SetGeometry(geometry); @@ -93,6 +97,8 @@ // Assert Assert.AreEqual(surfaceLine.Name, entity.Name); + Assert.AreEqual(surfaceLine.ReferenceLineIntersectionWorldPoint.X, entity.ReferenceLineIntersectionX); + Assert.AreEqual(surfaceLine.ReferenceLineIntersectionWorldPoint.Y, entity.ReferenceLineIntersectionY); Assert.AreEqual(geometry.Length, entity.SurfaceLinePointEntities.Count); SurfaceLinePointEntity[] pointEntities = entity.SurfaceLinePointEntities.ToArray(); @@ -130,7 +136,8 @@ }; var surfaceLine = new RingtoetsPipingSurfaceLine { - Name = "Test" + Name = "Test", + ReferenceLineIntersectionWorldPoint = new Point2D(3.3, 4.4) }; surfaceLine.SetGeometry(geometry); const int bottomDitchDikeIndex = 1; @@ -151,6 +158,8 @@ // Assert Assert.AreEqual(surfaceLine.Name, entity.Name); + Assert.AreEqual(surfaceLine.ReferenceLineIntersectionWorldPoint.X, entity.ReferenceLineIntersectionX); + Assert.AreEqual(surfaceLine.ReferenceLineIntersectionWorldPoint.Y, entity.ReferenceLineIntersectionY); Assert.AreEqual(geometry.Length, entity.SurfaceLinePointEntities.Count); SurfaceLinePointEntity[] pointEntities = entity.SurfaceLinePointEntities.ToArray(); @@ -193,5 +202,25 @@ Assert.AreEqual(0, entity.FailureMechanismEntityId); Assert.IsNull(entity.FailureMechanismEntity); } + + [Test] + public void Create_SurfaceLine_RegisterNewEntityToCreateConversionCollector() + { + // Setup + var collector = new CreateConversionCollector(); + var surfaceLine = new RingtoetsPipingSurfaceLine + { + ReferenceLineIntersectionWorldPoint = new Point2D(0.0, 0.0) + }; + + // Call + SurfaceLineEntity entity = surfaceLine.Create(collector); + + // Assert + const long entityId = 125673543; + entity.SurfaceLineEntityId = entityId; + collector.TransferIds(); + Assert.AreEqual(entityId, surfaceLine.StorageId); + } } } \ No newline at end of file Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/IntegrationTests/StorageSqLiteIntegrationTest.cs =================================================================== diff -u -r16846de8f0e08ace5456684f2f342e941e7c6386 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/IntegrationTests/StorageSqLiteIntegrationTest.cs (.../StorageSqLiteIntegrationTest.cs) (revision 16846de8f0e08ace5456684f2f342e941e7c6386) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/IntegrationTests/StorageSqLiteIntegrationTest.cs (.../StorageSqLiteIntegrationTest.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -24,6 +24,8 @@ using System.IO; using System.Linq; using Application.Ringtoets.Storage.TestUtil; + +using Core.Common.Base; using Core.Common.Base.Data; using Core.Common.Base.Plugin; using Core.Common.Gui; @@ -44,7 +46,6 @@ private readonly string testDataPath = TestHelper.GetTestDataPath(TestDataPath.Application.Ringtoets.Storage, "DatabaseFiles"); private readonly string tempRingtoetsFile = Path.Combine(TestHelper.GetTestDataPath(TestDataPath.Application.Ringtoets.Storage, "DatabaseFiles"), "tempProjectFile.rtd"); - [TestFixtureTearDown] [TearDown] public void TearDownTempRingtoetsFile() { @@ -95,6 +96,8 @@ AssertHydraulicBoundaryDatabase(firstProjectAssessmentSection[i], secondProjectAssessmentSection[i]); AssertReferenceLine(firstProjectAssessmentSection[i], secondProjectAssessmentSection[i]); + + AssertPipingFailureMechanism(firstProjectAssessmentSection[i].PipingFailureMechanism, secondProjectAssessmentSection[i].PipingFailureMechanism); } } @@ -121,10 +124,12 @@ Assert.AreNotSame(fullProject, loadedProject); Assert.AreEqual(fullProject.Items.Count, loadedProject.Items.Count); - var assessmentSection = loadedProject.Items.OfType().FirstOrDefault(); - Assert.IsNotNull(assessmentSection); - AssertHydraulicBoundaryDatabase(fullProject.Items.OfType().FirstOrDefault(), assessmentSection); - AssertReferenceLine(fullProject.Items.OfType().FirstOrDefault(), assessmentSection); + var actualAssessmentSection = loadedProject.Items.OfType().FirstOrDefault(); + Assert.IsNotNull(actualAssessmentSection); + AssessmentSection expectedAssessmentSection = fullProject.Items.OfType().FirstOrDefault(); + AssertHydraulicBoundaryDatabase(expectedAssessmentSection, actualAssessmentSection); + AssertReferenceLine(expectedAssessmentSection, actualAssessmentSection); + AssertPipingFailureMechanism(expectedAssessmentSection.PipingFailureMechanism, actualAssessmentSection.PipingFailureMechanism); } [Test] @@ -157,11 +162,12 @@ Assert.AreEqual(expectedProjectName, gui.Project.Name); Assert.AreEqual(expectedProjectDescritpion, gui.Project.Description); - var assessmentSection = gui.Project.Items.OfType().FirstOrDefault(); - Assert.IsNotNull(assessmentSection); - AssertHydraulicBoundaryDatabase(fullProject.Items.OfType().FirstOrDefault(), assessmentSection); - AssertReferenceLine(fullProject.Items.OfType().FirstOrDefault(), assessmentSection); - AssertStochasticSoilModels(fullProject.Items.OfType().FirstOrDefault(), assessmentSection); + var actualAssessmentSection = gui.Project.Items.OfType().FirstOrDefault(); + Assert.IsNotNull(actualAssessmentSection); + AssessmentSection expectedAssessmentSection = fullProject.Items.OfType().FirstOrDefault(); + AssertHydraulicBoundaryDatabase(expectedAssessmentSection, actualAssessmentSection); + AssertReferenceLine(expectedAssessmentSection, actualAssessmentSection); + AssertPipingFailureMechanism(expectedAssessmentSection.PipingFailureMechanism, actualAssessmentSection.PipingFailureMechanism); } // TearDown @@ -258,12 +264,17 @@ } } - private void AssertStochasticSoilModels(AssessmentSection expectedProject, AssessmentSection project) + private void AssertPipingFailureMechanism(PipingFailureMechanism expectedPipingFailureMechanism, PipingFailureMechanism actualPipingFailureMechanism) { - var expectedModels = expectedProject.PipingFailureMechanism.StochasticSoilModels; - var actualModels = project.PipingFailureMechanism.StochasticSoilModels; + AssertStochasticSoilModels(expectedPipingFailureMechanism.StochasticSoilModels, actualPipingFailureMechanism.StochasticSoilModels); + AssertSurfaceLines(expectedPipingFailureMechanism.SurfaceLines, actualPipingFailureMechanism.SurfaceLines); + } + private void AssertStochasticSoilModels(ObservableList expectedModels, ObservableList actualModels) + { + // Precondition: Assert.Less(0, actualModels.Count); + Assert.AreEqual(expectedModels.Count, actualModels.Count); for (int i = 0; i < expectedModels.Count; i++) @@ -311,6 +322,35 @@ } } + private void AssertSurfaceLines(ICollection expectedSurfaceLines, ICollection actualSurfaceLines) + { + // Precondition: + Assert.Greater(expectedSurfaceLines.Count, 0); + + Assert.AreEqual(expectedSurfaceLines.Count, actualSurfaceLines.Count); + for (int i = 0; i < expectedSurfaceLines.Count; i++) + { + RingtoetsPipingSurfaceLine expectedSurfaceLine = expectedSurfaceLines.ElementAt(i); + RingtoetsPipingSurfaceLine actualSurfaceLine = expectedSurfaceLines.ElementAt(i); + AssertSurfaceLine(expectedSurfaceLine, actualSurfaceLine); + } + } + + private void AssertSurfaceLine(RingtoetsPipingSurfaceLine expectedSurfaceLine, RingtoetsPipingSurfaceLine actualSurfaceLine) + { + Assert.AreEqual(expectedSurfaceLine.Name, actualSurfaceLine.Name); + Assert.AreEqual(expectedSurfaceLine.ReferenceLineIntersectionWorldPoint, actualSurfaceLine.ReferenceLineIntersectionWorldPoint); + + CollectionAssert.AreEqual(expectedSurfaceLine.Points, actualSurfaceLine.Points); + + Assert.AreEqual(expectedSurfaceLine.BottomDitchDikeSide, actualSurfaceLine.BottomDitchDikeSide); + Assert.AreEqual(expectedSurfaceLine.BottomDitchPolderSide, actualSurfaceLine.BottomDitchPolderSide); + Assert.AreEqual(expectedSurfaceLine.DikeToeAtPolder, actualSurfaceLine.DikeToeAtPolder); + Assert.AreEqual(expectedSurfaceLine.DikeToeAtRiver, actualSurfaceLine.DikeToeAtRiver); + Assert.AreEqual(expectedSurfaceLine.DitchDikeSide, actualSurfaceLine.DitchDikeSide); + Assert.AreEqual(expectedSurfaceLine.DitchPolderSide, actualSurfaceLine.DitchPolderSide); + } + private void TearDownTempRingtoetsFile(string filePath) { GC.Collect(); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/FailureMechanismEntityTest.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/FailureMechanismEntityTest.cs (.../FailureMechanismEntityTest.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/FailureMechanismEntityTest.cs (.../FailureMechanismEntityTest.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -90,6 +90,27 @@ } [Test] + public void ReadAsPipingFailureMechanism_WithSurfaceLines_ReturnsNewPipingFailureMechanismWithSurfaceLinesSet() + { + // Setup + var entity = new FailureMechanismEntity + { + SurfaceLineEntities = + { + new SurfaceLineEntity(), + new SurfaceLineEntity() + } + }; + var collector = new ReadConversionCollector(); + + // Call + var failureMechanism = entity.ReadAsPipingFailureMechanism(collector); + + // Assert + Assert.AreEqual(2, failureMechanism.SurfaceLines.Count); + } + + [Test] public void ReadAsPipingFailureMechanism_WithSectionsSet_ReturnsNewPipingFailureMechanismWithFailureMechanismSectionsSet() { // Setup Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/AssessmentSectionUpdateExtensionsTest.cs =================================================================== diff -u -r213b20e92891887167ab4b031ca4a4b6250a4c2a -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/AssessmentSectionUpdateExtensionsTest.cs (.../AssessmentSectionUpdateExtensionsTest.cs) (revision 213b20e92891887167ab4b031ca4a4b6250a4c2a) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/AssessmentSectionUpdateExtensionsTest.cs (.../AssessmentSectionUpdateExtensionsTest.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -22,6 +22,8 @@ using System; using System.Data.Entity; using System.Linq; + +using Application.Ringtoets.Storage.Create; using Application.Ringtoets.Storage.DbContext; using Application.Ringtoets.Storage.Exceptions; using Application.Ringtoets.Storage.TestUtil; @@ -45,7 +47,7 @@ var section = new AssessmentSection(AssessmentSectionComposition.Dike); // Call - TestDelegate test = () => section.Update(new UpdateConversionCollector(), null); + TestDelegate test = () => section.Update(new CreateConversionCollector(), null); // Assert var paramName = Assert.Throws(test).ParamName; @@ -83,7 +85,7 @@ { using (var ringtoetsEntities = new RingtoetsEntities()) { - section.Update(new UpdateConversionCollector(), ringtoetsEntities); + section.Update(new CreateConversionCollector(), ringtoetsEntities); } }; @@ -114,7 +116,7 @@ }); // Call - TestDelegate test = () => section.Update(new UpdateConversionCollector(), ringtoetsEntities); + TestDelegate test = () => section.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert var expectedMessage = String.Format("Het object 'AssessmentSectionEntity' met id '{0}' is niet gevonden.", storageId); @@ -148,7 +150,7 @@ FillWithFailureMechanismEntities(ringtoetsEntities.FailureMechanismEntities); // Call - section.Update(new UpdateConversionCollector(), ringtoetsEntities); + section.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert Assert.AreEqual(newName, entity.Name); @@ -186,7 +188,7 @@ FillWithFailureMechanismEntities(ringtoetsEntities.FailureMechanismEntities); // Call - section.Update(new UpdateConversionCollector(), ringtoetsEntities); + section.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert Assert.AreEqual(1, entity.ReferenceLinePointEntities.Count); @@ -228,7 +230,7 @@ FillWithFailureMechanismEntities(ringtoetsEntities.FailureMechanismEntities); // Call - section.Update(new UpdateConversionCollector(), ringtoetsEntities); + section.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert Assert.AreEqual(0, ringtoetsEntities.ReferenceLinePointEntities.Count()); @@ -267,7 +269,7 @@ FillWithFailureMechanismEntities(ringtoetsEntities.FailureMechanismEntities); // Call - section.Update(new UpdateConversionCollector(), ringtoetsEntities); + section.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert Assert.AreEqual(filePath, entity.HydraulicDatabaseLocation); @@ -322,7 +324,7 @@ ringtoetsEntities.HydraulicLocationEntities.Add(hydraulicLocationEntity); // Call - section.Update(new UpdateConversionCollector(), ringtoetsEntities); + section.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert Assert.AreEqual(filePath, entity.HydraulicDatabaseLocation); @@ -367,7 +369,7 @@ FillWithFailureMechanismEntities(ringtoetsEntities.FailureMechanismEntities); // Call - section.Update(new UpdateConversionCollector(), ringtoetsEntities); + section.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert CollectionAssert.AreEqual(new[] @@ -409,7 +411,7 @@ FillWithFailureMechanismEntities(ringtoetsEntities.FailureMechanismEntities); // Call - section.Update(new UpdateConversionCollector(), ringtoetsEntities); + section.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert CollectionAssert.AreEqual(new[] @@ -523,7 +525,7 @@ FillWithFailureMechanismEntities(ringtoetsEntities.FailureMechanismEntities); // Call - section.Update(new UpdateConversionCollector(), ringtoetsEntities); + section.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert CollectionAssert.AreEqual(new[] Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/FailureMechanismBaseUpdateExtensionsTest.cs =================================================================== diff -u -rea99af5c043eadf5c2ba83b82a847ae009181191 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/FailureMechanismBaseUpdateExtensionsTest.cs (.../FailureMechanismBaseUpdateExtensionsTest.cs) (revision ea99af5c043eadf5c2ba83b82a847ae009181191) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/FailureMechanismBaseUpdateExtensionsTest.cs (.../FailureMechanismBaseUpdateExtensionsTest.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -20,15 +20,15 @@ // All rights reserved. using System; -using System.Collections.Generic; using System.Linq; + +using Application.Ringtoets.Storage.Create; using Application.Ringtoets.Storage.DbContext; 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.Calculation; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Data.TestUtil; @@ -68,7 +68,7 @@ { using (var ringtoetsEntities = new RingtoetsEntities()) { - failureMechanism.UpdateFailureMechanismSections(new UpdateConversionCollector(), null, ringtoetsEntities); + failureMechanism.UpdateFailureMechanismSections(new CreateConversionCollector(), null, ringtoetsEntities); } }; @@ -84,7 +84,7 @@ var failureMechanism = new TestFailureMechanism(); // Call - TestDelegate test = () => failureMechanism.UpdateFailureMechanismSections(new UpdateConversionCollector(), new FailureMechanismEntity(), null); + TestDelegate test = () => failureMechanism.UpdateFailureMechanismSections(new CreateConversionCollector(), new FailureMechanismEntity(), null); // Assert var paramName = Assert.Throws(test).ParamName; @@ -114,7 +114,7 @@ ringtoetsEntities.FailureMechanismEntities.Add(failureMechanismEntity); // Call - failureMechanism.UpdateFailureMechanismSections(new UpdateConversionCollector(), failureMechanismEntity, ringtoetsEntities); + failureMechanism.UpdateFailureMechanismSections(new CreateConversionCollector(), failureMechanismEntity, ringtoetsEntities); // Assert Assert.AreEqual(1, failureMechanismEntity.FailureMechanismSectionEntities.Count); @@ -158,7 +158,7 @@ ringtoetsEntities.FailureMechanismSectionEntities.Add(failureMechanismSectionEntity); // Call - failureMechanism.UpdateFailureMechanismSections(new UpdateConversionCollector(), failureMechanismEntity, ringtoetsEntities); + failureMechanism.UpdateFailureMechanismSections(new CreateConversionCollector(), failureMechanismEntity, ringtoetsEntities); // Assert Assert.AreEqual(1, failureMechanismEntity.FailureMechanismSectionEntities.Count); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/FailureMechanismSectionUpdateExtensionsTest.cs =================================================================== diff -u -r4bb55feac151da4010e81849de3103327f7f40ae -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/FailureMechanismSectionUpdateExtensionsTest.cs (.../FailureMechanismSectionUpdateExtensionsTest.cs) (revision 4bb55feac151da4010e81849de3103327f7f40ae) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/FailureMechanismSectionUpdateExtensionsTest.cs (.../FailureMechanismSectionUpdateExtensionsTest.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -21,6 +21,8 @@ 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; @@ -42,7 +44,7 @@ var section = new TestFailureMechanismSection(); // Call - TestDelegate test = () => section.Update(new UpdateConversionCollector(), null); + TestDelegate test = () => section.Update(new CreateConversionCollector(), null); // Assert var paramName = Assert.Throws(test).ParamName; @@ -80,7 +82,7 @@ { using (var ringtoetsEntities = new RingtoetsEntities()) { - section.Update(new UpdateConversionCollector(), ringtoetsEntities); + section.Update(new CreateConversionCollector(), ringtoetsEntities); } }; @@ -111,7 +113,7 @@ }); // Call - TestDelegate test = () => section.Update(new UpdateConversionCollector(), ringtoetsEntities); + TestDelegate test = () => section.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert var expectedMessage = String.Format("Het object 'FailureMechanismSectionEntity' met id '{0}' is niet gevonden.", storageId); @@ -146,7 +148,7 @@ ringtoetsEntities.FailureMechanismSectionEntities.Add(entity); // Call - section.Update(new UpdateConversionCollector(), ringtoetsEntities); + section.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert Assert.AreEqual(1, entity.FailureMechanismSectionPointEntities.Count); @@ -189,7 +191,7 @@ ringtoetsEntities.FailureMechanismSectionPointEntities.Add(pointEntity); // Call - section.Update(new UpdateConversionCollector(), ringtoetsEntities); + section.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert Assert.AreEqual(0, ringtoetsEntities.ReferenceLinePointEntities.Count()); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/GrassCoverErosionInwardsFailureMechanismUpdateExtensionsTest.cs =================================================================== diff -u -r246ebb0ea665a568e9073717d4211816220ff0fc -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/GrassCoverErosionInwardsFailureMechanismUpdateExtensionsTest.cs (.../GrassCoverErosionInwardsFailureMechanismUpdateExtensionsTest.cs) (revision 246ebb0ea665a568e9073717d4211816220ff0fc) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/GrassCoverErosionInwardsFailureMechanismUpdateExtensionsTest.cs (.../GrassCoverErosionInwardsFailureMechanismUpdateExtensionsTest.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -21,6 +21,8 @@ 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; @@ -43,7 +45,7 @@ var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); // Call - TestDelegate test = () => failureMechanism.Update(new UpdateConversionCollector(), null); + TestDelegate test = () => failureMechanism.Update(new CreateConversionCollector(), null); // Assert var paramName = Assert.Throws(test).ParamName; @@ -81,7 +83,7 @@ { using (var ringtoetsEntities = new RingtoetsEntities()) { - failureMechanism.Update(new UpdateConversionCollector(), ringtoetsEntities); + failureMechanism.Update(new CreateConversionCollector(), ringtoetsEntities); } }; @@ -112,7 +114,7 @@ }); // Call - TestDelegate test = () => failureMechanism.Update(new UpdateConversionCollector(), ringtoetsEntities); + TestDelegate test = () => failureMechanism.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert var expectedMessage = String.Format("Het object 'FailureMechanismEntity' met id '{0}' is niet gevonden.", storageId); @@ -146,7 +148,7 @@ ringtoetsEntities.FailureMechanismEntities.Add(failureMechanismEntity); // Call - failureMechanism.Update(new UpdateConversionCollector(), ringtoetsEntities); + failureMechanism.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert Assert.AreEqual(Convert.ToByte(true), failureMechanismEntity.IsRelevant); @@ -180,7 +182,7 @@ ringtoetsEntities.FailureMechanismEntities.Add(failureMechanismEntity); // Call - failureMechanism.Update(new UpdateConversionCollector(), ringtoetsEntities); + failureMechanism.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert Assert.AreEqual(1, failureMechanismEntity.FailureMechanismSectionEntities.Count); @@ -227,7 +229,7 @@ ringtoetsEntities.FailureMechanismSectionEntities.Add(failureMechanismSectionEntity); // Call - failureMechanism.Update(new UpdateConversionCollector(), ringtoetsEntities); + failureMechanism.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert Assert.AreEqual(1, failureMechanismEntity.FailureMechanismSectionEntities.Count); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/HydraulicBoundaryLocationUpdateExtensionsTest.cs =================================================================== diff -u -r75a219c391144ca71a684f46e96e5d3f0c17f170 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/HydraulicBoundaryLocationUpdateExtensionsTest.cs (.../HydraulicBoundaryLocationUpdateExtensionsTest.cs) (revision 75a219c391144ca71a684f46e96e5d3f0c17f170) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/HydraulicBoundaryLocationUpdateExtensionsTest.cs (.../HydraulicBoundaryLocationUpdateExtensionsTest.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -20,6 +20,8 @@ // 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; @@ -40,7 +42,7 @@ var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation(); // Call - TestDelegate test = () => hydraulicBoundaryLocation.Update(new UpdateConversionCollector(), null); + TestDelegate test = () => hydraulicBoundaryLocation.Update(new CreateConversionCollector(), null); // Assert var paramName = Assert.Throws(test).ParamName; @@ -78,7 +80,7 @@ { using (var ringtoetsEntities = new RingtoetsEntities()) { - hydraulicBoundaryLocation.Update(new UpdateConversionCollector(), ringtoetsEntities); + hydraulicBoundaryLocation.Update(new CreateConversionCollector(), ringtoetsEntities); } }; @@ -109,7 +111,7 @@ }); // Call - TestDelegate test = () => section.Update(new UpdateConversionCollector(), ringtoetsEntities); + TestDelegate test = () => section.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert var expectedMessage = String.Format("Het object 'HydraulicLocationEntity' met id '{0}' is niet gevonden.", storageId); @@ -153,7 +155,7 @@ ringtoetsEntities.HydraulicLocationEntities.Add(hydraulicLocationEntity); // Call - hydraulicBoundaryLocation.Update(new UpdateConversionCollector(), ringtoetsEntities); + hydraulicBoundaryLocation.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert Assert.AreEqual(newName, hydraulicLocationEntity.Name); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/PipingFailureMechanismUpdateExtensionsTest.cs =================================================================== diff -u -r4bb55feac151da4010e81849de3103327f7f40ae -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/PipingFailureMechanismUpdateExtensionsTest.cs (.../PipingFailureMechanismUpdateExtensionsTest.cs) (revision 4bb55feac151da4010e81849de3103327f7f40ae) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/PipingFailureMechanismUpdateExtensionsTest.cs (.../PipingFailureMechanismUpdateExtensionsTest.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -21,6 +21,8 @@ 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; @@ -30,6 +32,7 @@ using Rhino.Mocks; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Piping.Data; +using Ringtoets.Piping.Primitives; namespace Application.Ringtoets.Storage.Test.Update { @@ -43,7 +46,7 @@ var failureMechanism = new PipingFailureMechanism(); // Call - TestDelegate test = () => failureMechanism.Update(new UpdateConversionCollector(), null); + TestDelegate test = () => failureMechanism.Update(new CreateConversionCollector(), null); // Assert var paramName = Assert.Throws(test).ParamName; @@ -81,7 +84,7 @@ { using (var ringtoetsEntities = new RingtoetsEntities()) { - failureMechanism.Update(new UpdateConversionCollector(), ringtoetsEntities); + failureMechanism.Update(new CreateConversionCollector(), ringtoetsEntities); } }; @@ -112,7 +115,7 @@ }); // Call - TestDelegate test = () => failureMechanism.Update(new UpdateConversionCollector(), ringtoetsEntities); + TestDelegate test = () => failureMechanism.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert var expectedMessage = String.Format("Het object 'FailureMechanismEntity' met id '{0}' is niet gevonden.", storageId); @@ -146,7 +149,7 @@ ringtoetsEntities.FailureMechanismEntities.Add(failureMechanismEntity); // Call - failureMechanism.Update(new UpdateConversionCollector(), ringtoetsEntities); + failureMechanism.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert Assert.AreEqual(Convert.ToByte(true), failureMechanismEntity.IsRelevant); @@ -182,7 +185,7 @@ ringtoetsEntities.FailureMechanismEntities.Add(failureMechanismEntity); // Call - failureMechanism.Update(new UpdateConversionCollector(), ringtoetsEntities); + failureMechanism.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert Assert.AreEqual(1, failureMechanismEntity.StochasticSoilModelEntities.Count); @@ -228,7 +231,7 @@ ringtoetsEntities.StochasticSoilModelEntities.Add(stochasticSoilModelEntity); // Call - failureMechanism.Update(new UpdateConversionCollector(), ringtoetsEntities); + failureMechanism.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert Assert.AreEqual(1, failureMechanismEntity.StochasticSoilModelEntities.Count); @@ -237,6 +240,87 @@ } [Test] + public void Update_ContextWithNewSurfaceLine_SurfaceLineEntitiesUpdated() + { + // Setup + MockRepository mocks = new MockRepository(); + var ringtoetsEntities = RingtoetsEntitiesHelper.Create(mocks); + mocks.ReplayAll(); + + var failureMechanism = new PipingFailureMechanism + { + StorageId = 1, + IsRelevant = true + }; + failureMechanism.SurfaceLines.Add(new RingtoetsPipingSurfaceLine + { + ReferenceLineIntersectionWorldPoint = new Point2D(1.1, 2.2) + }); + + var failureMechanismEntity = new FailureMechanismEntity + { + FailureMechanismEntityId = 1, + IsRelevant = Convert.ToByte(false) + }; + ringtoetsEntities.FailureMechanismEntities.Add(failureMechanismEntity); + + // Call + failureMechanism.Update(new CreateConversionCollector(), ringtoetsEntities); + + // Assert + Assert.AreEqual(1, failureMechanismEntity.SurfaceLineEntities.Count); + + mocks.VerifyAll(); + } + + [Test] + public void Update_ContextWithUpdatedSurfaceLineEntity_NoNewSurfaceLineEntitiesAdded() + { + // Setup + MockRepository mocks = new MockRepository(); + var ringtoetsEntities = RingtoetsEntitiesHelper.Create(mocks); + mocks.ReplayAll(); + + const long surfaceLineId = 23; + var surfaceLine = new RingtoetsPipingSurfaceLine + { + StorageId = surfaceLineId, + ReferenceLineIntersectionWorldPoint = new Point2D(45.67, 34.46) + }; + + const long failureMechanismId = 1; + var failureMechanism = new PipingFailureMechanism + { + StorageId = failureMechanismId, + }; + failureMechanism.SurfaceLines.Add(surfaceLine); + + var surfaceLineEntity = new SurfaceLineEntity + { + SurfaceLineEntityId = surfaceLineId + }; + var failureMechanismEntity = new FailureMechanismEntity + { + FailureMechanismEntityId = failureMechanismId, + SurfaceLineEntities = + { + surfaceLineEntity + } + }; + + ringtoetsEntities.FailureMechanismEntities.Add(failureMechanismEntity); + ringtoetsEntities.SurfaceLineEntities.Add(surfaceLineEntity); + + // Call + failureMechanism.Update(new CreateConversionCollector(), ringtoetsEntities); + + // Assert + Assert.AreEqual(1, failureMechanismEntity.SurfaceLineEntities.Count); + + mocks.VerifyAll(); + } + + [Test] public void Update_ContextWithNewFailureMechanismSections_FailureMechanismSectionsAdded() { // Setup @@ -259,7 +343,7 @@ ringtoetsEntities.FailureMechanismEntities.Add(failureMechanismEntity); // Call - failureMechanism.Update(new UpdateConversionCollector(), ringtoetsEntities); + failureMechanism.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert Assert.AreEqual(1, failureMechanismEntity.FailureMechanismSectionEntities.Count); @@ -303,7 +387,7 @@ ringtoetsEntities.FailureMechanismSectionEntities.Add(failureMechanismSectionEntity); // Call - failureMechanism.Update(new UpdateConversionCollector(), ringtoetsEntities); + failureMechanism.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert Assert.AreEqual(1, failureMechanismEntity.FailureMechanismSectionEntities.Count); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/PipingSoilLayerUpdateExtensionsTest.cs =================================================================== diff -u -r75a219c391144ca71a684f46e96e5d3f0c17f170 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/PipingSoilLayerUpdateExtensionsTest.cs (.../PipingSoilLayerUpdateExtensionsTest.cs) (revision 75a219c391144ca71a684f46e96e5d3f0c17f170) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/PipingSoilLayerUpdateExtensionsTest.cs (.../PipingSoilLayerUpdateExtensionsTest.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -20,6 +20,8 @@ // 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; @@ -40,7 +42,7 @@ var pipingSoilLayer = new PipingSoilLayer(0.5); // Call - TestDelegate test = () => pipingSoilLayer.Update(new UpdateConversionCollector(), null); + TestDelegate test = () => pipingSoilLayer.Update(new CreateConversionCollector(), null); // Assert var paramName = Assert.Throws(test).ParamName; @@ -78,7 +80,7 @@ { using (var ringtoetsEntities = new RingtoetsEntities()) { - pipingSoilLayer.Update(new UpdateConversionCollector(), ringtoetsEntities); + pipingSoilLayer.Update(new CreateConversionCollector(), ringtoetsEntities); } }; @@ -111,7 +113,7 @@ }); // Call - TestDelegate test = () => pipingSoilLayer.Update(new UpdateConversionCollector(), ringtoetsEntities); + TestDelegate test = () => pipingSoilLayer.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert var expectedMessage = String.Format("Het object 'SoilLayerEntity' met id '{0}' is niet gevonden.", storageId); @@ -148,7 +150,7 @@ ringtoetsEntities.SoilLayerEntities.Add(soilLayerEntity); // Call - pipingSoilLayer.Update(new UpdateConversionCollector(), ringtoetsEntities); + pipingSoilLayer.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert Assert.AreEqual(Convert.ToDouble(newTop), Convert.ToDouble(soilLayerEntity.Top), 1e-6); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/PipingSoilProfileUpdateExtensionsTest.cs =================================================================== diff -u -r75a219c391144ca71a684f46e96e5d3f0c17f170 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/PipingSoilProfileUpdateExtensionsTest.cs (.../PipingSoilProfileUpdateExtensionsTest.cs) (revision 75a219c391144ca71a684f46e96e5d3f0c17f170) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/PipingSoilProfileUpdateExtensionsTest.cs (.../PipingSoilProfileUpdateExtensionsTest.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -21,6 +21,8 @@ using System; using System.Collections.Generic; + +using Application.Ringtoets.Storage.Create; using Application.Ringtoets.Storage.DbContext; using Application.Ringtoets.Storage.Exceptions; using Application.Ringtoets.Storage.TestUtil; @@ -42,7 +44,7 @@ var soilProfile = new TestPipingSoilProfile(); // Call - TestDelegate test = () => soilProfile.Update(new UpdateConversionCollector(), null); + TestDelegate test = () => soilProfile.Update(new CreateConversionCollector(), null); // Assert var paramName = Assert.Throws(test).ParamName; @@ -80,7 +82,7 @@ { using (var ringtoetsEntities = new RingtoetsEntities()) { - soilProfile.Update(new UpdateConversionCollector(), ringtoetsEntities); + soilProfile.Update(new CreateConversionCollector(), ringtoetsEntities); } }; @@ -117,7 +119,7 @@ }); // Call - TestDelegate test = () => soilProfile.Update(new UpdateConversionCollector(), ringtoetsEntities); + TestDelegate test = () => soilProfile.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert var expectedMessage = String.Format("Het object 'SoilProfileEntity' met id '{0}' is niet gevonden.", storageId); @@ -157,7 +159,7 @@ ringtoetsEntities.SoilProfileEntities.Add(profileEntity); // Call - soilProfile.Update(new UpdateConversionCollector(), ringtoetsEntities); + soilProfile.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert Assert.AreEqual(newName, profileEntity.Name); @@ -205,7 +207,7 @@ ringtoetsEntities.SoilLayerEntities.Add(soilLayerEntity); // Call - soilProfile.Update(new UpdateConversionCollector(), ringtoetsEntities); + soilProfile.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert CollectionAssert.AreEqual(new [] { soilLayerEntity }, profileEntity.SoilLayerEntities); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/ProjectUpdateExtensionsTest.cs =================================================================== diff -u -r213b20e92891887167ab4b031ca4a4b6250a4c2a -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/ProjectUpdateExtensionsTest.cs (.../ProjectUpdateExtensionsTest.cs) (revision 213b20e92891887167ab4b031ca4a4b6250a4c2a) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/ProjectUpdateExtensionsTest.cs (.../ProjectUpdateExtensionsTest.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -20,6 +20,8 @@ // 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; @@ -42,7 +44,7 @@ var project = new Project(); // Call - TestDelegate test = () => project.Update(new UpdateConversionCollector(), null); + TestDelegate test = () => project.Update(new CreateConversionCollector(), null); // Assert var paramName = Assert.Throws(test).ParamName; @@ -80,7 +82,7 @@ { using (var ringtoetsEntities = new RingtoetsEntities()) { - project.Update(new UpdateConversionCollector(), ringtoetsEntities); + project.Update(new CreateConversionCollector(), ringtoetsEntities); } }; @@ -109,7 +111,7 @@ }); // Call - TestDelegate test = () => project.Update(new UpdateConversionCollector(), ringtoetsEntities); + TestDelegate test = () => project.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert var expectedMessage = String.Format("Het object 'ProjectEntity' met id '{0}' is niet gevonden.", storageId); @@ -144,7 +146,7 @@ }); // Call - TestDelegate test = () => project.Update(new UpdateConversionCollector(), ringtoetsEntities); + TestDelegate test = () => project.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert var expectedMessage = String.Format("Het object 'ProjectEntity' met id '{0}' is niet gevonden.", storageId); @@ -183,7 +185,7 @@ ringtoetsEntities.ProjectEntities.Add(entity); // Call - project.Update(new UpdateConversionCollector(), ringtoetsEntities); + project.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert Assert.AreEqual(newDescription, entity.Description); @@ -216,7 +218,7 @@ ringtoetsEntities.ProjectEntities.Add(entity); // Call - project.Update(new UpdateConversionCollector(), ringtoetsEntities); + project.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert Assert.AreEqual(1, entity.AssessmentSectionEntities.Count); @@ -313,7 +315,7 @@ }); // Call - project.Update(new UpdateConversionCollector(), ringtoetsEntities); + project.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert CollectionAssert.AreEqual(new[] Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/RingtoetsPipingSurfaceLineUpdateExtensionsTest.cs =================================================================== diff -u -r9e1b97e9540df6cbd635120135c83de0260aa6d1 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/RingtoetsPipingSurfaceLineUpdateExtensionsTest.cs (.../RingtoetsPipingSurfaceLineUpdateExtensionsTest.cs) (revision 9e1b97e9540df6cbd635120135c83de0260aa6d1) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/RingtoetsPipingSurfaceLineUpdateExtensionsTest.cs (.../RingtoetsPipingSurfaceLineUpdateExtensionsTest.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -64,7 +64,7 @@ public void Update_RingtoetsEntitiesIsNull_ThrowArgumentNullException() { // Setup - var collector = new UpdateConversionCollector(); + var collector = new CreateConversionCollector(); RingtoetsPipingSurfaceLine surfaceLine = CreateSavedSurfaceLineWithData(); @@ -84,7 +84,7 @@ var context = RingtoetsEntitiesHelper.Create(mocks); mocks.ReplayAll(); - var collector = new UpdateConversionCollector(); + var collector = new CreateConversionCollector(); var surfaceLine = new RingtoetsPipingSurfaceLine(); @@ -121,7 +121,7 @@ }; context.SurfaceLineEntities.Add(entity); - var collector = new UpdateConversionCollector(); + var collector = new CreateConversionCollector(); // Call surfaceLine.Update(collector, context); @@ -158,7 +158,7 @@ // Precondition CollectionAssert.IsEmpty(context.SurfaceLinePointEntities); - var collector = new UpdateConversionCollector(); + var collector = new CreateConversionCollector(); // Call surfaceLine.Update(collector, context); @@ -209,7 +209,7 @@ context.SurfaceLinePointEntities.Add(pointEntity); } - var updateCollector = new UpdateConversionCollector(); + var updateCollector = new CreateConversionCollector(); // Call surfaceLine.Update(updateCollector, context); @@ -245,7 +245,7 @@ }; context.SurfaceLineEntities.Add(entity); - var collector = new UpdateConversionCollector(); + var collector = new CreateConversionCollector(); // Call surfaceLine.Update(collector, context); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/StochasticSoilModelUpdateExtensionsTest.cs =================================================================== diff -u -r75a219c391144ca71a684f46e96e5d3f0c17f170 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/StochasticSoilModelUpdateExtensionsTest.cs (.../StochasticSoilModelUpdateExtensionsTest.cs) (revision 75a219c391144ca71a684f46e96e5d3f0c17f170) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/StochasticSoilModelUpdateExtensionsTest.cs (.../StochasticSoilModelUpdateExtensionsTest.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -20,6 +20,8 @@ // 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; @@ -43,7 +45,7 @@ var soilModel = new TestStochasticSoilModel(); // Call - TestDelegate test = () => soilModel.Update(new UpdateConversionCollector(), null); + TestDelegate test = () => soilModel.Update(new CreateConversionCollector(), null); // Assert var paramName = Assert.Throws(test).ParamName; @@ -81,7 +83,7 @@ { using (var ringtoetsEntities = new RingtoetsEntities()) { - soilModel.Update(new UpdateConversionCollector(), ringtoetsEntities); + soilModel.Update(new CreateConversionCollector(), ringtoetsEntities); } }; @@ -114,7 +116,7 @@ }); // Call - TestDelegate test = () => soilModel.Update(new UpdateConversionCollector(), ringtoetsEntities); + TestDelegate test = () => soilModel.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert var expectedMessage = String.Format("Het object 'StochasticSoilModelEntity' met id '{0}' is niet gevonden.", storageId); @@ -150,7 +152,7 @@ ringtoetsEntities.StochasticSoilModelEntities.Add(modelEntity); // Call - soilModel.Update(new UpdateConversionCollector(), ringtoetsEntities); + soilModel.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert Assert.AreEqual(newName, modelEntity.Name); @@ -188,7 +190,7 @@ ringtoetsEntities.StochasticSoilModelEntities.Add(soilModelEntity); // Call - soilModel.Update(new UpdateConversionCollector(), ringtoetsEntities); + soilModel.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert Assert.AreEqual(1, soilModelEntity.StochasticSoilProfileEntities.Count); @@ -235,7 +237,7 @@ ringtoetsEntities.StochasticSoilProfileEntities.Add(soilProfileEntity); // Call - soilModel.Update(new UpdateConversionCollector(), ringtoetsEntities); + soilModel.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert CollectionAssert.AreEqual(new [] {soilProfileEntity}, soilModelEntity.StochasticSoilProfileEntities); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/StochasticSoilProfileUpdateExtensionsTest.cs =================================================================== diff -u -r75a219c391144ca71a684f46e96e5d3f0c17f170 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/StochasticSoilProfileUpdateExtensionsTest.cs (.../StochasticSoilProfileUpdateExtensionsTest.cs) (revision 75a219c391144ca71a684f46e96e5d3f0c17f170) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/StochasticSoilProfileUpdateExtensionsTest.cs (.../StochasticSoilProfileUpdateExtensionsTest.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -20,6 +20,8 @@ // 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; @@ -42,7 +44,7 @@ var soilProfile = new TestStochasticSoilProfile(); // Call - TestDelegate test = () => soilProfile.Update(new UpdateConversionCollector(), null); + TestDelegate test = () => soilProfile.Update(new CreateConversionCollector(), null); // Assert var paramName = Assert.Throws(test).ParamName; @@ -80,7 +82,7 @@ { using (var ringtoetsEntities = new RingtoetsEntities()) { - soilProfile.Update(new UpdateConversionCollector(), ringtoetsEntities); + soilProfile.Update(new CreateConversionCollector(), ringtoetsEntities); } }; @@ -112,7 +114,7 @@ }); // Call - TestDelegate test = () => soilProfile.Update(new UpdateConversionCollector(), ringtoetsEntities); + TestDelegate test = () => soilProfile.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert var expectedMessage = String.Format("Het object 'StochasticSoilProfileEntity' met id '{0}' is niet gevonden.", storageId); @@ -147,7 +149,7 @@ ringtoetsEntities.StochasticSoilProfileEntities.Add(soilProfileEntity); // Call - soilProfile.Update(new UpdateConversionCollector(), ringtoetsEntities); + soilProfile.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert Assert.AreEqual(newProbability, soilProfileEntity.Probability); @@ -188,7 +190,7 @@ ringtoetsEntities.SoilProfileEntities.Add(soilProfileEntity); // Call - soilProfile.Update(new UpdateConversionCollector(), ringtoetsEntities); + soilProfile.Update(new CreateConversionCollector(), ringtoetsEntities); // Assert Assert.AreSame(soilProfileEntity, stochasticSoilProfileEntity.SoilProfileEntity); Fisheye: Tag 36ed0869d04cd54d2aee0abbd0ec88100334e097 refers to a dead (removed) revision in file `Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/UpdateConversionCollectorTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil.Test/Application.Ringtoets.Storage.TestUtil.Test.csproj =================================================================== diff -u -rcb5d2139148256919e697cc6b25011513ac8d6ad -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil.Test/Application.Ringtoets.Storage.TestUtil.Test.csproj (.../Application.Ringtoets.Storage.TestUtil.Test.csproj) (revision cb5d2139148256919e697cc6b25011513ac8d6ad) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil.Test/Application.Ringtoets.Storage.TestUtil.Test.csproj (.../Application.Ringtoets.Storage.TestUtil.Test.csproj) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -101,6 +101,14 @@ {11F1F874-45AF-43E4-8AE5-15A5C9593E28} Ringtoets.Integration.Data + + {ce994cc9-6f6a-48ac-b4be-02c30a21f4db} + Ringtoets.Piping.Data + + + {14c6f716-64e2-4bc4-a1ef-05865fcefa4c} + Ringtoets.Piping.Primitives + {50963F12-448C-41BA-A62C-CDB0AB8D21E0} Application.Ringtoets.Storage Index: Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil.Test/RingtoetsProjectHelperTest.cs =================================================================== diff -u -r903f178ab0fc6f4b6f7f3ac56a7fb9b9dd9dca95 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil.Test/RingtoetsProjectHelperTest.cs (.../RingtoetsProjectHelperTest.cs) (revision 903f178ab0fc6f4b6f7f3ac56a7fb9b9dd9dca95) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil.Test/RingtoetsProjectHelperTest.cs (.../RingtoetsProjectHelperTest.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -21,9 +21,13 @@ using System.Linq; using Core.Common.Base.Data; +using Core.Common.Base.Geometry; + using NUnit.Framework; using Ringtoets.HydraRing.Data; using Ringtoets.Integration.Data; +using Ringtoets.Piping.Data; +using Ringtoets.Piping.Primitives; namespace Application.Ringtoets.Storage.TestUtil.Test { @@ -46,6 +50,7 @@ double locationX = 152.3; double locationY = 2938.5; double designWaterLevel = 12.4; + // Call Project project = RingtoetsProjectHelper.GetFullTestProject(); @@ -68,6 +73,47 @@ Assert.AreEqual(locationX, hydraulicBoundaryLocation.Location.X); Assert.AreEqual(locationY, hydraulicBoundaryLocation.Location.Y); Assert.AreEqual(designWaterLevel, hydraulicBoundaryLocation.DesignWaterLevel); + + PipingFailureMechanism pipingFailureMechanism = assessmentSection.PipingFailureMechanism; + Assert.AreEqual(1, pipingFailureMechanism.StochasticSoilModels.Count); + StochasticSoilModel soilModel = pipingFailureMechanism.StochasticSoilModels[0]; + Assert.AreEqual(-1, soilModel.Id); + Assert.AreEqual("modelName", soilModel.Name); + Assert.AreEqual("modelSegmentName", soilModel.SegmentName); + Assert.AreEqual(2, soilModel.StochasticSoilProfiles.Count); + StochasticSoilProfile stochasticSoilProfile1 = soilModel.StochasticSoilProfiles[0]; + Assert.AreEqual(0.2, stochasticSoilProfile1.Probability); + Assert.AreEqual(SoilProfileType.SoilProfile1D, stochasticSoilProfile1.SoilProfileType); + Assert.AreEqual(-1, stochasticSoilProfile1.SoilProfileId); + StochasticSoilProfile stochasticSoilProfile2 = soilModel.StochasticSoilProfiles[1]; + Assert.AreEqual(0.8, stochasticSoilProfile2.Probability); + Assert.AreEqual(SoilProfileType.SoilProfile1D, stochasticSoilProfile2.SoilProfileType); + Assert.AreEqual(-1, stochasticSoilProfile2.SoilProfileId); + + Assert.AreEqual(1, pipingFailureMechanism.SurfaceLines.Count); + RingtoetsPipingSurfaceLine surfaceLine = pipingFailureMechanism.SurfaceLines.First(); + Assert.AreEqual("Surfaceline", surfaceLine.Name); + Assert.AreEqual(new Point2D(4.0, 6.0), surfaceLine.ReferenceLineIntersectionWorldPoint); + var geometryPoints = new[] + { + new Point3D(6.0, 6.0, -2.3), + new Point3D(5.8, 6.0, -2.3), + new Point3D(5.6, 6.0, 3.4), + new Point3D(4.2, 6.0, 3.5), + new Point3D(4.0, 6.0, 0.5), + new Point3D(3.8, 6.0, 0.5), + new Point3D(3.6, 6.0, 0.2), + new Point3D(3.4, 6.0, 0.25), + new Point3D(3.2, 6.0, 0.5), + new Point3D(3.0, 6.0, 0.5) + }; + CollectionAssert.AreEqual(geometryPoints, surfaceLine.Points); + Assert.AreSame(surfaceLine.Points[1], surfaceLine.DikeToeAtRiver); + Assert.AreSame(surfaceLine.Points[4], surfaceLine.DikeToeAtPolder); + Assert.AreSame(surfaceLine.Points[5], surfaceLine.DitchDikeSide); + Assert.AreSame(surfaceLine.Points[6], surfaceLine.BottomDitchDikeSide); + Assert.AreSame(surfaceLine.Points[7], surfaceLine.BottomDitchPolderSide); + Assert.AreSame(surfaceLine.Points[8], surfaceLine.DitchPolderSide); } } } \ No newline at end of file Index: Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsProjectHelper.cs =================================================================== diff -u -r6d514ec60f68620d78015ac58ba6a966ef6b14e3 -r36ed0869d04cd54d2aee0abbd0ec88100334e097 --- Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsProjectHelper.cs (.../RingtoetsProjectHelper.cs) (revision 6d514ec60f68620d78015ac58ba6a966ef6b14e3) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsProjectHelper.cs (.../RingtoetsProjectHelper.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) @@ -71,13 +71,50 @@ } } } + }, + SurfaceLines = + { + GetSurfaceLine() } } } } }; } + private static RingtoetsPipingSurfaceLine GetSurfaceLine() + { + var surfaceLine = new RingtoetsPipingSurfaceLine + { + Name = "Surfaceline", + ReferenceLineIntersectionWorldPoint = new Point2D(4.0, 6.0) + }; + + var geometryPoints = new[] + { + new Point3D(6.0, 6.0, -2.3), + new Point3D(5.8, 6.0, -2.3), // Dike toe at river + new Point3D(5.6, 6.0, 3.4), + new Point3D(4.2, 6.0, 3.5), + new Point3D(4.0, 6.0, 0.5), // Dike toe at polder + new Point3D(3.8, 6.0, 0.5), // Ditch dike side + new Point3D(3.6, 6.0, 0.2), // Bottom ditch dike side + new Point3D(3.4, 6.0, 0.25), // Bottom ditch polder side + new Point3D(3.2, 6.0, 0.5), // Ditch polder side + new Point3D(3.0, 6.0, 0.5), + }; + surfaceLine.SetGeometry(geometryPoints); + + surfaceLine.SetDikeToeAtRiverAt(geometryPoints[1]); + surfaceLine.SetDikeToeAtPolderAt(geometryPoints[4]); + surfaceLine.SetDitchDikeSideAt(geometryPoints[5]); + surfaceLine.SetBottomDitchDikeSideAt(geometryPoints[6]); + surfaceLine.SetBottomDitchPolderSideAt(geometryPoints[7]); + surfaceLine.SetDitchPolderSideAt(geometryPoints[8]); + + return surfaceLine; + } + private static ReferenceLine GetReferenceLine() { IEnumerable points = new[]