diff --git a/KlassenBIB/KlassenBIB.csproj b/KlassenBIB/KlassenBIB.csproj
index ba7034c..6c09034 100644
--- a/KlassenBIB/KlassenBIB.csproj
+++ b/KlassenBIB/KlassenBIB.csproj
@@ -47,6 +47,7 @@
+
diff --git a/KlassenBIB/LinerReste.cs b/KlassenBIB/LinerReste.cs
new file mode 100644
index 0000000..426bd5e
--- /dev/null
+++ b/KlassenBIB/LinerReste.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace KlassenBIB
+{
+ public class LinerReste
+ {
+
+ }
+}
diff --git a/SanSystem/FrmLinerReste.cs b/SanSystem/FrmLinerReste.cs
index 3058a61..a94aeb4 100644
--- a/SanSystem/FrmLinerReste.cs
+++ b/SanSystem/FrmLinerReste.cs
@@ -15,25 +15,48 @@ namespace SanSystem
{
public partial class FrmLinerReste : Form
{
+ Dictionary Linerlaengen = new Dictionary();
+
private void BuildListe()
{
list_liner.Items.Clear();
- foreach (WerkseitigImprägniert linerTruhe in Database.Datenbank.Instance.TeufelDB.Imprägnierungen)
+ Linerlaengen.Clear();
+ // Jedes Projekt durchgehen
+ foreach (Projekt projekt in Database.Datenbank.Instance.TeufelDB.Projekte)
{
- double verbrauch = 0;
- decimal rest = linerTruhe.LinerLänge;
- if (linerTruhe.NochVorhanden == false) continue;
- /*
- if (linerTruhe.MitLinerSanierteObjekte != null)
+ // Alle Objekte durchgehen
+ foreach(Inspektionsobjekt inspektionsobjekt in projekt.Objekte)
{
- linerTruhe.MitLinerSanierteObjekte.ForEach(x => x.Objekt.ForEach(d => verbrauch += d.Haltungslaenge));
- rest -= Convert.ToDecimal(verbrauch);
+ // Alle Sanierungen durchgehen
+ foreach(Sanierung sanierung in inspektionsobjekt.Sanierung)
+ {
+ if (sanierung is InlinerSanierung && (sanierung as InlinerSanierung).Imprägnierungsbericht != null && (sanierung as InlinerSanierung).Imprägnierungsbericht is WerkseitigImprägniert)
+ {
+ WerkseitigImprägniert werkseitigImprägniert = ((sanierung as InlinerSanierung).Imprägnierungsbericht as WerkseitigImprägniert);
+ if(Linerlaengen.ContainsKey(werkseitigImprägniert.Imprägniernummer))
+ {
+ Linerlaengen[werkseitigImprägniert.Imprägniernummer] += inspektionsobjekt.Haltungslaenge + inspektionsobjekt.Schachtlaenge;
+ }
+ else
+ {
+ Linerlaengen.Add(werkseitigImprägniert.Imprägniernummer, inspektionsobjekt.Haltungslaenge + inspektionsobjekt.Schachtlaenge);
+ }
+ }
+
+ }
}
- */
+ }
- string listoutput = string.Format("({0}) DN: {1} G: {2} R: {3}", linerTruhe.Imprägniernummer, linerTruhe.DN, linerTruhe.LinerLänge, rest);
+ foreach(string imprägniernummer in Linerlaengen.Keys)
+ {
+ // Liner länge insgesammt rausfinden
+ WerkseitigImprägniert werkseitigImprägniert = Database.Datenbank.Instance.TeufelDB.Imprägnierungen.FindLast(x => x.Imprägniernummer.Equals(imprägniernummer));
+ if (werkseitigImprägniert.NochVorhanden == false) continue;
+ decimal rest = werkseitigImprägniert.LinerLänge - Convert.ToDecimal(Linerlaengen[imprägniernummer]);
+ string listoutput = string.Format("({0}) DN: {1} G: {2} R: {3}", imprägniernummer, werkseitigImprägniert.DN, werkseitigImprägniert.LinerLänge, rest);
list_liner.Items.Add(listoutput);
}
+
}
public FrmLinerReste()
{