Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Merge/AssessmentSectionMerger.cs =================================================================== diff -u -r8befeafa1ad200d03bd0591ca3429dd6c5a435a1 -r38a39d562c3703d25a983334c64e07964a7a002e --- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Merge/AssessmentSectionMerger.cs (.../AssessmentSectionMerger.cs) (revision 8befeafa1ad200d03bd0591ca3429dd6c5a435a1) +++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Merge/AssessmentSectionMerger.cs (.../AssessmentSectionMerger.cs) (revision 38a39d562c3703d25a983334c64e07964a7a002e) @@ -25,7 +25,6 @@ using log4net; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data; -using Ringtoets.Integration.Data.Merge; using Ringtoets.Integration.Forms.Merge; using Ringtoets.Integration.Plugin.Handlers; using Ringtoets.Integration.Plugin.Properties; @@ -42,7 +41,7 @@ private static readonly ILog log = LogManager.GetLogger(typeof(AssessmentSectionMerger)); private readonly IAssessmentSectionMergeFilePathProvider filePathProvider; - private readonly Action getAssessmentSectionsAction; + private readonly IAssessmentSectionProvider assessmentSectionProvider; private readonly IAssessmentSectionMergeComparer comparer; private readonly IMergeDataProvider mergeDataProvider; private readonly IAssessmentSectionMergeHandler mergeHandler; @@ -51,23 +50,22 @@ /// Creates a new instance of , /// /// The provider to get the file path of the file to merge. - /// The action for getting the assessment sections - /// to merge. + /// The provider to the assessment sections to merge. /// The comparer to compare the assessment sections with. /// The provider to get the data to merge from. /// The handler to perform the merge. /// Thrown when any parameter is null. - public AssessmentSectionMerger(IAssessmentSectionMergeFilePathProvider filePathProvider, Action getAssessmentSectionsAction, + public AssessmentSectionMerger(IAssessmentSectionMergeFilePathProvider filePathProvider, IAssessmentSectionProvider assessmentSectionProvider, IAssessmentSectionMergeComparer comparer, IMergeDataProvider mergeDataProvider, IAssessmentSectionMergeHandler mergeHandler) { if (filePathProvider == null) { throw new ArgumentNullException(nameof(filePathProvider)); } - if (getAssessmentSectionsAction == null) + if (assessmentSectionProvider == null) { - throw new ArgumentNullException(nameof(getAssessmentSectionsAction)); + throw new ArgumentNullException(nameof(assessmentSectionProvider)); } if (comparer == null) @@ -86,7 +84,7 @@ } this.filePathProvider = filePathProvider; - this.getAssessmentSectionsAction = getAssessmentSectionsAction; + this.assessmentSectionProvider = assessmentSectionProvider; this.comparer = comparer; this.mergeDataProvider = mergeDataProvider; this.mergeHandler = mergeHandler; @@ -113,10 +111,14 @@ return; } - IEnumerable assessmentSections = GetAssessmentSections(filePath); + IEnumerable assessmentSections; - if (assessmentSections == null) + try { + assessmentSections = assessmentSectionProvider.GetAssessmentSections(filePath); + } + catch (AssessmentSectionProviderException) + { return; } @@ -152,13 +154,6 @@ PerformMerge(assessmentSection, assessmentSectionToMerge, failureMechanismToMerge); } - private IEnumerable GetAssessmentSections(string filePath) - { - var assessmentSectionsOwner = new AssessmentSectionsOwner(); - getAssessmentSectionsAction(filePath, assessmentSectionsOwner); - return assessmentSectionsOwner.AssessmentSections; - } - private void PerformMerge(AssessmentSection assessmentSection, AssessmentSection assessmentSectionToMerge, IEnumerable failureMechanismToMerge) { log.InfoFormat(Resources.AssessmentSectionMerger_PerformMerge_Merging_AssessmentSection_0_with_AssessmentSection_1_started,