// 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 System.Linq; using System.Xml; using System.Xml.Linq; namespace Ringtoets.Common.IO.Readers { /// /// Helper methods related to instances. /// public static class ConfigurationReaderHelper { /// /// Gets the double value from a child element. /// /// The that contains the child element. /// The name of the child element. /// The value of the element, or null when the /// does not have child elements of . /// Thrown when any parameter is null. public static double? GetDoubleValueFromChildElement(XElement parentElement, string childElementName) { if (parentElement == null) { throw new ArgumentNullException(nameof(parentElement)); } if (childElementName == null) { throw new ArgumentNullException(nameof(childElementName)); } XElement childElement = GetChildElement(parentElement, childElementName); return childElement != null ? (double?) XmlConvert.ToDouble(childElement.Value) : null; } /// /// Gets the string value from a child element. /// /// The that contains the child element. /// The name of the child element. /// The value of the element, or null when the /// does not have child elements of . /// Thrown when any parameter is null. public static string GetStringValueFromChildElement(XElement parentElement, string childElementName) { if (parentElement == null) { throw new ArgumentNullException(nameof(parentElement)); } if (childElementName == null) { throw new ArgumentNullException(nameof(childElementName)); } XElement childElement = GetChildElement(parentElement, childElementName); return childElement?.Value; } private static XElement GetChildElement(XElement parentElement, string childElementName) { return parentElement.Elements(childElementName).FirstOrDefault(); } } }