using FastMember; using KlassenBIB; using SanShared; using System; using System.Collections.Generic; using System.Data; using System.Data.SQLite; 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 CreateSQLiteDB() { var source = Datenbank.Instance.TeufelDB; // Auftraggber Datatable DataTable dtauftraggeber = new DataTable(); // Verbindung zur SQLite herstellen SQLiteConnection Connection = new SQLiteConnection("Data Source=datenbank.db;Version=3;"); SQLiteCommand Command = new SQLiteCommand("SELECT * FROM Auftraggeber", Connection); SQLiteDataAdapter auftraggeberDA = new SQLiteDataAdapter(); //auftraggeberDA.SelectCommand = Command; SQLiteCommandBuilder cmd = new SQLiteCommandBuilder(auftraggeberDA); auftraggeberDA.SelectCommand = Command; auftraggeberDA.InsertCommand = cmd.GetInsertCommand(); Connection.Open(); auftraggeberDA.Fill(dtauftraggeber); DataTable srcdtAuftraggeber = new DataTable(); using (var reader = ObjectReader.Create(source.Auftraggeber, "Name", "Strasse", "Ort", "Ansprechpartner")) { srcdtAuftraggeber.Load(reader); } foreach (DataRow s in srcdtAuftraggeber.Rows) { DataRow dr = dtauftraggeber.NewRow(); //dr.BeginEdit(); dr["Name"] = s["Name"]; dr["Strasse"] = s["Strasse"]; dr["Ort"] = s["Ort"]; dr["Ansprechpartner"] = s["Ansprechpartner"]; //dr.EndEdit(); dtauftraggeber.Rows.Add(dr); } auftraggeberDA.Update(dtauftraggeber); DataTable dtimprägnierberichte = new DataTable(); using (var reader = ObjectReader.Create(source.Imprägnierungen)) { dtimprägnierberichte.Load(reader); } Connection.Close(); } 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; } } public static void GenerateNewBeziehungen() { string imprägnierungsnummer = ""; foreach(Projekt projekt in Datenbank.Instance.TeufelDB.Projekte) { projekt.Auftraggeber = Datenbank.Instance.TeufelDB.Auftraggeber.Find(x => x.Name.Equals(projekt.Auftraggeber.Name)); 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); } */ } } }