// Copyright (C) Stichting Deltares 2023. All rights reserved. // // This file is part of the application DAM - Live. // // DAM - Live is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero 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 Affero General Public License for more details. // // You should have received a copy of the GNU Affero 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 Deltares.Dam.Data; using Deltares.DamLive.Io; using Deltares.DamLive.Data; namespace Deltares.DamLive.Application; public static class FillXmlCalculationParametersFromDomain { public static XmlCalculationParameters CreateCalculationParameters(CalculationParameters calculationParameters) { var calculationParametersXml = new XmlCalculationParameters(); TransferCalculationModules(calculationParameters.CalculationModules, calculationParametersXml); TransferStabilityParameters(calculationParameters.StabilityParameters, calculationParametersXml); return calculationParametersXml; } private static void TransferCalculationModules(CalculationModules calculationModules, XmlCalculationParameters calculationParametersXml) { var xmlCalculationParametersCalculationModules = new XmlCalculationParametersCalculationModules(); if (calculationModules != null) { xmlCalculationParametersCalculationModules.PipingWtiSpecified = true; xmlCalculationParametersCalculationModules.PipingBlighSpecified = true; xmlCalculationParametersCalculationModules.StabilityInsideSpecified = true; xmlCalculationParametersCalculationModules.StabilityOutsideSpecified = true; xmlCalculationParametersCalculationModules.PipingWti = calculationModules.PipingWti; xmlCalculationParametersCalculationModules.PipingBligh = calculationModules.PipingBligh; xmlCalculationParametersCalculationModules.StabilityInside = calculationModules.StabilityInside; xmlCalculationParametersCalculationModules.StabilityOutside = calculationModules.StabilityOutside; } calculationParametersXml.CalculationModules = xmlCalculationParametersCalculationModules; } private static void TransferStabilityParameters(MStabParameters stabilityParameters, XmlCalculationParameters calculationParametersXml) { var xmlCalculationParametersStabilityParameters = new XmlCalculationParametersStabilityParameters(); if (stabilityParameters != null) { xmlCalculationParametersStabilityParameters.CalculationModelSpecified = true; xmlCalculationParametersStabilityParameters.SearchMethodSpecified = true; xmlCalculationParametersStabilityParameters.CalculationModel = XmlConversionHelper.ConvertToModelType(stabilityParameters.Model); xmlCalculationParametersStabilityParameters.SearchMethod = XmlConversionHelper.ConvertToSearchMethod(stabilityParameters.SearchMethod); } calculationParametersXml.StabilityParameters = xmlCalculationParametersStabilityParameters; } }