diff --git a/SanSystem/UCWerkseitigImprägniert.cs b/SanSystem/UCWerkseitigImprägniert.cs index 9d1eb41..b32c1f4 100644 --- a/SanSystem/UCWerkseitigImprägniert.cs +++ b/SanSystem/UCWerkseitigImprägniert.cs @@ -8,6 +8,8 @@ using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using KlassenBIB; +using System.Diagnostics; +using Database; namespace SanSystem { @@ -50,16 +52,38 @@ namespace SanSystem 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; } - inliner.Imprägnierungsbericht = (WerkseitigImprägniert)lst_imprägnierberichte.SelectedItem; - if(imprignier.MitLinerSanierteObjekte == null) + 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) @@ -77,7 +101,8 @@ namespace SanSystem if (objekt.Objekt.FindAll(x => x.Guid.Equals(inliner.Inspektionsobjekt.Guid)).Count < 1) { objekt.Objekt.Add(inliner.Inspektionsobjekt); - imprignier.MitLinerSanierteObjekte.Add(objekt); + if(neu) + imprignier.MitLinerSanierteObjekte.Add(objekt); } } }