Index: Ringtoets/Common/src/Ringtoets.Common.Data/UpdateDataStrategies/UpdateDataStrategyBase.cs =================================================================== diff -u -r922d8c8ebb07e20fb0fe567d65f7d2df2bd224c1 -re3ec5f4669022733a11c4c3070747331bf36056f --- Ringtoets/Common/src/Ringtoets.Common.Data/UpdateDataStrategies/UpdateDataStrategyBase.cs (.../UpdateDataStrategyBase.cs) (revision 922d8c8ebb07e20fb0fe567d65f7d2df2bd224c1) +++ Ringtoets/Common/src/Ringtoets.Common.Data/UpdateDataStrategies/UpdateDataStrategyBase.cs (.../UpdateDataStrategyBase.cs) (revision e3ec5f4669022733a11c4c3070747331bf36056f) @@ -69,7 +69,7 @@ } /// - /// Updates the object and its dependent data with data from the imported data. + /// Updates the unequal object and its dependent data with data from the imported data. /// /// Object that needs to be updated. /// The object to update from. @@ -112,14 +112,7 @@ throw new ArgumentNullException(nameof(sourceFilePath)); } - try - { - return ModifyDataCollection(targetDataCollection, importedDataCollection, sourceFilePath); - } - catch (ArgumentException e) - { - throw new UpdateDataException(e.Message, e); - } + return ModifyDataCollection(targetDataCollection, importedDataCollection, sourceFilePath); } /// @@ -132,10 +125,12 @@ /// the /// The source file path. /// A with affected objects. - /// Thrown when duplicate items are being added to the - /// . - /// Thrown when duplicate items are found in the - /// . + /// Thrown when: + /// + /// duplicate items are being added to the . + /// duplicate items are found in the . + /// + /// private IEnumerable ModifyDataCollection(ObservableUniqueItemCollectionWithSourcePath targetDataCollection, IEnumerable importedDataCollection, string sourceFilePath) @@ -195,16 +190,22 @@ { TTargetData objectToUpdateFrom = importedDataCollection.Single(importedObject => equalityComparer.Equals(importedObject, objectToUpdate)); - if (!objectToUpdate.Equals(objectToUpdateFrom)) + + if (IsUpdateObjectDataUnequal(objectToUpdate, objectToUpdateFrom)) { affectedObjects.Add(objectToUpdate); + affectedObjects.AddRange(UpdateObjectAndDependentData(objectToUpdate, objectToUpdateFrom)); } - affectedObjects.AddRange(UpdateObjectAndDependentData(objectToUpdate, objectToUpdateFrom)); } return affectedObjects; } + private static bool IsUpdateObjectDataUnequal(TTargetData objectToUpdate, TTargetData objectToUpdateFrom) + { + return !objectToUpdate.Equals(objectToUpdateFrom); + } + /// /// Removes all the objects and their dependent data. ///