diff --git a/Schnittstelle/Export/Excel.cs b/Schnittstelle/Export/Excel.cs new file mode 100644 index 0000000..755ccba --- /dev/null +++ b/Schnittstelle/Export/Excel.cs @@ -0,0 +1,37 @@ +using Schnittstelle.Import.XML.v2013.Model; +using Syncfusion.XlsIO; +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace Schnittstelle.Export +{ + public static class Excel + { + const string LizenceKey = "Ngo9BigBOggjHTQxAR8/V1NCaF5cXmZCf1FpRmJGdld5fUVHYVZUTXxaS00DNHVRdkdnWXdccXRQQ2NZWEBxWUM="; + public static void MakeWorkbook(List KanalObjekte) + { + Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense(LizenceKey); + ExcelEngine excelEngine = new ExcelEngine(); + IApplication application = excelEngine.Excel; + + application.DefaultVersion = ExcelVersion.Xlsx; + IWorkbook workbook = application.Workbooks.Create(KanalObjekte.Count); + for (int i = 0; i < KanalObjekte.Count; i++) + { + IWorksheet worksheet = workbook.Worksheets[i]; + KanalObjekt k = KanalObjekte[i]; + CalculateHaltung(k, worksheet); + } + FileStream stream = new FileStream("beurteilung.xlsx", FileMode.Create, FileAccess.ReadWrite); + workbook.SaveAs(stream); + stream.Dispose(); + } + + private static void CalculateHaltung(KanalObjekt haltung, IWorksheet worksheet) + { + worksheet.Name = string.Format("{0}", haltung.Stammdaten.Objektbezeichnung); + } + } +} diff --git a/Schnittstelle/Import/XML/v2013/Model/InspizierteAbwassertechnischeAnlage.cs b/Schnittstelle/Import/XML/v2013/Model/InspizierteAbwassertechnischeAnlage.cs index d7dff60..4ee180c 100644 --- a/Schnittstelle/Import/XML/v2013/Model/InspizierteAbwassertechnischeAnlage.cs +++ b/Schnittstelle/Import/XML/v2013/Model/InspizierteAbwassertechnischeAnlage.cs @@ -1,3 +1,5 @@ +using System.Collections.Generic; + namespace Schnittstelle.Import.XML.v2013.Model { public sealed class InspizierteAbwassertechnischeAnlage @@ -5,7 +7,7 @@ namespace Schnittstelle.Import.XML.v2013.Model string objektbezeichnung; Lage lage; EAnlagetyp anlagentyp; - OptischeInspektion optischeInspektion; + List optischeInspektion = new List(); public string Objektbezeichnung { @@ -29,7 +31,7 @@ namespace Schnittstelle.Import.XML.v2013.Model anlagentyp = value; } } - public OptischeInspektion OptischeInspektion + public List OptischeInspektion { get { @@ -53,7 +55,7 @@ namespace Schnittstelle.Import.XML.v2013.Model } public override string ToString() { - return objektbezeichnung + " " + optischeInspektion.Rohrleitung.Grunddaten.Profilbreite; + return objektbezeichnung + " " + optischeInspektion[0].Rohrleitung.Grunddaten.Profilbreite; } } } diff --git a/Schnittstelle/Import/XML/v2013/Model/KanalObjekt.cs b/Schnittstelle/Import/XML/v2013/Model/KanalObjekt.cs index d9287c8..d2e3803 100644 --- a/Schnittstelle/Import/XML/v2013/Model/KanalObjekt.cs +++ b/Schnittstelle/Import/XML/v2013/Model/KanalObjekt.cs @@ -7,7 +7,7 @@ namespace Schnittstelle.Import.XML.v2013.Model public InspizierteAbwassertechnischeAnlage Inspektionsdaten { get; set; } public override string ToString() { - return string.Format("{0} ({1})",Stammdaten.Objektbezeichnung, Inspektionsdaten.OptischeInspektion.Rohrleitung != null ? Inspektionsdaten.OptischeInspektion.Rohrleitung.Grunddaten.Profilbreite: 0); + return string.Format("{0} ({1})",Stammdaten.Objektbezeichnung, Inspektionsdaten.OptischeInspektion[0].Rohrleitung != null ? Inspektionsdaten.OptischeInspektion[0].Rohrleitung.Grunddaten.Profilbreite: 0); } } } diff --git a/Schnittstelle/Import/XML/v2013/XML2013.cs b/Schnittstelle/Import/XML/v2013/XML2013.cs index d511772..ba33dc0 100644 --- a/Schnittstelle/Import/XML/v2013/XML2013.cs +++ b/Schnittstelle/Import/XML/v2013/XML2013.cs @@ -3,6 +3,7 @@ using Schnittstelle.DWA149_2_2013; using Schnittstelle.Import.XML.v2013.Model; using System; using System.Collections.Generic; +using System.Diagnostics; using System.IO; using System.Linq; using System.Text; @@ -101,7 +102,17 @@ namespace Schnittstelle.Import.XML.v2013 foreach (XmlNode node in Inspektionsdaten) { - result.Add(ParseInspektion(node)); + var parsedInspektion = ParseInspektion(node); + var src = result.Find(x => x.Objektbezeichnung == parsedInspektion.Objektbezeichnung); + + if (src != null) + { + src.OptischeInspektion.Add(parsedInspektion.OptischeInspektion[0]); + } + else + { + result.Add(parsedInspektion); + } } return result; @@ -134,7 +145,7 @@ namespace Schnittstelle.Import.XML.v2013 } result.Lage = new Lage(strassename, ortname); break; - case "OptischeInspektion": result.OptischeInspektion = parseOptischeInspektion(d); break; + case "OptischeInspektion": result.OptischeInspektion.Add(parseOptischeInspektion(d)); break; } } return result; diff --git a/Schnittstelle/Schnittstelle.csproj b/Schnittstelle/Schnittstelle.csproj index 8ef8970..65484c6 100644 --- a/Schnittstelle/Schnittstelle.csproj +++ b/Schnittstelle/Schnittstelle.csproj @@ -5,4 +5,8 @@ enable + + + +