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); } } /// /// /// public partial class frmStrassenList : Form { BindingSource bs = new BindingSource(); /// /// /// public frmStrassenList() { InitializeComponent(); } private void buildStreetList() { lst_strassen.DataSource = null; List strassen = Datenbank.Instance.loadedProjekt.Objekte.Select(x => x.StrasseName).Distinct().ToList(); List streets = new List(); List strassenContents = new List(); foreach (string strassename in strassen) { string streetname = string.Empty; //Anzahl gesamt objekte IEnumerable 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(); } } }