using Database; using KlassenBIB; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace SanSystem { public partial class FrmLinerReste : Form { Dictionary Linerlaengen = new Dictionary(); private void BuildListe() { list_liner.Items.Clear(); Linerlaengen.Clear(); // Jedes Projekt durchgehen foreach (Projekt projekt in Database.Datenbank.Instance.TeufelDB.Projekte) { // Alle Objekte durchgehen foreach(Inspektionsobjekt inspektionsobjekt in projekt.Objekte) { // 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); } } } } } 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 != null && 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() { InitializeComponent(); Global.Instance.RequestBuildNewLinerReste += Instance_RequestBuildNewLinerReste; BuildListe(); } private void Instance_RequestBuildNewLinerReste(object sender, EventArgs e) { BuildListe(); } } }