using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xaml; using System.IO.Compression; using System.Diagnostics; using ICSharpCode.SharpZipLib.Zip; using ICSharpCode.SharpZipLib.Core; using KlassenBIB; using SanShared.Exceptions; namespace Database { public class Datenbank { public const string pfad = "./"; public string projekt; public static readonly Datenbank instance = new Datenbank(); public static Datenbank Instance { get { return instance; } } public KlassenBIB.Projekt loadedProjekt = null; //public KlassenBIB.MainDataBase MainDatenbank = null; public KlassenBIB.DB TeufelDB = null; public Datenbank() { TeufelDB = new KlassenBIB.DB(); string filepath = ""; filepath = Path.Combine("./projekte", "TeufelDB.xaml"); if(File.Exists(filepath)) TeufelDB = XamlServices.Load("./projekte/TeufelDB.xaml") as KlassenBIB.DB; } private string projektpfad = string.Empty; public bool LoadProjekt(string projekt) { this.projekt = projekt; loadedProjekt = Datenbank.Instance.TeufelDB.Projekte.Find(x => x.Nummer != null && x.Nummer.Equals(projekt)); if (!File.Exists("./projekte/TeufelDB.xaml")) { UpdateDatabase.UpdateNewGuids(); UpdateDatabase.TransferAuftraggeber(); UpdateDatabase.MakeNewDatabaseSystem(); } else { //UpdateDatabase.GenerateNewBeziehungen(); } return true; } public bool InitProjekt(Projekt projekt,string projektpfad) { this.projektpfad = Path.Combine(projektpfad,string.Format("{0}.xaml",projekt.Nummer)); loadedProjekt = projekt; SaveProjekt(); return true; } public void SaveProjekt() { XamlServices.Save("./projekte/TeufelDB.xaml", TeufelDB); } } }