using KlassenBIB; using SanShared; using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xaml; namespace Database { class UpdateDatabase { public static void UpdateNewGuids() { if (Datenbank.Instance.loadedProjekt == null) return; foreach(var entries in Datenbank.Instance.loadedProjekt.Objekte) { if(entries.Guid.Equals(Guid.Empty)) entries.Guid = Guid.NewGuid(); foreach(var sanierungen in entries.Sanierung) { if (sanierungen.Guid.Equals(Guid.Empty)) sanierungen.Guid = Guid.NewGuid(); } } return; } public static void TransferSanierteObjekte() { List projekte = new List(); Projekt tempProjekt = null; foreach (DirectoryInfo projekt in (new DirectoryInfo("./projekte").GetDirectories())) { projekte.Add(projekt.Name); } foreach (string t in projekte) { Dictionary> SanObjekte = new Dictionary>(); string filepath = Path.Combine("projekte", t, string.Format("{0}.xaml", t)); if (!File.Exists(filepath)) continue; tempProjekt = XamlServices.Load(filepath) as KlassenBIB.Projekt; SanierteObjekte sanierteObjekte = new SanierteObjekte(); sanierteObjekte.Projektnummer = tempProjekt.Nummer; foreach (var d in tempProjekt.Objekte) { foreach(var s in d.Sanierung) { if(s is InlinerSanierung) { var x = s as InlinerSanierung; if (x.LinerTyp != null && x.LinerTyp.Contains("Multiflex")) break; else { if ((WerkseitigImprägniert)x.Imprägnierungsbericht == null) continue; WerkseitigImprägniert werkseitig = (WerkseitigImprägniert)x.Imprägnierungsbericht; if(SanObjekte.ContainsKey(werkseitig.Imprägniernummer)) { SanObjekte[werkseitig.Imprägniernummer].Add(d); } else { List ob = new List(); ob.Add(d); SanObjekte.Add(werkseitig.Imprägniernummer, ob); } } } } } if (SanObjekte.Count > 0) { } //Debugger.Break(); } } public static void MakeNewDatabaseSystem() { List projekte = new List(); Projekt tempProjekt = null; foreach (DirectoryInfo projekt in (new DirectoryInfo("./projekte").GetDirectories())) { projekte.Add(projekt.Name); } foreach (string t in projekte) { string filepath = Path.Combine("projekte", t, string.Format("{0}.xaml", t)); if (!File.Exists(filepath)) continue; tempProjekt = XamlServices.Load(filepath) as KlassenBIB.Projekt; Datenbank.Instance.TeufelDB.Projekte.Add(tempProjekt); //var x = Datenbank.Instance.MainDatenbank.AuftraggeberListe; } Datenbank.Instance.TeufelDB.Auftraggeber = Datenbank.Instance.MainDatenbank.AuftraggeberListe; Datenbank.Instance.TeufelDB.Imprägnierungen = Datenbank.Instance.MainDatenbank.ImprägnierBerichtListe; ClearImprägnierungen(); GenerateNewBeziehungen(); } static void ClearImprägnierungen() { foreach(var x in Datenbank.Instance.TeufelDB.Imprägnierungen) { if (x.MitLinerSanierteObjekte == null) continue; x.MitLinerSanierteObjekte.Clear(); } } static void GenerateNewBeziehungen() { string imprägnierungsnummer = ""; foreach(Projekt projekt in Datenbank.Instance.TeufelDB.Projekte) { foreach(Inspektionsobjekt inspektionsobjekt in projekt.Objekte) { if(inspektionsobjekt.Sanierung.Count > 0) { foreach(var sanierung in inspektionsobjekt.Sanierung) { if(sanierung is KlassenBIB.InlinerSanierung) { KlassenBIB.InlinerSanierung san = (sanierung as KlassenBIB.InlinerSanierung); if (!(san.Imprägnierungsbericht is KlassenBIB.WerkseitigImprägniert)) continue; KlassenBIB.WerkseitigImprägniert werkseitigImprägniert = (KlassenBIB.WerkseitigImprägniert)san.Imprägnierungsbericht; imprägnierungsnummer = werkseitigImprägniert.Imprägniernummer; //san.Imprägnierungsbericht = null; san.Imprägnierungsbericht = Datenbank.Instance.TeufelDB.Imprägnierungen.Find(x => x.Imprägniernummer.Equals(imprägnierungsnummer)); } } } } } Debugger.Break(); } public static void TransferAuftraggeber() { List projekte = new List(); List auftraggebers = new List(); Projekt tempProjekt = null; foreach(DirectoryInfo projekt in (new DirectoryInfo("./projekte").GetDirectories())) { projekte.Add(projekt.Name); } foreach(string t in projekte) { string filepath = Path.Combine("projekte", t, string.Format("{0}.xaml", t)); if (!File.Exists(filepath)) continue; tempProjekt = XamlServices.Load(filepath) as KlassenBIB.Projekt; //auftraggebers.Add(tempProjekt.Auftraggeber); if (tempProjekt.Auftraggeber.Name == null && tempProjekt.Auftraggeber.Ort == null && tempProjekt.Auftraggeber.Ansprechpartner == null) continue; IAuftraggeber test = Datenbank.Instance.MainDatenbank.AuftraggeberListe.Find(x =>x.Name.Equals(tempProjekt.Auftraggeber.Name)); if (test != null) { continue; } Datenbank.Instance.MainDatenbank.AuftraggeberListe.Add(tempProjekt.Auftraggeber); } } } }