Files
Kanalsanierungsverwaltung/Database/UpdateDatabase.cs
2020-06-25 16:24:05 +02:00

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);
}
}
}
}