Gegeninspektionen werden nun zusammengeführt

This commit is contained in:
Damian Wessels
2024-08-23 16:53:28 +02:00
parent 6987f8d499
commit 6b9f157a36
5 changed files with 60 additions and 6 deletions

View File

@@ -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<KanalObjekt> 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);
}
}
}

View File

@@ -1,3 +1,5 @@
using System.Collections.Generic;
namespace Schnittstelle.Import.XML.v2013.Model namespace Schnittstelle.Import.XML.v2013.Model
{ {
public sealed class InspizierteAbwassertechnischeAnlage public sealed class InspizierteAbwassertechnischeAnlage
@@ -5,7 +7,7 @@ namespace Schnittstelle.Import.XML.v2013.Model
string objektbezeichnung; string objektbezeichnung;
Lage lage; Lage lage;
EAnlagetyp anlagentyp; EAnlagetyp anlagentyp;
OptischeInspektion optischeInspektion; List<OptischeInspektion> optischeInspektion = new List<OptischeInspektion>();
public string Objektbezeichnung public string Objektbezeichnung
{ {
@@ -29,7 +31,7 @@ namespace Schnittstelle.Import.XML.v2013.Model
anlagentyp = value; anlagentyp = value;
} }
} }
public OptischeInspektion OptischeInspektion public List<OptischeInspektion> OptischeInspektion
{ {
get get
{ {
@@ -53,7 +55,7 @@ namespace Schnittstelle.Import.XML.v2013.Model
} }
public override string ToString() public override string ToString()
{ {
return objektbezeichnung + " " + optischeInspektion.Rohrleitung.Grunddaten.Profilbreite; return objektbezeichnung + " " + optischeInspektion[0].Rohrleitung.Grunddaten.Profilbreite;
} }
} }
} }

View File

@@ -7,7 +7,7 @@ namespace Schnittstelle.Import.XML.v2013.Model
public InspizierteAbwassertechnischeAnlage Inspektionsdaten { get; set; } public InspizierteAbwassertechnischeAnlage Inspektionsdaten { get; set; }
public override string ToString() 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);
} }
} }
} }

View File

@@ -3,6 +3,7 @@ using Schnittstelle.DWA149_2_2013;
using Schnittstelle.Import.XML.v2013.Model; using Schnittstelle.Import.XML.v2013.Model;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
@@ -101,7 +102,17 @@ namespace Schnittstelle.Import.XML.v2013
foreach (XmlNode node in Inspektionsdaten) 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; return result;
@@ -134,7 +145,7 @@ namespace Schnittstelle.Import.XML.v2013
} }
result.Lage = new Lage(strassename, ortname); result.Lage = new Lage(strassename, ortname);
break; break;
case "OptischeInspektion": result.OptischeInspektion = parseOptischeInspektion(d); break; case "OptischeInspektion": result.OptischeInspektion.Add(parseOptischeInspektion(d)); break;
} }
} }
return result; return result;

View File

@@ -5,4 +5,8 @@
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<PackageReference Include="Syncfusion.XlsIO.Net.Core" Version="26.2.10" />
</ItemGroup>
</Project> </Project>