Files
Kanalsanierungsverwaltung/SanSystem/frmStrassenList.cs
HuskyTeufel 88323fcd29 Straßenliste code cleanup
radiobuttons hinzugefügt, noch kein Funktion
2021-04-09 11:58:05 +02:00

124 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
{
/// <summary>
///
/// </summary>
public partial class frmStrassenList : Form
{
BindingSource bs = new BindingSource();
/// <summary>
///
/// </summary>
public frmStrassenList()
{
InitializeComponent();
}
bool mehrereOrteAktiv()
{
return Datenbank.Instance.loadedProjekt.Objekte.Select(x => x.OrtName).Distinct().Count() > 1;
}
private void buildStreetList()
{
lst_strassen.DataSource = null;
if (Datenbank.Instance.loadedProjekt == null) return;
rdbtn_ort.Enabled = mehrereOrteAktiv();
if (!mehrereOrteAktiv()) rdbtn_street.Checked = true;
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();
}
}
}