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,