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 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); } } } }