110 lines
4.2 KiB
C#
110 lines
4.2 KiB
C#
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<SanierteObjekte>();
|
|
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<Inspektionsobjekt>();
|
|
|
|
if (objekt.Objekt.FindAll(x => x.Guid.Equals(inliner.Inspektionsobjekt.Guid)).Count < 1)
|
|
{
|
|
objekt.Objekt.Add(inliner.Inspektionsobjekt);
|
|
if(neu)
|
|
imprignier.MitLinerSanierteObjekte.Add(objekt);
|
|
}
|
|
}
|
|
}
|
|
}
|