Files
Kanalsanierungsverwaltung/SanSystem/Database/Datenbank.cs
2022-04-21 08:00:09 +02:00

92 lines
2.6 KiB
C#

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 KlassenBIB;
using SanShared.Exceptions;
namespace Database
{
public class Datenbank
{
public string pfad;
public string projekt;
public static readonly Datenbank instance = new Datenbank();
public static Datenbank Instance
{
get
{
return instance;
}
}
public void Init()
{
TeufelDB = new KlassenBIB.DB();
string filepath = "";
filepath = Path.Combine(pfad, "projekte", "TeufelDB.xaml");
if(!Directory.Exists(Path.Combine(pfad,"projekte")))
{
Directory.CreateDirectory(Path.Combine(pfad, "projekte"));
return;
}
if (File.Exists(filepath))
TeufelDB = XamlServices.Load(filepath) as KlassenBIB.DB;
}
public KlassenBIB.Projekt loadedProjekt = null;
//public KlassenBIB.MainDataBase MainDatenbank = null;
public KlassenBIB.DB TeufelDB = null;
public Datenbank()
{
}
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));
string filepath = Path.Combine(pfad, "projekte", "TeufelDB.xaml");
if (!File.Exists(filepath))
{
if (!Directory.Exists("./projekte")) return true;
UpdateDatabase.UpdateNewGuids();
UpdateDatabase.TransferAuftraggeber();
UpdateDatabase.MakeNewDatabaseSystem();
} else
{
//UpdateDatabase.GenerateNewBeziehungen();
}
UpdateDatabase.CreateSQLiteDB();
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()
{
string filepath = Path.Combine(pfad, "projekte", "TeufelDB.xaml");
Trace.WriteLine(filepath);
XamlServices.Save(filepath, TeufelDB);
}
}
}