Index: Ringtoets/Common/src/Ringtoets.Common.Data/UpdateDataStrategies/UpdateDataStrategyBase.cs =================================================================== diff -u -r3e253f74f13c8f30551ec1135e6719b40074de89 -r8d3579e3b7a7c43620023abba50a7f33bf480185 --- Ringtoets/Common/src/Ringtoets.Common.Data/UpdateDataStrategies/UpdateDataStrategyBase.cs (.../UpdateDataStrategyBase.cs) (revision 3e253f74f13c8f30551ec1135e6719b40074de89) +++ Ringtoets/Common/src/Ringtoets.Common.Data/UpdateDataStrategies/UpdateDataStrategyBase.cs (.../UpdateDataStrategyBase.cs) (revision 8d3579e3b7a7c43620023abba50a7f33bf480185) @@ -141,7 +141,7 @@ TTargetData[] objectsToBeUpdated = GetObjectsToBeUpdated(targetDataCollection, importedObjects).ToArray(); var affectedObjects = new List(); - if (objectsToBeAdded.Any() || objectsToBeRemoved.Any() || objectsToBeUpdated.Any()) + if (objectsToBeAdded.Any() || objectsToBeRemoved.Any()) { affectedObjects.Add(targetDataCollection); } Index: Ringtoets/Common/test/Ringtoets.Common.Data.Test/UpdateDataStrategies/UpdateDataStrategyBaseTest.cs =================================================================== diff -u -r3e253f74f13c8f30551ec1135e6719b40074de89 -r8d3579e3b7a7c43620023abba50a7f33bf480185 --- Ringtoets/Common/test/Ringtoets.Common.Data.Test/UpdateDataStrategies/UpdateDataStrategyBaseTest.cs (.../UpdateDataStrategyBaseTest.cs) (revision 3e253f74f13c8f30551ec1135e6719b40074de89) +++ Ringtoets/Common/test/Ringtoets.Common.Data.Test/UpdateDataStrategies/UpdateDataStrategyBaseTest.cs (.../UpdateDataStrategyBaseTest.cs) (revision 8d3579e3b7a7c43620023abba50a7f33bf480185) @@ -276,14 +276,7 @@ CollectionAssert.IsEmpty(strategy.RemoveDataCallArguments); CollectionAssert.AreEqual(currentCollection, collection); - - IEnumerable expectedAffectedObjects = new IObservable[] - { - collection, - currentCollection[0], - currentCollection[1] - }; - CollectionAssert.AreEqual(expectedAffectedObjects, affectedObjects); + CollectionAssert.AreEqual(currentCollection, affectedObjects); } [Test] @@ -427,12 +420,12 @@ importedItems, "path"); - IEnumerable expectedAffectedObjects = new IObservable[] + IEnumerable expectedAffectedObjects = new[] { - collection, itemOne, itemTwo }; + CollectionAssert.AreEqual(expectedAffectedObjects, affectedObjects); } Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs =================================================================== diff -u -rd8685648467a4eb833f0512461ecf1acbc513484 -r8d3579e3b7a7c43620023abba50a7f33bf480185 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision d8685648467a4eb833f0512461ecf1acbc513484) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision 8d3579e3b7a7c43620023abba50a7f33bf480185) @@ -186,6 +186,7 @@ pipingFailureMechanismObserver.Dispose(); pipingInputObserver.Dispose(); pipingCalculationObserver.Dispose(); + pipingSurfaceLineObserver.Dispose(); pipingCalculationGroupObserver.Dispose(); pipingStochasticSoilModelsObserver.Dispose(); Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismView.cs =================================================================== diff -u -r1d7f9c7875b22fe69fd5b1a32b2bc817dd6cf192 -r8d3579e3b7a7c43620023abba50a7f33bf480185 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismView.cs (.../PipingFailureMechanismView.cs) (revision 1d7f9c7875b22fe69fd5b1a32b2bc817dd6cf192) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismView.cs (.../PipingFailureMechanismView.cs) (revision 8d3579e3b7a7c43620023abba50a7f33bf480185) @@ -32,6 +32,7 @@ using Ringtoets.Common.Forms.Views; using Ringtoets.Piping.Data; using Ringtoets.Piping.Forms.PresentationObjects; +using Ringtoets.Piping.Primitives; using PipingDataResources = Ringtoets.Piping.Data.Properties.Resources; namespace Ringtoets.Piping.Forms.Views @@ -50,6 +51,7 @@ private readonly RecursiveObserver calculationInputObserver; private readonly RecursiveObserver calculationGroupObserver; private readonly RecursiveObserver calculationObserver; + private readonly RecursiveObserver surfaceLineObserver; private readonly MapDataCollection mapDataCollection; private readonly MapLineData referenceLineMapData; @@ -89,6 +91,8 @@ calculationGroupObserver = new RecursiveObserver(UpdateMapData, pcg => pcg.Children); calculationObserver = new RecursiveObserver(UpdateMapData, pcg => pcg.Children); + surfaceLineObserver = new RecursiveObserver(UpdateMapData, rpslc => rpslc); + mapDataCollection = new MapDataCollection(PipingDataResources.PipingFailureMechanism_DisplayName); referenceLineMapData = RingtoetsMapDataFactory.CreateReferenceLineMapData(); hydraulicBoundaryLocationsMapData = RingtoetsMapDataFactory.CreateHydraulicBoundaryLocationsMapData(); @@ -129,6 +133,7 @@ calculationInputObserver.Observable = null; calculationGroupObserver.Observable = null; calculationObserver.Observable = null; + surfaceLineObserver.Observable = null; mapControl.RemoveAllData(); } @@ -142,6 +147,7 @@ calculationInputObserver.Observable = data.WrappedData.CalculationsGroup; calculationGroupObserver.Observable = data.WrappedData.CalculationsGroup; calculationObserver.Observable = data.WrappedData.CalculationsGroup; + surfaceLineObserver.Observable = data.WrappedData.SurfaceLines; SetMapDataFeatures(); Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismViewTest.cs =================================================================== diff -u -rd71d12fa277ebebb488ccc434cb59bed32c0755b -r8d3579e3b7a7c43620023abba50a7f33bf480185 --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismViewTest.cs (.../PipingFailureMechanismViewTest.cs) (revision d71d12fa277ebebb488ccc434cb59bed32c0755b) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismViewTest.cs (.../PipingFailureMechanismViewTest.cs) (revision 8d3579e3b7a7c43620023abba50a7f33bf480185) @@ -469,7 +469,7 @@ MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(newHydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); } } - + [Test] public void UpdateObserver_ReferenceLineUpdated_MapDataUpdated() { @@ -552,6 +552,38 @@ } [Test] + public void UpdateObserver_SurfaceLineUpdated_MapDataUpdated() + { + // Setup + using (var view = new PipingFailureMechanismView()) + { + var map = (MapControl) view.Controls[0]; + var surfaceLine = new RingtoetsPipingSurfaceLine(); + var failureMechanism = new PipingFailureMechanism(); + failureMechanism.SurfaceLines.AddRange(new[] + { + surfaceLine + }, "path"); + var failureMechanismContext = new PipingFailureMechanismContext(failureMechanism, new ObservableTestAssessmentSectionStub()); + + view.Data = failureMechanismContext; + + surfaceLine.SetGeometry(new[] + { + new Point3D(7, 8, 9), + new Point3D(10, 11, 12) + }); + + // Call + surfaceLine.NotifyObservers(); + + // Assert + var surfaceLineMapData = (MapLineData) map.Data.Collection.ElementAt(surfaceLinesIndex); + AssertSurfacelinesMapData(failureMechanism.SurfaceLines, surfaceLineMapData); + } + } + + [Test] public void UpdateObserver_FailureMechanismSectionsUpdated_MapDataUpdated() { // Setup Index: Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/FileImporter/RingtoetsPipingSurfaceLineUpdateDataStrategyTest.cs =================================================================== diff -u -r3e253f74f13c8f30551ec1135e6719b40074de89 -r8d3579e3b7a7c43620023abba50a7f33bf480185 --- Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/FileImporter/RingtoetsPipingSurfaceLineUpdateDataStrategyTest.cs (.../RingtoetsPipingSurfaceLineUpdateDataStrategyTest.cs) (revision 3e253f74f13c8f30551ec1135e6719b40074de89) +++ Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/FileImporter/RingtoetsPipingSurfaceLineUpdateDataStrategyTest.cs (.../RingtoetsPipingSurfaceLineUpdateDataStrategyTest.cs) (revision 8d3579e3b7a7c43620023abba50a7f33bf480185) @@ -460,9 +460,8 @@ Assert.AreSame(targetSurfaceLine, targetCollection[0]); Assert.AreEqual(readSurfaceLine, targetSurfaceLine); - CollectionAssert.AreEqual(new IObservable[] + CollectionAssert.AreEqual(new[] { - targetCollection, targetSurfaceLine }, affectedObjects); } @@ -703,7 +702,6 @@ CollectionAssert.AreEquivalent(new IObservable[] { - collection, affectedCalculation, affectedInput, affectedSurfaceLine @@ -752,8 +750,7 @@ }; var failureMechanism = new PipingFailureMechanism(); - RingtoetsPipingSurfaceLineCollection surfaceLineCollection = failureMechanism.SurfaceLines; - surfaceLineCollection.AddRange(new[] + failureMechanism.SurfaceLines.AddRange(new[] { surfaceLine }, "path"); @@ -770,7 +767,7 @@ var strategy = new RingtoetsPipingSurfaceLineUpdateDataStrategy(failureMechanism); // Call - IEnumerable affectedObjects = strategy.UpdateSurfaceLinesWithImportedData(surfaceLineCollection, + IEnumerable affectedObjects = strategy.UpdateSurfaceLinesWithImportedData(failureMechanism.SurfaceLines, new[] { importedSurfaceLine @@ -780,7 +777,6 @@ PipingInput calculationInput = calculation.InputParameters; CollectionAssert.AreEquivalent(new IObservable[] { - surfaceLineCollection, surfaceLine, calculationInput }, affectedObjects); @@ -845,8 +841,7 @@ var failureMechanism = new PipingFailureMechanism(); failureMechanism.CalculationsGroup.Children.Add(calculation); - RingtoetsPipingSurfaceLineCollection surfaceLineCollection = failureMechanism.SurfaceLines; - surfaceLineCollection.AddRange(new[] + failureMechanism.SurfaceLines.AddRange(new[] { surfaceLine }, "path"); @@ -862,7 +857,7 @@ var strategy = new RingtoetsPipingSurfaceLineUpdateDataStrategy(failureMechanism); // Call - IEnumerable affectedObjects = strategy.UpdateSurfaceLinesWithImportedData(surfaceLineCollection, + IEnumerable affectedObjects = strategy.UpdateSurfaceLinesWithImportedData(failureMechanism.SurfaceLines, new[] { importedSurfaceLine @@ -872,7 +867,6 @@ PipingInput calculationInput = calculation.InputParameters; CollectionAssert.AreEquivalent(new IObservable[] { - surfaceLineCollection, surfaceLine, calculationInput }, affectedObjects); @@ -935,7 +929,7 @@ // Call IEnumerable affectedObjects = strategy.UpdateSurfaceLinesWithImportedData(failureMechanism.SurfaceLines, - Enumerable.Empty(), + Enumerable.Empty(), "path").ToArray(); // Assert @@ -1019,8 +1013,7 @@ failureMechanism.CalculationsGroup.Children.Add(affectedCalculation); failureMechanism.CalculationsGroup.Children.Add(unAffectedCalculation); - RingtoetsPipingSurfaceLineCollection surfaceLineCollection = failureMechanism.SurfaceLines; - surfaceLineCollection.AddRange(new[] + failureMechanism.SurfaceLines.AddRange(new[] { affectedSurfaceLine }, "path"); @@ -1036,7 +1029,7 @@ var strategy = new RingtoetsPipingSurfaceLineUpdateDataStrategy(failureMechanism); // Call - IEnumerable affectedObjects = strategy.UpdateSurfaceLinesWithImportedData(surfaceLineCollection, + IEnumerable affectedObjects = strategy.UpdateSurfaceLinesWithImportedData(failureMechanism.SurfaceLines, new[] { importedSurfaceLine @@ -1046,7 +1039,6 @@ PipingInput affectedInput = affectedCalculation.InputParameters; CollectionAssert.AreEquivalent(new IObservable[] { - surfaceLineCollection, affectedInput, affectedSurfaceLine }, affectedObjects); @@ -1087,8 +1079,7 @@ failureMechanism.CalculationsGroup.Children.Add(affectedCalculation); failureMechanism.CalculationsGroup.Children.Add(affectedCalculation); - RingtoetsPipingSurfaceLineCollection surfaceLineCollection = failureMechanism.SurfaceLines; - surfaceLineCollection.AddRange(new[] + failureMechanism.SurfaceLines.AddRange(new[] { affectedSurfaceLine }, "path"); @@ -1098,7 +1089,7 @@ var strategy = new RingtoetsPipingSurfaceLineUpdateDataStrategy(failureMechanism); // Call - IEnumerable affectedObjects = strategy.UpdateSurfaceLinesWithImportedData(surfaceLineCollection, + IEnumerable affectedObjects = strategy.UpdateSurfaceLinesWithImportedData(failureMechanism.SurfaceLines, new[] { importedSurfaceLine @@ -1107,7 +1098,6 @@ // Assert CollectionAssert.AreEquivalent(new IObservable[] { - surfaceLineCollection, affectedSurfaceLine, affectedCalculation.InputParameters }, affectedObjects); @@ -1176,7 +1166,6 @@ CollectionAssert.AreEquivalent(new IObservable[] { - collection, affectedCalculation, affectedInput, affectedSurfaceLine @@ -1248,7 +1237,6 @@ CollectionAssert.AreEquivalent(new IObservable[] { - collection, affectedCalculation, affectedInput, affectedSurfaceLine Index: Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/FileImporter/StochasticSoilModelUpdateDataStrategyTest.cs =================================================================== diff -u -r3e253f74f13c8f30551ec1135e6719b40074de89 -r8d3579e3b7a7c43620023abba50a7f33bf480185 --- Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/FileImporter/StochasticSoilModelUpdateDataStrategyTest.cs (.../StochasticSoilModelUpdateDataStrategyTest.cs) (revision 3e253f74f13c8f30551ec1135e6719b40074de89) +++ Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/FileImporter/StochasticSoilModelUpdateDataStrategyTest.cs (.../StochasticSoilModelUpdateDataStrategyTest.cs) (revision 8d3579e3b7a7c43620023abba50a7f33bf480185) @@ -279,9 +279,8 @@ // Assert Assert.AreEqual(1, targetCollection.Count); Assert.AreSame(existingModel, targetCollection[0]); - CollectionAssert.AreEquivalent(new IObservable[] + CollectionAssert.AreEquivalent(new[] { - targetCollection, existingModel }, affectedObjects); } @@ -314,7 +313,6 @@ Assert.AreEqual(2, targetCollection[0].StochasticSoilProfiles.Count); CollectionAssert.AreEquivalent(new IObservable[] { - targetCollection, existingModel }, affectedObjects); } @@ -427,7 +425,6 @@ CollectionAssert.AreEquivalent(new IObservable[] { - targetCollection, firstSoilModel, calculationWithUpdatedProfile, calculationWithUpdatedProfile.InputParameters,