From 1f1247e08f7305f446befc2d6dea9b5b5b38bcd4 Mon Sep 17 00:00:00 2001 From: Husky Date: Sat, 30 Jun 2018 17:13:12 +0200 Subject: [PATCH] Es wird versucht eine richtige projektnummer zu errechnen --- DE/DE.cs | 5 +++-- SanSystem/frmObjekteList.cs | 34 +++++++++++++++++++++++++++++++--- 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/DE/DE.cs b/DE/DE.cs index bd2f40f..b619c48 100644 --- a/DE/DE.cs +++ b/DE/DE.cs @@ -21,10 +21,11 @@ namespace Language fehlermeldungen.Add("duplicate_projektnumber_in_street", "Es sind mehrere Projektnummern in eine gleiche Straße vorhanden"); fehlermeldungen.Add("difference_ortnames_in_street", "Es sind verschiedene Ortnamen angegeben"); fehlermeldungen.Add("wrong_project_number", "Projektnummer wurde nicht korrekt vergeben!"); + fehlermeldungen.Add("suggest_proj_nr_not_found", "Es konnte leider keine empfohlene Projektnummer emittelt werden!"); + fehlermeldungen.Add("suggest_proj_nr", "Der vermeintliche Projektnummer lautet: "); - - labels.Add("ort", "Ortname"); + labels.Add("ort", "Ort"); labels.Add("projekt", "Projektnummer"); labels.Add("street", "Strassenname"); labels.Add("add_objekt", "Neues Objekt hinzufügen"); diff --git a/SanSystem/frmObjekteList.cs b/SanSystem/frmObjekteList.cs index 70d1346..f1b30cc 100644 --- a/SanSystem/frmObjekteList.cs +++ b/SanSystem/frmObjekteList.cs @@ -39,8 +39,8 @@ namespace SanSystem || (tmp.VonPunkt == null || tmp.VonPunkt.Equals("")) || (tmp.Objektbezeichnung == null || tmp.Objektbezeichnung.Equals("")) || tmp.Kanalrohrweite.Equals(0) - ) dgvw.DefaultCellStyle.BackColor = Color.Olive; - if(tmp.Projektnummer == null) dgvw.DefaultCellStyle.BackColor = Color.Red; + ) dgvw.DefaultCellStyle.BackColor = Color.Olive; + if(tmp.Projektnummer == null || tmp.Projektnummer.Equals("")) dgvw.DefaultCellStyle.BackColor = Color.Red; } return true; @@ -70,7 +70,7 @@ namespace SanSystem string fehlermeldung = string.Empty; // Prüfen nach Projektnummern List projektnummern = inspektionsobjekte.Select(x => x.Projektnummer).Distinct().ToList(); - if (projektnummern.Count > 1) fehlermeldung = string.Format("{0}",Global.Instance.language.Fehlermeldungen["duplicate_projektnumber_in_street"]); + if(projektnummern.Count > 1) fehlermeldung = string.Format("{0}", Global.Instance.language.Fehlermeldungen["duplicate_projektnumber_in_street"]); // Prüfen nach Ortnamen List ortnamen = inspektionsobjekte.Select(x => x.OrtName).Distinct().ToList(); @@ -78,6 +78,31 @@ namespace SanSystem if (!fehlermeldung.Equals(string.Empty)) MessageBox.Show(fehlermeldung, "Inhalt Fehler", MessageBoxButtons.OK, MessageBoxIcon.Warning); + if (projektnummern.Count > 1) + { + Dictionary mayProNr = new Dictionary(); + List anzahle = new List(); + foreach (string _prnr in projektnummern) + { + int anzahl = inspektionsobjekte.Where(x => x.Projektnummer.Equals(_prnr)).Count(); + mayProNr.Add(_prnr, anzahl); + anzahle.Add(anzahl); + } + + int max = anzahle.Max(); + List empProjNummer = new List(); + foreach (KeyValuePair kvp in mayProNr) + { + if (kvp.Value.Equals(max)) empProjNummer.Add(kvp.Key); + else + continue; + } + if (empProjNummer.Count > 1) MessageBox.Show(Global.Instance.language.Fehlermeldungen["suggest_proj_nr_not_found"]); + else + MessageBox.Show(string.Format("{0}\n{1}", Global.Instance.language.Fehlermeldungen["suggest_proj_nr"], empProjNummer.Last())); + + + } txt_ort.Text = ortnamen.First(); @@ -125,6 +150,9 @@ namespace SanSystem private void btn_add_Click(object sender, EventArgs e) { Inspektionsobjekt inspektionsobjekt = new Inspektionsobjekt(); + inspektionsobjekt.Projektnummer = inspektionsobjekte.First().Projektnummer; + inspektionsobjekt.OrtName = inspektionsobjekte.First().OrtName; + inspektionsobjekt.StrasseName = inspektionsobjekte.First().StrasseName; Datenbank.Instance.loadedProjekt.Objekte.Add(inspektionsobjekt); frmObjektEdit frmObjektEdit = new frmObjektEdit(inspektionsobjekt);