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.
///