// 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 FillDomainFromXmlCalculationParameters { public static CalculationParameters CreateCalculationParameters(XmlCalculationParameters xmlCalculationParameters) { var calculationParameters = new CalculationParameters(); TransferCalculationModules(xmlCalculationParameters.CalculationModules, calculationParameters); TransferStabilityParameters(xmlCalculationParameters.StabilityParameters, calculationParameters); return calculationParameters; } private static void TransferCalculationModules(XmlCalculationParametersCalculationModules calculationModulesXml, CalculationParameters calculationParameters) { var calculationModules = new CalculationModules(); if (calculationModulesXml != null) { if (calculationModulesXml.PipingWtiSpecified) { calculationModules.PipingWti = calculationModulesXml.PipingWti; } if (calculationModulesXml.PipingBlighSpecified) { calculationModules.PipingBligh = calculationModulesXml.PipingBligh; } if (calculationModulesXml.StabilityInsideSpecified) { calculationModules.StabilityInside = calculationModulesXml.StabilityInside; } if (calculationModulesXml.StabilityOutsideSpecified) { calculationModules.StabilityOutside = calculationModulesXml.StabilityOutside; } } calculationParameters.CalculationModules = calculationModules; } private static void TransferStabilityParameters(XmlCalculationParametersStabilityParameters stabilityParametersXml, CalculationParameters calculationParameters) { MStabParameters stabParameters = null; if (stabilityParametersXml.SearchMethodSpecified || stabilityParametersXml.CalculationModelSpecified) { stabParameters = new MStabParameters(); if (stabilityParametersXml.CalculationModelSpecified) { stabParameters.Model = XmlConversionHelper.ConvertToModelType(stabilityParametersXml.CalculationModel); } if (stabilityParametersXml.SearchMethodSpecified) { stabParameters.SearchMethod = XmlConversionHelper.ConvertToSearchMethod(stabilityParametersXml.SearchMethod); } } calculationParameters.StabilityParameters = stabParameters; } }