Index: src/Deltares.DSoilModel.Forms.Tests/DSoilModelContextTest.cs =================================================================== diff -u -r454 -r458 --- src/Deltares.DSoilModel.Forms.Tests/DSoilModelContextTest.cs (.../DSoilModelContextTest.cs) (revision 454) +++ src/Deltares.DSoilModel.Forms.Tests/DSoilModelContextTest.cs (.../DSoilModelContextTest.cs) (revision 458) @@ -93,28 +93,48 @@ [Test] public void DSoilModelContext_SoilMemberIsVisible_AdhereToFilterAll() { - var dSoilModelContext = SetupDSoilModelContext(null); // Filter "All" - var testSoil = new Soil(); - - var type = testSoil.GetType(); - var properties = type.GetProperties(BindingFlags.Instance | BindingFlags.Public); - foreach (var property in properties) + var visibleProperties = new List { - var propertyName = property.Name; - var isVisible = dSoilModelContext.IsVisible(testSoil, propertyName); - if (excludedProperties.Contains(property.Name)) - { - Assert.IsTrue(isVisible == false, "Soil property " + propertyName + " should not be visible."); - } - else - { - Assert.IsTrue(isVisible != false, "Soil property " + propertyName + " should be visible."); - } - } + StaticReflection.GetMemberName(s => s.AbovePhreaticLevel), + StaticReflection.GetMemberName(s => s.AbovePhreaticLevelStochast), + StaticReflection.GetMemberName(s => s.BelowPhreaticLevel), + StaticReflection.GetMemberName(s => s.BelowPhreaticLevelStochast), + StaticReflection.GetMemberName(s => s.Cohesion), + StaticReflection.GetMemberName(s => s.CohesionStochast), + StaticReflection.GetMemberName(s => s.FrictionAngle), + StaticReflection.GetMemberName(s => s.FrictionAngleStochast), + StaticReflection.GetMemberName(s => s.RatioCuPc), + StaticReflection.GetMemberName(s => s.RatioCuPcStochast), + StaticReflection.GetMemberName(s => s.StrengthIncreaseExponent), + StaticReflection.GetMemberName(s => s.StrengthIncreaseExponentStochast), + StaticReflection.GetMemberName(s => s.POP), + StaticReflection.GetMemberName(s => s.POPStochast), + StaticReflection.GetMemberName(s => s.ShearStrengthModel), + StaticReflection.GetMemberName(s => s.UsePop), + StaticReflection.GetMemberName(s => s.DiameterD70), + StaticReflection.GetMemberName(s => s.DiameterD70Stochast), + StaticReflection.GetMemberName(s => s.PermeabKx), + StaticReflection.GetMemberName(s => s.PermeabKxStochast), + StaticReflection.GetMemberName(s => s.DiameterD15), + StaticReflection.GetMemberName(s => s.DiameterD50), + StaticReflection.GetMemberName(s => s.Porosity), + StaticReflection.GetMemberName(s => s.MinPorosity), + StaticReflection.GetMemberName(s => s.MaxPorosity), + StaticReflection.GetMemberName(s => s.Evoldm), + StaticReflection.GetMemberName(s => s.Ks0), + StaticReflection.GetMemberName(s => s.GammaKorrel), + StaticReflection.GetMemberName(s => s.ParM), + StaticReflection.GetMemberName(s => s.ParU), + StaticReflection.GetMemberName(s => s.ParV), + StaticReflection.GetMemberName(s => s.ParR), + }; + visibleProperties.AddRange(alwaysVisibleProperties); + + AdhereToFilter(null, visibleProperties); } [Test] - public void DSoilModelContext_SoilMemberIsVisible_AdhereToFilterMacrostabilityBasicModule() + public void DSoilModelContext_SoilMemberIsVisible_AdhereToFilterMacrostabilityWti() { var visibleProperties = new List { @@ -252,7 +272,7 @@ } } - private static void AdhereToFilter(UserColumnFilters filter, ICollection visibleProperties) + private static void AdhereToFilter(UserColumnFilters? filter, ICollection visibleProperties) { var dSoilModelContext = SetupDSoilModelContext(filter); var testSoil = new Soil(); Index: src/Deltares.DSoilModel.Forms/DSoilModelContext.cs =================================================================== diff -u -r454 -r458 --- src/Deltares.DSoilModel.Forms/DSoilModelContext.cs (.../DSoilModelContext.cs) (revision 454) +++ src/Deltares.DSoilModel.Forms/DSoilModelContext.cs (.../DSoilModelContext.cs) (revision 458) @@ -6,7 +6,6 @@ using Deltares.Standard.Attributes; using Deltares.Standard.Forms.DExpress; using Deltares.Standard.Reflection; -using Deltares.Standard.Reflection.Enumerator; namespace Deltares.DSoilModel.Forms { @@ -71,8 +70,18 @@ StaticReflection.GetMemberName(s => s.ParR), }; + private readonly HashSet combinedSoilProperties = null; + #endregion + public DSoilModelContext() + { + combinedSoilProperties = new HashSet(); + combinedSoilProperties.UnionWith(macrostabilitySoilProperties); + combinedSoilProperties.UnionWith(pipingSoilProperties); + combinedSoilProperties.UnionWith(flowslideSoilProperties); + } + /// /// The current filter to display all parameters, stochastic parameters only or as-is parameters only. /// @@ -369,21 +378,20 @@ switch ((UserColumnFilters)soilUserFilter) { case UserColumnFilters.MacrostabilityWti: - { + { return macrostabilitySoilProperties; - } + } case UserColumnFilters.PipingWti: - { + { return pipingSoilProperties; - } + } case UserColumnFilters.FlowSlideWti: - { + { return flowslideSoilProperties; - } + } } } - - return base.GetFilteredProperties(soilUserFilter); + return combinedSoilProperties; } private bool? VisibleAccordingSoilUserFilter(string member)