Files
Kanalsanierungsverwaltung/SanSystem/FrmLinerReste.cs
2020-07-06 14:21:38 +02:00

74 lines
3.1 KiB
C#

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<string, double> Linerlaengen = new Dictionary<string, double>();
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.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();
}
}
}