Files
Kanalsanierungsverwaltung/SanSystem/FrmLinerReste.cs
HuskyTeufel 59495e4193 Namensumbenennung Inliner zu Schlauchliner
Fehler beim Speichern einer Imprägnierungsbericht ohne Daten behoben
Fehler beim Starten einer "first" start anwendung
Beim anlegen einer neuer Projekt wird das Dialog gleich geschlossen
2021-03-11 15:28:34 +01: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 != 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();
}
}
}