Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/SoilProfiles/MacroStabilityInwardsStochasticSoilModelTransformer.cs =================================================================== diff -u -rbe51145e1b013ea9e1353a6b8618bdc6fd855ff8 -re40a14c4d5b76ae6e2d9c13407e231b8929f800a --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/SoilProfiles/MacroStabilityInwardsStochasticSoilModelTransformer.cs (.../MacroStabilityInwardsStochasticSoilModelTransformer.cs) (revision be51145e1b013ea9e1353a6b8618bdc6fd855ff8) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/SoilProfiles/MacroStabilityInwardsStochasticSoilModelTransformer.cs (.../MacroStabilityInwardsStochasticSoilModelTransformer.cs) (revision e40a14c4d5b76ae6e2d9c13407e231b8929f800a) @@ -22,7 +22,6 @@ using System; using System.Collections.Generic; using System.Linq; -using log4net; using Ringtoets.Common.IO.Exceptions; using Ringtoets.Common.IO.SoilProfile; using Ringtoets.Common.IO.SoilProfile.Schema; @@ -36,7 +35,6 @@ /// public class MacroStabilityInwardsStochasticSoilModelTransformer : IStochasticSoilModelTransformer { - private static readonly ILog log = LogManager.GetLogger(typeof(MacroStabilityInwardsStochasticSoilModelTransformer)); private readonly Dictionary soilProfiles = new Dictionary(); public MacroStabilityInwardsStochasticSoilModel Transform(StochasticSoilModel stochasticSoilModel) @@ -81,12 +79,12 @@ IEnumerable stochasticSoilProfiles, string soilModelName) { - MacroStabilityInwardsStochasticSoilProfile[] transformedProfiles = stochasticSoilProfiles.Select( - ssp => MacroStabilityInwardsStochasticSoilProfileTransformer.Transform( - ssp, - GetTransformedSoilProfile(ssp.SoilProfile))).ToArray(); - - return GetUniqueStochasticSoilProfiles(transformedProfiles, soilModelName); + IEnumerable uniqueStochasticSoilProfiles = StochasticSoilProfileHelper.GetUniqueStochasticSoilProfiles(stochasticSoilProfiles, + soilModelName); + return uniqueStochasticSoilProfiles.Select(ssp => + MacroStabilityInwardsStochasticSoilProfileTransformer.Transform( + ssp, GetTransformedSoilProfile(ssp.SoilProfile))) + .ToArray(); } /// @@ -110,48 +108,5 @@ } return macroStabilityInwardsSoilProfile; } - - /// - /// Filters a collection of to determine which items - /// are unique. - /// - /// The collection of - /// to filter. - /// The name of the soil model. - /// A collection of unique . - /// Thrown when summing the probabilities of - /// with the same - /// results in an invalid probability. - private static IEnumerable GetUniqueStochasticSoilProfiles( - IEnumerable stochasticSoilProfiles, - string soilModelName) - { - List uniqueStochasticSoilProfiles = stochasticSoilProfiles.ToList(); - MacroStabilityInwardsStochasticSoilProfile[] allStochasticSoilProfiles = uniqueStochasticSoilProfiles.ToArray(); - - try - { - for (var i = 1; i < allStochasticSoilProfiles.Length; i++) - { - MacroStabilityInwardsStochasticSoilProfile previousProfile = allStochasticSoilProfiles[i - 1]; - MacroStabilityInwardsStochasticSoilProfile currentProfile = allStochasticSoilProfiles[i]; - if (ReferenceEquals(currentProfile.SoilProfile, previousProfile.SoilProfile)) - { - log.Warn(string.Format(RingtoetsCommonIOResources.SoilModelTransformer_GetUniqueStochasticSoilProfiles_StochasticSoilProfile_0_has_multiple_occurences_in_SoilModel_1_Probability_Summed, - previousProfile.SoilProfile.Name, - soilModelName)); - - previousProfile.AddProbability(currentProfile.Probability); - uniqueStochasticSoilProfiles.Remove(currentProfile); - } - } - } - catch (ArgumentOutOfRangeException e) - { - throw new ImportedDataTransformException(e.Message, e); - } - - return uniqueStochasticSoilProfiles; - } } } \ No newline at end of file