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