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
74 lines
3.1 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|