Files
Kanalsanierungsverwaltung/SanSystem/frmStrassenList.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

128 lines
4.3 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
{
class StrassenContent
{
public string Strassename;
public int AnzahlObjekte;
public int AnzahlFertig;
public override string ToString()
{
return string.Format("{0} ({1} / {2})", Strassename, AnzahlFertig, AnzahlObjekte);
}
}
/// <summary>
///
/// </summary>
public partial class frmStrassenList : Form
{
BindingSource bs = new BindingSource();
/// <summary>
///
/// </summary>
public frmStrassenList()
{
InitializeComponent();
}
private void buildStreetList()
{
lst_strassen.DataSource = null;
if (Datenbank.Instance.loadedProjekt == null) return;
List<string> strassen = Datenbank.Instance.loadedProjekt.Objekte.Select(x => x.StrasseName).Distinct().ToList();
List<string> streets = new List<string>();
List<StrassenContent> strassenContents = new List<StrassenContent>();
foreach (string strassename in strassen)
{
string streetname = string.Empty;
//Anzahl gesamt objekte
IEnumerable<KlassenBIB.Inspektionsobjekt> objekte = Datenbank.Instance.loadedProjekt.Objekte.Where(x => x.StrasseName.Equals(strassename));
int counter = 0;
foreach(var objekt in objekte)
{
bool fertig = false;
foreach(var x in objekt.Sanierung)
{
AbstractSanieren abstractSanieren = (AbstractSanieren)x;
if(abstractSanieren.Fertig == true)
{
fertig = true;
}
else
{
fertig = false;
break;
}
}
if(fertig)
{
counter++;
}
}
//Debugger.Break();
strassenContents.Add(new StrassenContent()
{
Strassename = strassename,
AnzahlObjekte = objekte.Count(),
AnzahlFertig = counter
}) ;
}
lst_strassen.DataSource = strassenContents;
}
private void frmStrassenList_Load(object sender, EventArgs e)
{
this.Height = this.MdiParent.Height - 120;
buildStreetList();
btn_add.Text = Global.Instance.language.Labels["add_objekt"];
}
private void btn_add_Click(object sender, EventArgs e)
{
KlassenBIB.Inspektionsobjekt inspektionsobjekt = new KlassenBIB.Inspektionsobjekt();
inspektionsobjekt.Projektnummer = Global.Instance.ProjektNummer;
Datenbank.Instance.loadedProjekt.Objekte.Add(inspektionsobjekt);
frmObjektEdit frmObjektEdit = new frmObjektEdit(inspektionsobjekt,true);
frmObjektEdit.MdiParent = this.MdiParent;
frmObjektEdit.FormClosed += FrmObjekt_FormClosed;
frmObjektEdit.Show();
}
private void lst_strassen_DoubleClick(object sender, EventArgs e)
{
if ((sender as ListBox).SelectedItem == null) return;
StrassenContent selectedStreetName = ((sender as ListBox).SelectedItem as StrassenContent);
//Debugger.Break();
if (selectedStreetName == null) return;
frmObjekteList frmObjekteList = new frmObjekteList(selectedStreetName.Strassename);
frmObjekteList.MdiParent = this.MdiParent;
frmObjekteList.FormClosed += FrmObjekt_FormClosed;
frmObjekteList.Show();
}
private void FrmObjekt_FormClosed(object sender, FormClosedEventArgs e)
{
buildStreetList();
}
}
}