Index: Ringtoets/Common/src/Ringtoets.Common.Data/Calculation/ICalculation.cs
===================================================================
diff -u -r8c60e937f4b8009fea80f3702879e100fe03b63f -r4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd
--- Ringtoets/Common/src/Ringtoets.Common.Data/Calculation/ICalculation.cs (.../ICalculation.cs) (revision 8c60e937f4b8009fea80f3702879e100fe03b63f)
+++ Ringtoets/Common/src/Ringtoets.Common.Data/Calculation/ICalculation.cs (.../ICalculation.cs) (revision 4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd)
@@ -37,5 +37,10 @@
/// Clears the assessment level.
///
void ClearHydraulicBoundaryLocation();
+
+ ///
+ /// Gets the input of the calculation.
+ ///
+ ICalculationInput Input { get; }
}
}
\ No newline at end of file
Index: Ringtoets/Common/src/Ringtoets.Common.Data/Calculation/ICalculationInput.cs
===================================================================
diff -u
--- Ringtoets/Common/src/Ringtoets.Common.Data/Calculation/ICalculationInput.cs (revision 0)
+++ Ringtoets/Common/src/Ringtoets.Common.Data/Calculation/ICalculationInput.cs (revision 4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd)
@@ -0,0 +1,30 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using Core.Common.Base;
+
+namespace Ringtoets.Common.Data.Calculation
+{
+ ///
+ /// A calculation input related item.
+ ///
+ public interface ICalculationInput : IObservable {}
+}
\ No newline at end of file
Index: Ringtoets/Common/src/Ringtoets.Common.Data/Ringtoets.Common.Data.csproj
===================================================================
diff -u -r8c60e937f4b8009fea80f3702879e100fe03b63f -r4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd
--- Ringtoets/Common/src/Ringtoets.Common.Data/Ringtoets.Common.Data.csproj (.../Ringtoets.Common.Data.csproj) (revision 8c60e937f4b8009fea80f3702879e100fe03b63f)
+++ Ringtoets/Common/src/Ringtoets.Common.Data/Ringtoets.Common.Data.csproj (.../Ringtoets.Common.Data.csproj) (revision 4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd)
@@ -42,6 +42,7 @@
+
Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismResultView.cs
===================================================================
diff -u -r8c60e937f4b8009fea80f3702879e100fe03b63f -r4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd
--- Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismResultView.cs (.../FailureMechanismResultView.cs) (revision 8c60e937f4b8009fea80f3702879e100fe03b63f)
+++ Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismResultView.cs (.../FailureMechanismResultView.cs) (revision 4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd)
@@ -42,7 +42,8 @@
{
private readonly Observer failureMechanismObserver;
private readonly RecursiveObserver failureMechanismSectionResultObserver;
- private readonly RecursiveObserver calculationScenarioObserver;
+ private readonly RecursiveObserver calculationScenarioObserver;
+ private readonly RecursiveObserver calculationInputObserver;
private IEnumerable failureMechanismSectionResult;
private IFailureMechanism failureMechanism;
@@ -61,8 +62,8 @@
failureMechanismObserver = new Observer(UpdataDataGridViewDataSource);
failureMechanismSectionResultObserver = new RecursiveObserver(RefreshDataGridView, mechanism => mechanism.SectionResults);
- calculationScenarioObserver = new RecursiveObserver(UpdataDataGridViewDataSource, mechanism => mechanism.SectionResults.Select(sr => sr.CalculationScenarios));
-
+ calculationScenarioObserver = new RecursiveObserver(UpdataDataGridViewDataSource, mechanism => mechanism.SectionResults.SelectMany(sr => sr.CalculationScenarios));
+ calculationInputObserver = new RecursiveObserver(UpdataDataGridViewDataSource, mechanism => mechanism.SectionResults.SelectMany(sr => sr.CalculationScenarios).Select(cs => cs.Input));
Load += OnLoad;
}
@@ -81,6 +82,8 @@
failureMechanismObserver.Observable = failureMechanism;
failureMechanismSectionResultObserver.Observable = failureMechanism;
+ calculationScenarioObserver.Observable = failureMechanism;
+ calculationInputObserver.Observable = failureMechanism;
}
}
@@ -97,12 +100,10 @@
if (failureMechanismSectionResult != null)
{
UpdataDataGridViewDataSource();
- calculationScenarioObserver.Observable = failureMechanism;
}
else
{
dataGridView.DataSource = null;
- calculationScenarioObserver.Observable = null;
}
}
}
@@ -111,6 +112,11 @@
{
FailureMechanism = null;
+ failureMechanismObserver.Dispose();
+ failureMechanismSectionResultObserver.Dispose();
+ calculationScenarioObserver.Dispose();
+ calculationInputObserver.Dispose();
+
if (disposing && (components != null))
{
components.Dispose();
Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsCalculation.cs
===================================================================
diff -u -rd847955b7a8b9bd4cd80c5e10e6a055c9d5daa8b -r4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd
--- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsCalculation.cs (.../GrassCoverErosionInwardsCalculation.cs) (revision d847955b7a8b9bd4cd80c5e10e6a055c9d5daa8b)
+++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsCalculation.cs (.../GrassCoverErosionInwardsCalculation.cs) (revision 4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd)
@@ -19,6 +19,7 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
+using System.Dynamic;
using Core.Common.Base;
using Ringtoets.Common.Data.Calculation;
using Ringtoets.GrassCoverErosionInwards.Data.Properties;
@@ -49,6 +50,14 @@
///
public GrassCoverErosionInwardsOutput Output { get; set; }
+ public ICalculationInput Input
+ {
+ get
+ {
+ return InputParameters;
+ }
+ }
+
public string Comments { get; set; }
public string Name { get; set; }
Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsInput.cs
===================================================================
diff -u -rd847955b7a8b9bd4cd80c5e10e6a055c9d5daa8b -r4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd
--- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsInput.cs (.../GrassCoverErosionInwardsInput.cs) (revision d847955b7a8b9bd4cd80c5e10e6a055c9d5daa8b)
+++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsInput.cs (.../GrassCoverErosionInwardsInput.cs) (revision 4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd)
@@ -22,7 +22,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using Core.Common.Base;
using Core.Common.Base.Data;
+using Ringtoets.Common.Data.Calculation;
using Ringtoets.Common.Data.Probabilistics;
using Ringtoets.HydraRing.Data;
@@ -31,7 +33,7 @@
///
/// Class that holds all grass cover erosion inwards calculation specific input parameters.
///
- public class GrassCoverErosionInwardsInput
+ public class GrassCoverErosionInwardsInput : Observable, ICalculationInput
{
private IEnumerable geometry;
Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsCalculationTest.cs
===================================================================
diff -u -rd847955b7a8b9bd4cd80c5e10e6a055c9d5daa8b -r4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd
--- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsCalculationTest.cs (.../GrassCoverErosionInwardsCalculationTest.cs) (revision d847955b7a8b9bd4cd80c5e10e6a055c9d5daa8b)
+++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsCalculationTest.cs (.../GrassCoverErosionInwardsCalculationTest.cs) (revision 4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd)
@@ -233,6 +233,20 @@
// Assert
Assert.IsNull(calculation.InputParameters.HydraulicBoundaryLocation);
}
+
+ [Test]
+ public void Input_Always_ReturnsInputParamaters()
+ {
+ // Setup
+ var calculation = new GrassCoverErosionInwardsCalculation();
+ var inputParameters = calculation.InputParameters;
+
+ // Call
+ var input = calculation.Input;
+
+ // Assert
+ Assert.AreEqual(inputParameters, input);
+ }
}
public class TestGrassCoverErosionInwardsOutput : GrassCoverErosionInwardsOutput
Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsInputTest.cs
===================================================================
diff -u -rd847955b7a8b9bd4cd80c5e10e6a055c9d5daa8b -r4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd
--- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsInputTest.cs (.../GrassCoverErosionInwardsInputTest.cs) (revision d847955b7a8b9bd4cd80c5e10e6a055c9d5daa8b)
+++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsInputTest.cs (.../GrassCoverErosionInwardsInputTest.cs) (revision 4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd)
@@ -21,9 +21,11 @@
using System;
using System.Linq;
+using Core.Common.Base;
using Core.Common.Base.Data;
using Core.Common.Base.Geometry;
using NUnit.Framework;
+using Ringtoets.Common.Data.Calculation;
using Ringtoets.Common.Data.Probabilistics;
namespace Ringtoets.GrassCoverErosionInwards.Data.Test
@@ -38,7 +40,8 @@
var input = new GrassCoverErosionInwardsInput();
// Assert
- Assert.IsNotNull(input);
+ Assert.IsInstanceOf(input);
+ Assert.IsInstanceOf(input);
CollectionAssert.IsEmpty(input.DikeGeometry);
Assert.IsNull(input.HydraulicBoundaryLocation);
}
Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/IPipingCalculationItemExtensions.cs
===================================================================
diff -u -r8c60e937f4b8009fea80f3702879e100fe03b63f -r4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd
--- Ringtoets/Piping/src/Ringtoets.Piping.Data/IPipingCalculationItemExtensions.cs (.../IPipingCalculationItemExtensions.cs) (revision 8c60e937f4b8009fea80f3702879e100fe03b63f)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Data/IPipingCalculationItemExtensions.cs (.../IPipingCalculationItemExtensions.cs) (revision 4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd)
@@ -23,7 +23,6 @@
using System.Collections.Generic;
using System.Linq;
using Core.Common.Base.Geometry;
-using Ringtoets.Common.Data;
using Ringtoets.Common.Data.Calculation;
namespace Ringtoets.Piping.Data
Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingCalculation.cs
===================================================================
diff -u -r8c60e937f4b8009fea80f3702879e100fe03b63f -r4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd
--- Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingCalculation.cs (.../PipingCalculation.cs) (revision 8c60e937f4b8009fea80f3702879e100fe03b63f)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingCalculation.cs (.../PipingCalculation.cs) (revision 4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd)
@@ -76,6 +76,14 @@
///
public PipingSemiProbabilisticOutput SemiProbabilisticOutput { get; set; }
+ public ICalculationInput Input
+ {
+ get
+ {
+ return InputParameters;
+ }
+ }
+
///
/// Gets or sets the name of this calculation.
///
Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingCalculationScenario.cs
===================================================================
diff -u -r8c60e937f4b8009fea80f3702879e100fe03b63f -r4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd
--- Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingCalculationScenario.cs (.../PipingCalculationScenario.cs) (revision 8c60e937f4b8009fea80f3702879e100fe03b63f)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingCalculationScenario.cs (.../PipingCalculationScenario.cs) (revision 4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd)
@@ -22,7 +22,6 @@
using System;
using Core.Common.Base.Data;
using Ringtoets.Common.Data.Calculation;
-using Ringtoets.Common.Data.FailureMechanism;
namespace Ringtoets.Piping.Data
{
Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingInput.cs
===================================================================
diff -u -r1e4d77c17c6eac78bfd705efdff9e52b4fca2c7e -r4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd
--- Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingInput.cs (.../PipingInput.cs) (revision 1e4d77c17c6eac78bfd705efdff9e52b4fca2c7e)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingInput.cs (.../PipingInput.cs) (revision 4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd)
@@ -24,6 +24,7 @@
using Core.Common.Base;
using Core.Common.Base.Data;
using Core.Common.Base.Geometry;
+using Ringtoets.Common.Data.Calculation;
using Ringtoets.Common.Data.Probabilistics;
using Ringtoets.HydraRing.Data;
using Ringtoets.Piping.Data.Properties;
@@ -35,7 +36,7 @@
/// Class that holds all piping calculation specific input parameters, e.g. the values
/// that can differ across various calculations.
///
- public class PipingInput : Observable
+ public class PipingInput : Observable, ICalculationInput
{
private readonly GeneralPipingInput generalInputParameters;
private readonly NormalDistribution phreaticLevelExit;
Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingInputContextProperties.cs
===================================================================
diff -u -r8c60e937f4b8009fea80f3702879e100fe03b63f -r4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingInputContextProperties.cs (.../PipingInputContextProperties.cs) (revision 8c60e937f4b8009fea80f3702879e100fe03b63f)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingInputContextProperties.cs (.../PipingInputContextProperties.cs) (revision 4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd)
@@ -176,7 +176,7 @@
data.WrappedData.SurfaceLine = value;
PipingInputService.SetMatchingStochasticSoilModel(data.WrappedData, GetAvailableStochasticSoilModels());
- PipingCalculationScenarioService.SyncCalculationScenarioWithNewSurfaceLine((PipingCalculationScenario) data.PipingCalculation, new PipingFailureMechanism(), oldSurfaceLine);
+ PipingCalculationScenarioService.SyncCalculationScenarioWithNewSurfaceLine((PipingCalculationScenario) data.PipingCalculation, data.PipingFailureMechanism, oldSurfaceLine);
data.WrappedData.NotifyObservers();
}
}
Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs
===================================================================
diff -u -r8c60e937f4b8009fea80f3702879e100fe03b63f -r4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision 8c60e937f4b8009fea80f3702879e100fe03b63f)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision 4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd)
@@ -36,7 +36,6 @@
using Ringtoets.Piping.Data;
using Ringtoets.Piping.Forms.PresentationObjects;
using Ringtoets.Piping.Forms.Properties;
-using Ringtoets.Piping.Primitives;
using Ringtoets.Piping.Service;
using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources;
Index: Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingCalculationScenarioService.cs
===================================================================
diff -u -r0b081b2391e73b7e3ff04ef31fafd2df1b1571e3 -r4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd
--- Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingCalculationScenarioService.cs (.../PipingCalculationScenarioService.cs) (revision 0b081b2391e73b7e3ff04ef31fafd2df1b1571e3)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingCalculationScenarioService.cs (.../PipingCalculationScenarioService.cs) (revision 4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd)
@@ -57,10 +57,8 @@
return;
}
- if (RemoveScenarioFromOldSectionResult(calculationScenario, failureMechanism))
- {
- AddScenarioToNewSectionResult(calculationScenario, failureMechanism);
- }
+ RemoveScenarioFromOldSectionResult(calculationScenario, failureMechanism);
+ AddScenarioToNewSectionResult(calculationScenario, failureMechanism);
}
private static void AddScenarioToNewSectionResult(PipingCalculationScenario calculationScenario, PipingFailureMechanism failureMechanism)
@@ -77,14 +75,13 @@
}
}
- private static bool RemoveScenarioFromOldSectionResult(PipingCalculationScenario calculationScenario, PipingFailureMechanism failureMechanism)
+ private static void RemoveScenarioFromOldSectionResult(PipingCalculationScenario calculationScenario, PipingFailureMechanism failureMechanism)
{
foreach (var sectionResult in failureMechanism.SectionResults.Where(sectionResult => sectionResult.CalculationScenarios.Contains(calculationScenario)))
{
sectionResult.CalculationScenarios.Remove(calculationScenario);
- return true;
+ break;
}
- return false;
}
}
}
\ No newline at end of file
Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingCalculationTest.cs
===================================================================
diff -u -r8c60e937f4b8009fea80f3702879e100fe03b63f -r4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd
--- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingCalculationTest.cs (.../PipingCalculationTest.cs) (revision 8c60e937f4b8009fea80f3702879e100fe03b63f)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingCalculationTest.cs (.../PipingCalculationTest.cs) (revision 4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd)
@@ -254,5 +254,19 @@
// Assert
Assert.IsNaN(calculation.InputParameters.AssessmentLevel);
}
+
+ [Test]
+ public void Input_Always_ReturnsInputParamaters()
+ {
+ // Setup
+ var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput());
+ var inputParameters = calculation.InputParameters;
+
+ // Call
+ var input = calculation.Input;
+
+ // Assert
+ Assert.AreEqual(inputParameters, input);
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingInputTest.cs
===================================================================
diff -u -r1e4d77c17c6eac78bfd705efdff9e52b4fca2c7e -r4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd
--- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingInputTest.cs (.../PipingInputTest.cs) (revision 1e4d77c17c6eac78bfd705efdff9e52b4fca2c7e)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingInputTest.cs (.../PipingInputTest.cs) (revision 4af59f05cb6ced6464d51c8dff8cb0b8bfca8edd)
@@ -25,6 +25,7 @@
using Core.Common.Base.Geometry;
using Core.Common.TestUtil;
using NUnit.Framework;
+using Ringtoets.Common.Data.Calculation;
using Ringtoets.Common.Data.Probabilistics;
using Ringtoets.HydraRing.Data;
using Ringtoets.Piping.Data.Properties;
@@ -50,6 +51,7 @@
// Assert
Assert.IsInstanceOf(inputParameters);
+ Assert.IsInstanceOf(inputParameters);
Assert.IsInstanceOf(inputParameters.PhreaticLevelExit);
Assert.AreEqual(0, inputParameters.PhreaticLevelExit.Mean.Value);