Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Readers/PipingConfigurationReader.cs =================================================================== diff -u -r14bc51c4c374a77f6e5b7e4f707eb0f412bb668a -r15d97cb9dc7d76f8c8f89261d7ea8a46b9643b01 --- Ringtoets/Piping/src/Ringtoets.Piping.IO/Readers/PipingConfigurationReader.cs (.../PipingConfigurationReader.cs) (revision 14bc51c4c374a77f6e5b7e4f707eb0f412bb668a) +++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Readers/PipingConfigurationReader.cs (.../PipingConfigurationReader.cs) (revision 15d97cb9dc7d76f8c8f89261d7ea8a46b9643b01) @@ -22,7 +22,6 @@ using System; using System.Collections.Generic; using System.IO; -using System.Linq; using System.Xml; using System.Xml.Linq; using System.Xml.Schema; @@ -40,6 +39,8 @@ /// public class PipingConfigurationReader { + private readonly XDocument xmlDocument; + /// /// Creates a new instance of . /// @@ -58,7 +59,7 @@ ValidateFileExists(xmlFilePath); - XDocument xmlDocument = LoadDocument(xmlFilePath); + xmlDocument = LoadDocument(xmlFilePath); ValidateToSchema(xmlDocument, xmlFilePath); } @@ -69,7 +70,7 @@ /// A collection of read . public IEnumerable Read() { - return Enumerable.Empty(); + return ParseReadPipingCalculationItems(xmlDocument.Root.Elements()); // Note: root element is always present due to XSD validation } /// @@ -129,6 +130,36 @@ } } + private static IEnumerable ParseReadPipingCalculationItems(IEnumerable elements) + { + foreach (XElement element in elements) + { + if (element.Name == "berekening") + { + yield return ParseReadPipingCalculation(element); + } + + if (element.Name == "folder") + { + yield return ParseReadPipingCalculationGroup(element); + } + } + } + + private static ReadPipingCalculationGroup ParseReadPipingCalculationGroup(XElement folderElement) + { + return new ReadPipingCalculationGroup(folderElement.Attribute("naam").Value, + ParseReadPipingCalculationItems(folderElement.Elements())); + } + + private static ReadPipingCalculation ParseReadPipingCalculation(XElement element) + { + return new ReadPipingCalculation(new ReadPipingCalculation.ConstructionProperties + { + Name = element.Attribute("naam").Value + }); + } + private static XmlSchemaSet LoadXmlSchema() { Stream schemaFile = AssemblyUtils.GetAssemblyResourceStream(typeof(PipingConfigurationReader).Assembly,