using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using KlassenBIB; using System.Diagnostics; using Database; namespace SanSystem { public partial class UCWerkseitigImprägniert : UserControl { InlinerSanierung inliner; public UCWerkseitigImprägniert() { InitializeComponent(); } public UCWerkseitigImprägniert(InlinerSanierung inliner) { InitializeComponent(); this.inliner = inliner; } private void UCWerkseitigImprägniert_Load(object sender, EventArgs e) { lst_imprägnierberichte.DataSource = Database.Datenbank.Instance.MainDatenbank.ImprägnierBerichtListe; int index = 0; foreach(WerkseitigImprägniert x in Database.Datenbank.Instance.MainDatenbank.ImprägnierBerichtListe.ToList()) { WerkseitigImprägniert werkseitig = (WerkseitigImprägniert)inliner.Imprägnierungsbericht; if (werkseitig != null) { if (x.Imprägniernummer.Equals(werkseitig.Imprägniernummer)) break; } else { break; } index++; } if (index > Database.Datenbank.Instance.MainDatenbank.ImprägnierBerichtListe.Capacity) index = 0; lst_imprägnierberichte.SelectedIndex = index; } private void Btn_save_Click(object sender, EventArgs e) { WerkseitigImprägniert orginalImprägnier = null; WerkseitigImprägniert imprignier = (WerkseitigImprägniert)lst_imprägnierberichte.SelectedItem; if (imprignier == null) { MessageBox.Show("Imprignierung is null"); return; } if (inliner.Imprägnierungsbericht != imprignier && inliner.Imprägnierungsbericht != null) orginalImprägnier = Datenbank.Instance.MainDatenbank.ImprägnierBerichtListe.FindLast(x => x.Imprägniernummer.Equals((inliner.Imprägnierungsbericht as WerkseitigImprägniert).Imprägniernummer)); inliner.Imprägnierungsbericht = imprignier; if (orginalImprägnier != null) { //Debugger.Break(); //Imprägnierungsbericht hat sich geändert, aus alte Liste löschen if (orginalImprägnier.MitLinerSanierteObjekte != null) { SanierteObjekte sanierteObjekte = orginalImprägnier.MitLinerSanierteObjekte.FindLast(x => x.Projektnummer.Equals(Global.Instance.ProjektNummer)); if (sanierteObjekte != null) { Inspektionsobjekt inspektionsobjekt = sanierteObjekte.Objekt.FindLast(x => x.Guid.Equals(inliner.Inspektionsobjekt.Guid)); sanierteObjekte.Objekt.Remove(inspektionsobjekt); } } } bool neu = false; if (imprignier.MitLinerSanierteObjekte == null) { imprignier.MitLinerSanierteObjekte = new List(); neu = true; } SanierteObjekte objekt = null; if(imprignier.MitLinerSanierteObjekte.Count > 0) { objekt = imprignier.MitLinerSanierteObjekte.FindLast(x => x.Projektnummer.Equals(Global.Instance.ProjektNummer)); } if (objekt == null) { objekt = new SanierteObjekte(); objekt.Projektnummer = Global.Instance.ProjektNummer; } if(objekt.Objekt == null) objekt.Objekt = new List(); if (objekt.Objekt.FindAll(x => x.Guid.Equals(inliner.Inspektionsobjekt.Guid)).Count < 1) { objekt.Objekt.Add(inliner.Inspektionsobjekt); if(neu) imprignier.MitLinerSanierteObjekte.Add(objekt); } } } }