Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/FileImporter/StochasticSoilModelUpdateData.cs =================================================================== diff -u -r89d34600d1408c8b1f4240020e841ba64cc26622 -r563b2c1126e515380a0ec7e2215bf07637445588 --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/FileImporter/StochasticSoilModelUpdateData.cs (.../StochasticSoilModelUpdateData.cs) (revision 89d34600d1408c8b1f4240020e841ba64cc26622) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/FileImporter/StochasticSoilModelUpdateData.cs (.../StochasticSoilModelUpdateData.cs) (revision 563b2c1126e515380a0ec7e2215bf07637445588) @@ -93,8 +93,7 @@ var existingModel = targetCollection.SingleOrDefault(existing => existing.Name.Equals(readModel.Name)); if (existingModel != null) { - StochasticSoilModelProfileDifference difference = existingModel.Update(readModel); - RemoveStochasticSoilProfilesFromInputs(difference, affectedObjects); + affectedObjects.AddRange(UpdateStochasticSoilModel(existingModel, readModel)); removedModels.Remove(existingModel); updatedOrAddedModels.Add(existingModel); @@ -107,25 +106,36 @@ } foreach (var model in removedModels) { - RemoveStochasticSoilModel(model, affectedObjects); + affectedObjects.AddRange(RemoveStochasticSoilModel(model)); } targetCollection.Clear(); targetCollection.AddRange(updatedOrAddedModels, sourceFilePath); return affectedObjects; } - private void RemoveStochasticSoilModel(StochasticSoilModel removedModel, List affectedObjects) + private IEnumerable RemoveStochasticSoilModel(StochasticSoilModel removedModel) { - affectedObjects.AddRange(PipingDataSynchronizationService.RemoveStochasticSoilModel(failureMechanism, removedModel)); + return PipingDataSynchronizationService.RemoveStochasticSoilModel(failureMechanism, removedModel); } - private void RemoveStochasticSoilProfilesFromInputs(StochasticSoilModelProfileDifference difference, List affectedObjects) + private IEnumerable UpdateStochasticSoilModel(StochasticSoilModel existingModel, StochasticSoilModel readModel) { + StochasticSoilModelProfileDifference difference = existingModel.Update(readModel); + + var affectedObjects = new List(); foreach (StochasticSoilProfile removedProfile in difference.RemovedProfiles) { affectedObjects.AddRange(PipingDataSynchronizationService.RemoveStochasticSoilProfileFromInput(failureMechanism, removedProfile)); } + foreach (StochasticSoilProfile updatedProfile in difference.UpdatedProfiles) + { + affectedObjects.AddRange(failureMechanism.Calculations + .Cast() + .Select(c => c.InputParameters) + .Where(i => ReferenceEquals(i.StochasticSoilProfile, updatedProfile))); + } + return affectedObjects; } } } \ No newline at end of file