Index: Core/Common/src/Core.Common.Utils/Extensions/EnumerableExtensions.cs
===================================================================
diff -u -r2e944cbf52d124fd501ed4ed8e991aa50299cc69 -ra163c5f082694baf5cd491ea36baf6fb040fe868
--- Core/Common/src/Core.Common.Utils/Extensions/EnumerableExtensions.cs (.../EnumerableExtensions.cs) (revision 2e944cbf52d124fd501ed4ed8e991aa50299cc69)
+++ Core/Common/src/Core.Common.Utils/Extensions/EnumerableExtensions.cs (.../EnumerableExtensions.cs) (revision a163c5f082694baf5cd491ea36baf6fb040fe868)
@@ -77,5 +77,28 @@
}
return source.Select(keySelector).Count() != source.Select(keySelector).Distinct().Count();
}
+
+ ///
+ /// Checks whether the elements from have more than one unique
+ /// value using the .
+ ///
+ /// The element type of the sequence.
+ /// The type for the key.
+ /// A sequence that contains elements to be acted upon.
+ /// The key selector to validate uniqueness.
+ /// true when there is more than one unique value in ; false otherwise.
+ /// Thrown when any input argument is null .
+ public static bool HasMultipleUniqueValues(this IEnumerable source, Func keySelector)
+ {
+ if (source == null)
+ {
+ throw new ArgumentNullException(nameof(source));
+ }
+ if (keySelector == null)
+ {
+ throw new ArgumentNullException(nameof(keySelector));
+ }
+ return source.Select(keySelector).Distinct().Count() > 1;
+ }
}
}
\ No newline at end of file
Index: Core/Common/test/Core.Common.Utils.Test/Extensions/EnumerableExtensionsTest.cs
===================================================================
diff -u -r2e944cbf52d124fd501ed4ed8e991aa50299cc69 -ra163c5f082694baf5cd491ea36baf6fb040fe868
--- Core/Common/test/Core.Common.Utils.Test/Extensions/EnumerableExtensionsTest.cs (.../EnumerableExtensionsTest.cs) (revision 2e944cbf52d124fd501ed4ed8e991aa50299cc69)
+++ Core/Common/test/Core.Common.Utils.Test/Extensions/EnumerableExtensionsTest.cs (.../EnumerableExtensionsTest.cs) (revision a163c5f082694baf5cd491ea36baf6fb040fe868)
@@ -142,5 +142,69 @@
// Assert
Assert.IsTrue(hasNonDistinct);
}
+
+ [Test]
+ public void HasMultipleUniqueValues_IteratorNull_ThrowArgumentNullException()
+ {
+ // Setup
+ IEnumerable enumerable = null;
+
+ // Call
+ TestDelegate call = () => enumerable.HasMultipleUniqueValues(e => null);
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("source", exception.ParamName);
+ }
+
+ [Test]
+ public void HasMultipleUniqueValues_ActionNull_ThrowArgumentNullException()
+ {
+ // Setup
+ IEnumerable enumerable = Enumerable.Empty();
+
+ // Call
+ TestDelegate call = () => enumerable.HasMultipleUniqueValues(null);
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("keySelector", exception.ParamName);
+ }
+
+ [Test]
+ public void HasMultipleUniqueValues_WithUniqueItems_ReturnsFalse()
+ {
+ // Setup
+ var items = new List
+ {
+ 1,
+ 1,
+ 1
+ };
+
+ // Call
+ bool hasNonDistinct = items.HasMultipleUniqueValues(t => t);
+
+ // Assert
+ Assert.IsFalse(hasNonDistinct);
+ }
+
+ [Test]
+ public void HasMultipleUniqueValues_WithMultipleUniqueItems_ReturnsTrue()
+ {
+ // Setup
+ var items = new List
+ {
+ 1,
+ 2,
+ 3
+ };
+
+ // Call
+ bool hasNonDistinct = items.HasMultipleUniqueValues(t => t);
+
+ // Assert
+ Assert.IsTrue(hasNonDistinct);
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Factories/RingtoetsStackChartDataFactory.cs
===================================================================
diff -u -r2e944cbf52d124fd501ed4ed8e991aa50299cc69 -ra163c5f082694baf5cd491ea36baf6fb040fe868
--- Ringtoets/Common/src/Ringtoets.Common.Forms/Factories/RingtoetsStackChartDataFactory.cs (.../RingtoetsStackChartDataFactory.cs) (revision 2e944cbf52d124fd501ed4ed8e991aa50299cc69)
+++ Ringtoets/Common/src/Ringtoets.Common.Forms/Factories/RingtoetsStackChartDataFactory.cs (.../RingtoetsStackChartDataFactory.cs) (revision a163c5f082694baf5cd491ea36baf6fb040fe868)
@@ -26,7 +26,6 @@
using Core.Common.Base.Data;
using Core.Common.Utils.Extensions;
using Core.Components.Stack.Data;
-using Ringtoets.Common.Forms.Helpers;
using Ringtoets.Common.Forms.Properties;
using Ringtoets.Common.Forms.Views;
@@ -70,7 +69,7 @@
illustrationPointControlItems.Select(controlItem => Tuple.Create(controlItem.WindDirectionName,
controlItem.ClosingSituation));
- bool showClosingSituation = !illustrationPointControlItems.HasDuplicates(item => item.ClosingSituation);
+ bool showClosingSituation = illustrationPointControlItems.HasMultipleUniqueValues(item => item.ClosingSituation);
foreach (Tuple label in labels)
{
Index: Ringtoets/Common/src/Ringtoets.Common.Forms/PropertyClasses/StructuresOutputProperties.cs
===================================================================
diff -u -r2e944cbf52d124fd501ed4ed8e991aa50299cc69 -ra163c5f082694baf5cd491ea36baf6fb040fe868
--- Ringtoets/Common/src/Ringtoets.Common.Forms/PropertyClasses/StructuresOutputProperties.cs (.../StructuresOutputProperties.cs) (revision 2e944cbf52d124fd501ed4ed8e991aa50299cc69)
+++ Ringtoets/Common/src/Ringtoets.Common.Forms/PropertyClasses/StructuresOutputProperties.cs (.../StructuresOutputProperties.cs) (revision a163c5f082694baf5cd491ea36baf6fb040fe868)
@@ -109,9 +109,9 @@
return new TopLevelFaultTreeIllustrationPointProperties[0];
}
- bool areClosingSituationsSame = data.GeneralResult
- .TopLevelIllustrationPoints
- .HasDuplicates(p => p.ClosingSituation);
+ bool areClosingSituationsSame = !data.GeneralResult
+ .TopLevelIllustrationPoints
+ .HasMultipleUniqueValues(p => p.ClosingSituation);
return data.GeneralResult
.TopLevelIllustrationPoints
Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Views/GeneralResultFaultTreeIllustrationPointView.cs
===================================================================
diff -u -r68ad4c0477e2ae7f325fef005b88d5be5c563840 -ra163c5f082694baf5cd491ea36baf6fb040fe868
--- Ringtoets/Common/src/Ringtoets.Common.Forms/Views/GeneralResultFaultTreeIllustrationPointView.cs (.../GeneralResultFaultTreeIllustrationPointView.cs) (revision 68ad4c0477e2ae7f325fef005b88d5be5c563840)
+++ Ringtoets/Common/src/Ringtoets.Common.Forms/Views/GeneralResultFaultTreeIllustrationPointView.cs (.../GeneralResultFaultTreeIllustrationPointView.cs) (revision a163c5f082694baf5cd491ea36baf6fb040fe868)
@@ -127,9 +127,9 @@
return;
}
- string closingSituation = generalResult.TopLevelIllustrationPoints.HasDuplicates(p => p.ClosingSituation)
- ? string.Empty
- : topLevelFaultTreeIllustrationPoint.ClosingSituation;
+ string closingSituation = generalResult.TopLevelIllustrationPoints.HasMultipleUniqueValues(p => p.ClosingSituation)
+ ? topLevelFaultTreeIllustrationPoint.ClosingSituation
+ : string.Empty;
var faultTreeIllustrationPoint = selection.Data as FaultTreeIllustrationPoint;
if (faultTreeIllustrationPoint != null)
Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Views/IllustrationPointsTableControl.cs
===================================================================
diff -u -r2e944cbf52d124fd501ed4ed8e991aa50299cc69 -ra163c5f082694baf5cd491ea36baf6fb040fe868
--- Ringtoets/Common/src/Ringtoets.Common.Forms/Views/IllustrationPointsTableControl.cs (.../IllustrationPointsTableControl.cs) (revision 2e944cbf52d124fd501ed4ed8e991aa50299cc69)
+++ Ringtoets/Common/src/Ringtoets.Common.Forms/Views/IllustrationPointsTableControl.cs (.../IllustrationPointsTableControl.cs) (revision a163c5f082694baf5cd491ea36baf6fb040fe868)
@@ -94,7 +94,7 @@
{
if (data != null)
{
- if (!data.HasDuplicates(item => item.ClosingSituation))
+ if (data.HasMultipleUniqueValues(item => item.ClosingSituation))
{
illustrationPointsDataGridViewControl.SetColumnVisibility(closingSituationColumnIndex, true);
return;
Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/PropertyClasses/DikeHeightOutputProperties.cs
===================================================================
diff -u -r2e944cbf52d124fd501ed4ed8e991aa50299cc69 -ra163c5f082694baf5cd491ea36baf6fb040fe868
--- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/PropertyClasses/DikeHeightOutputProperties.cs (.../DikeHeightOutputProperties.cs) (revision 2e944cbf52d124fd501ed4ed8e991aa50299cc69)
+++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/PropertyClasses/DikeHeightOutputProperties.cs (.../DikeHeightOutputProperties.cs) (revision a163c5f082694baf5cd491ea36baf6fb040fe868)
@@ -189,9 +189,9 @@
return new TopLevelFaultTreeIllustrationPointProperties[0];
}
- bool areClosingSituationsSame = data.GeneralResult
- .TopLevelIllustrationPoints
- .HasDuplicates(p => p.ClosingSituation);
+ bool areClosingSituationsSame = !data.GeneralResult
+ .TopLevelIllustrationPoints
+ .HasMultipleUniqueValues(p => p.ClosingSituation);
return data.GeneralResult
.TopLevelIllustrationPoints
Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/PropertyClasses/OvertoppingOutputProperties.cs
===================================================================
diff -u -r2e944cbf52d124fd501ed4ed8e991aa50299cc69 -ra163c5f082694baf5cd491ea36baf6fb040fe868
--- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/PropertyClasses/OvertoppingOutputProperties.cs (.../OvertoppingOutputProperties.cs) (revision 2e944cbf52d124fd501ed4ed8e991aa50299cc69)
+++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/PropertyClasses/OvertoppingOutputProperties.cs (.../OvertoppingOutputProperties.cs) (revision a163c5f082694baf5cd491ea36baf6fb040fe868)
@@ -196,9 +196,9 @@
return new TopLevelFaultTreeIllustrationPointProperties[0];
}
- bool areClosingSituationsSame = data.GeneralResult
- .TopLevelIllustrationPoints
- .HasDuplicates(p => p.ClosingSituation);
+ bool areClosingSituationsSame = !data.GeneralResult
+ .TopLevelIllustrationPoints
+ .HasMultipleUniqueValues(p => p.ClosingSituation);
return data.GeneralResult
.TopLevelIllustrationPoints
Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/PropertyClasses/OvertoppingRateOutputProperties.cs
===================================================================
diff -u -r2e944cbf52d124fd501ed4ed8e991aa50299cc69 -ra163c5f082694baf5cd491ea36baf6fb040fe868
--- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/PropertyClasses/OvertoppingRateOutputProperties.cs (.../OvertoppingRateOutputProperties.cs) (revision 2e944cbf52d124fd501ed4ed8e991aa50299cc69)
+++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/PropertyClasses/OvertoppingRateOutputProperties.cs (.../OvertoppingRateOutputProperties.cs) (revision a163c5f082694baf5cd491ea36baf6fb040fe868)
@@ -189,9 +189,9 @@
return new TopLevelFaultTreeIllustrationPointProperties[0];
}
- bool areClosingSituationsSame = data.GeneralResult
- .TopLevelIllustrationPoints
- .HasDuplicates(p => p.ClosingSituation);
+ bool areClosingSituationsSame = !data.GeneralResult
+ .TopLevelIllustrationPoints
+ .HasMultipleUniqueValues(p => p.ClosingSituation);
return data.GeneralResult
.TopLevelIllustrationPoints
Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs
===================================================================
diff -u -ra49798da6ac2176d2e8b28ec6fec8a2494d8ee91 -ra163c5f082694baf5cd491ea36baf6fb040fe868
--- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs (.../RingtoetsPlugin.cs) (revision a49798da6ac2176d2e8b28ec6fec8a2494d8ee91)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs (.../RingtoetsPlugin.cs) (revision a163c5f082694baf5cd491ea36baf6fb040fe868)
@@ -48,6 +48,7 @@
using Ringtoets.Common.Data.DikeProfiles;
using Ringtoets.Common.Data.FailureMechanism;
using Ringtoets.Common.Data.Hydraulics;
+using Ringtoets.Common.Data.IllustrationPoints;
using Ringtoets.Common.Data.Structures;
using Ringtoets.Common.Forms.ChangeHandlers;
using Ringtoets.Common.Forms.GuiServices;
@@ -110,7 +111,6 @@
using RingtoetsIntegrationPluginResources = Ringtoets.Integration.Plugin.Properties.Resources;
using BaseResources = Core.Common.Base.Properties.Resources;
using GuiResources = Core.Common.Gui.Properties.Resources;
-using Ringtoets.Common.Data.IllustrationPoints;
namespace Ringtoets.Integration.Plugin
{
@@ -844,6 +844,16 @@
}
}
+ #region PropertyInfos
+
+ private static TopLevelFaultTreeIllustrationPointProperties CreateTopLevelFaultTreeIllustrationPointProperties(SelectedTopLevelFaultTreeIllustrationPoint point)
+ {
+ return new TopLevelFaultTreeIllustrationPointProperties(point.TopLevelFaultTreeIllustrationPoint,
+ !point.ClosingSituations.HasMultipleUniqueValues(cs => cs));
+ }
+
+ #endregion
+
private class FailureMechanismContextAssociation
{
private readonly Func createFailureMechanismContext;
@@ -866,16 +876,6 @@
}
}
- #region PropertyInfos
-
- private static TopLevelFaultTreeIllustrationPointProperties CreateTopLevelFaultTreeIllustrationPointProperties(SelectedTopLevelFaultTreeIllustrationPoint point)
- {
- return new TopLevelFaultTreeIllustrationPointProperties(point.TopLevelFaultTreeIllustrationPoint,
- point.ClosingSituations.HasDuplicates(cs => cs));
- }
-
- #endregion
-
#region ViewInfos
#region FailureMechanismView ViewInfo