125 lines
4.5 KiB
C#
125 lines
4.5 KiB
C#
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<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)
|
|
{
|
|
Dictionary<string, List<Inspektionsobjekt>> SanObjekte = new Dictionary<string, List<Inspektionsobjekt>>();
|
|
|
|
|
|
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<Inspektionsobjekt> ob = new List<Inspektionsobjekt>();
|
|
ob.Add(d);
|
|
SanObjekte.Add(werkseitig.Imprägniernummer, ob);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if (SanObjekte.Count > 0)
|
|
{
|
|
|
|
}
|
|
//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);
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|