Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/FileImporter/StochasticSoilModelReplaceDataStrategy.cs =================================================================== diff -u -r9393d671e0b4e1e8c76e5fcf32f61d5c3a5998b2 -rb1537a16c5961d9f66d5564c215f4bee59294f82 --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/FileImporter/StochasticSoilModelReplaceDataStrategy.cs (.../StochasticSoilModelReplaceDataStrategy.cs) (revision 9393d671e0b4e1e8c76e5fcf32f61d5c3a5998b2) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/FileImporter/StochasticSoilModelReplaceDataStrategy.cs (.../StochasticSoilModelReplaceDataStrategy.cs) (revision b1537a16c5961d9f66d5564c215f4bee59294f82) @@ -21,8 +21,8 @@ using System; using System.Collections.Generic; -using System.Linq; using Core.Common.Base; +using Ringtoets.Common.Data.UpdateDataStrategies; using Ringtoets.Piping.Data; using Ringtoets.Piping.IO.Importers; using Ringtoets.Piping.Service; @@ -32,58 +32,37 @@ /// /// Strategy for replacing the stochastic soil models with the imported stochastic soil models. /// - public class StochasticSoilModelReplaceDataStrategy : IStochasticSoilModelUpdateModelStrategy + public class StochasticSoilModelReplaceDataStrategy : ReplaceDataStrategyBase, + IStochasticSoilModelUpdateModelStrategy { - private readonly PipingFailureMechanism failureMechanism; - /// /// Creates a new instance of . /// /// The failure mechanism in which the models are updated. - public StochasticSoilModelReplaceDataStrategy(PipingFailureMechanism failureMechanism) - { - if (failureMechanism == null) - { - throw new ArgumentNullException(nameof(failureMechanism)); - } - this.failureMechanism = failureMechanism; - } + /// Thrown when is null. + public StochasticSoilModelReplaceDataStrategy(PipingFailureMechanism failureMechanism) : base(failureMechanism) {} public IEnumerable UpdateModelWithImportedData(StochasticSoilModelCollection targetCollection, IEnumerable readStochasticSoilModels, string sourceFilePath) { - if (targetCollection == null) + try { - throw new ArgumentNullException(nameof(targetCollection)); + return ReplaceTargetCollectionWithImportedData(targetCollection, readStochasticSoilModels, sourceFilePath); } - if (readStochasticSoilModels == null) + catch (ArgumentNullException) { - throw new ArgumentNullException(nameof(readStochasticSoilModels)); + throw; } - if (sourceFilePath == null) - { - throw new ArgumentNullException(nameof(sourceFilePath)); - } - - var affectedObjects = new List - { - targetCollection - }; - - foreach (StochasticSoilModel model in targetCollection.ToArray()) - { - affectedObjects.AddRange(PipingDataSynchronizationService.RemoveStochasticSoilModel(failureMechanism, model)); - } - try - { - targetCollection.AddRange(readStochasticSoilModels.ToList(), sourceFilePath); - } catch (ArgumentException e) { throw new StochasticSoilModelUpdateException(e.Message, e); } - return affectedObjects.Distinct(); } + + protected override IEnumerable ClearData(PipingFailureMechanism failureMechanism) + { + return PipingDataSynchronizationService.RemoveAllStochasticSoilModels(failureMechanism); + } } } \ No newline at end of file