183 lines
6.5 KiB
C#
183 lines
6.5 KiB
C#
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);
|
|
|
|
}
|
|
// dtauftraggeber.AcceptChanges();
|
|
// 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<string> projekte = new List<string>();
|
|
|
|
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<string> projekte = new List<string>();
|
|
List<IAuftraggeber> auftraggebers = new List<IAuftraggeber>();
|
|
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);
|
|
|
|
}
|
|
*/
|
|
}
|
|
}
|
|
}
|