Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRingConfiguration.cs =================================================================== diff -u -r50ec6030af058eee675d7d9527ddf1e5ed57f3da -ra100e8bcc81a29215449021e58dd25ab79e27718 --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRingConfiguration.cs (.../HydraRingConfiguration.cs) (revision 50ec6030af058eee675d7d9527ddf1e5ed57f3da) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRingConfiguration.cs (.../HydraRingConfiguration.cs) (revision a100e8bcc81a29215449021e58dd25ab79e27718) @@ -31,22 +31,45 @@ /// public class HydraRingConfiguration { - private readonly Dictionary> configurationDictionary = new Dictionary>(); - /// - /// Creates a new instance of the class. + /// Gets or sets the . /// - public HydraRingConfiguration() - { - InitializeHydraulicModels(); - } + public TimeIntegrationScheme TimeIntegrationScheme { get; set; } /// /// Generates a database creation script that can be used to perform a Hydra-Ring calculation. /// /// The database creation script. public string GenerateDataBaseCreationScript() { + var configurationDictionary = new Dictionary>(); + + InitializeHydraulicModelsConfiguration(configurationDictionary); + + return GenerateDataBaseCreationScript(configurationDictionary); + } + + private void InitializeHydraulicModelsConfiguration(Dictionary> configurationDictionary) + { + configurationDictionary["HydraulicModels"] = new List + { + new OrderedDictionary + { + { + "TimeIntegrationSchemeID", TimeIntegrationScheme != TimeIntegrationScheme.None ? (int?) TimeIntegrationScheme : null + }, + { + "UncertaintiesID", null // Model property: HydraulicModelsUncertaintiesId + }, + { + "DataSetName", "WTI 2017" + } + } + }; + } + + private static string GenerateDataBaseCreationScript(Dictionary> configurationDictionary) + { var lines = new List(); foreach (var tableName in configurationDictionary.Keys) @@ -95,24 +118,5 @@ return string.Join(Environment.NewLine, lines); } - - private void InitializeHydraulicModels() - { - configurationDictionary["HydraulicModels"] = new List - { - new OrderedDictionary - { - { - "TimeIntegrationSchemeID", null // Model property: HydraulicModelsTimeIntegrationSchemeId - }, - { - "UncertaintiesID", null // Model property: HydraulicModelsUncertaintiesId - }, - { - "DataSetName", "WTI 2017" - } - } - }; - } } } \ No newline at end of file Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Ringtoets.HydraRing.Calculation.csproj =================================================================== diff -u -r50ec6030af058eee675d7d9527ddf1e5ed57f3da -ra100e8bcc81a29215449021e58dd25ab79e27718 --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Ringtoets.HydraRing.Calculation.csproj (.../Ringtoets.HydraRing.Calculation.csproj) (revision 50ec6030af058eee675d7d9527ddf1e5ed57f3da) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Ringtoets.HydraRing.Calculation.csproj (.../Ringtoets.HydraRing.Calculation.csproj) (revision a100e8bcc81a29215449021e58dd25ab79e27718) @@ -41,6 +41,7 @@ + Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/TimeIntegrationScheme.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/TimeIntegrationScheme.cs (revision 0) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/TimeIntegrationScheme.cs (revision a100e8bcc81a29215449021e58dd25ab79e27718) @@ -0,0 +1,40 @@ +// 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 System.ComponentModel; + +namespace Ringtoets.HydraRing.Calculation +{ + /// + /// Enumeration that defines the possible time integration schemes. + /// + /// + /// The integer values correspond to time integration scheme ids defined by Hydra-Ring. + /// + public enum TimeIntegrationScheme + { + [Description("---")] + None= 0, + FBC = 1, + APT = 2, + NTI = 3 + } +} Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/HydraRingConfigurationTest.cs =================================================================== diff -u -r50ec6030af058eee675d7d9527ddf1e5ed57f3da -ra100e8bcc81a29215449021e58dd25ab79e27718 --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/HydraRingConfigurationTest.cs (.../HydraRingConfigurationTest.cs) (revision 50ec6030af058eee675d7d9527ddf1e5ed57f3da) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/HydraRingConfigurationTest.cs (.../HydraRingConfigurationTest.cs) (revision a100e8bcc81a29215449021e58dd25ab79e27718) @@ -38,5 +38,21 @@ Assert.AreEqual(expectedCreationScript, creationScript); } + + [Test] + public void GenerateDataBaseCreationScript_NonDefaultHydraRingConfiguration_ReturnsExpectedCreationScript() + { + var hydraRingConfiguration = new HydraRingConfiguration + { + TimeIntegrationScheme = TimeIntegrationScheme.NTI + }; + + var expectedCreationScript = "DELETE FROM [HydraulicModels];" + Environment.NewLine + + "INSERT INTO [HydraulicModels] VALUES (" + (int) TimeIntegrationScheme.NTI + ", NULL, 'WTI 2017');" + Environment.NewLine; + + var creationScript = hydraRingConfiguration.GenerateDataBaseCreationScript(); + + Assert.AreEqual(expectedCreationScript, creationScript); + } } } Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Ringtoets.HydraRing.Calculation.Test.csproj =================================================================== diff -u -r50ec6030af058eee675d7d9527ddf1e5ed57f3da -ra100e8bcc81a29215449021e58dd25ab79e27718 --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Ringtoets.HydraRing.Calculation.Test.csproj (.../Ringtoets.HydraRing.Calculation.Test.csproj) (revision 50ec6030af058eee675d7d9527ddf1e5ed57f3da) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Ringtoets.HydraRing.Calculation.Test.csproj (.../Ringtoets.HydraRing.Calculation.Test.csproj) (revision a100e8bcc81a29215449021e58dd25ab79e27718) @@ -41,6 +41,7 @@ + Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/TimeIntegrationSchemeTest.cs =================================================================== diff -u --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/TimeIntegrationSchemeTest.cs (revision 0) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/TimeIntegrationSchemeTest.cs (revision a100e8bcc81a29215449021e58dd25ab79e27718) @@ -0,0 +1,45 @@ +// 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 System; +using NUnit.Framework; + +namespace Ringtoets.HydraRing.Calculation.Test +{ + [TestFixture] + public class TimeIntegrationSchemeTest + { + [Test] + public void Values_HasFour() + { + Assert.AreEqual(4, Enum.GetValues(typeof(TimeIntegrationScheme)).Length); + } + + [Test] + public void ConvertToInteger_ForAllValues_ReturnsExpectedInteger() + { + Assert.AreEqual(0, (int) TimeIntegrationScheme.None); + Assert.AreEqual(1, (int) TimeIntegrationScheme.FBC); + Assert.AreEqual(2, (int) TimeIntegrationScheme.APT); + Assert.AreEqual(3, (int) TimeIntegrationScheme.NTI); + } + } +}