Files
2021-09-25 19:01:47 +02:00

240 lines
11 KiB
C#

// See https://aka.ms/new-console-template for more information
using System.Collections;
using System.Diagnostics;
using System.Xml;
using System.Windows.Markup;
using DaSaSo.DatabaseConverter;
using DaSaSo.Domain.Services;
using DaSaSo.Domain.Model;
using DaSaSo.EntityFramework.Services;
using DaSaSo.EntityFramework;
using System;
using System.Collections.Generic;
Console.WriteLine("Hello, World!");
ConvertXML convertXML = new ConvertXML();
convertXML.parseXML();
//WriteToNewDB(convertXML.GetProjekts, convertXML.imprägnierungListe);
Console.WriteLine("Fertig");
Console.ReadLine();
/*
static void WriteToNewDB(List<Projekt> alteDB, List<Imprägnierungen> imprägnierungListe)
{
DaSaSoDbContextFactory daSaSoDbContextFactory = new DaSaSoDbContextFactory("Host = localhost; Database = dasaso; Username = kansan; Password = kansan");
IDataService<Project> dataService = null;
IDataService<Client> clientsDataService = new GenericDataService<Client>(daSaSoDbContextFactory);
List<Client> avaibleClients = new List<Client>();
/*Client dummy = new Client()
{
Firstname = "NaN"
};
avaibleClients.Add(dummy);
IEnumerable<Auftraggeber> d = alteDB.Select(s => s.Auftraggeber).Where(m => m != null);
var m = d.Select(f => f.Name).Distinct();
foreach(string auftraggebername in m)
{
IEnumerable<Auftraggeber>? raw = alteDB.Select(s => s.Auftraggeber);
Auftraggeber rawAuftraggeber = null;
foreach(Auftraggeber? g in raw)
{
if (g == null) continue;
if (g.Name.Equals(auftraggebername))
{
rawAuftraggeber = g;
break;
}
}
if (rawAuftraggeber == null) throw new Exception("Auftraggeber nicht gefunden");
Client t = new Client()
{
Firstname = rawAuftraggeber.Name,
Street = rawAuftraggeber.Strasse,
Country = rawAuftraggeber.Ort
};
avaibleClients.Add(t);
}
foreach(Projekt projekt in alteDB)
{
dataService = new GenericDataService<Project>(daSaSoDbContextFactory);
Client auftraggeber = null;
if (projekt.Auftraggeber == null)
auftraggeber = avaibleClients.Find(x => x.Firstname.Equals("NaN"));
else
auftraggeber = avaibleClients.Find(x => x.Firstname.Equals(projekt.Auftraggeber.Name));
if (auftraggeber == null) Debugger.Break();
Project project = new Project();
project.Client = auftraggeber;
project.Name = projekt.Ort;
List<Buildingsite> buildingsites = new List<Buildingsite>();
Buildingsite buildingsite = new Buildingsite();
buildingsite.ContactPerson = projekt.Auftraggeber != null ? projekt.Auftraggeber.Ansprechpartner : "";
buildingsite.BuildingSiteNumber = projekt.ProjektNummer;
buildingsite.Project = project;
List<SewerObject> Sewers = new List<SewerObject>();
foreach (Inspektionsobjekt inspektionsobjekt in projekt.inspektionsobjekte)
{
SewerObject sewerObject = new SewerObject();
sewerObject.BuildingSite = buildingsite;
sewerObject.DN = inspektionsobjekt.Kanalrohrweite;
sewerObject.ObjektName = inspektionsobjekt.Objektbezeichnung;
sewerObject.Material = inspektionsobjekt.RohrMaterial;
sewerObject.PunktOben = new SewerPoint()
{
Objektnummer = inspektionsobjekt.VonPunkt
};
sewerObject.PunktObenType = DaSaSo.Domain.Enums.EPointType.Schacht;
sewerObject.PunktUnten = new SewerPoint()
{
Objektnummer = inspektionsobjekt.BisPunkt
};
sewerObject.PunktUntenType = DaSaSo.Domain.Enums.EPointType.Anschlusspunkt;
sewerObject.StreetName = inspektionsobjekt.StrasseName;
sewerObject.SewerLength = inspektionsobjekt.Haltungslaenge;
if (inspektionsobjekt.InlinerSanierung != null)
{
sewerObject.PipeLiner = new PipeLiner();
sewerObject.PipeLiner.InversionPressure = inspektionsobjekt.InlinerSanierung.InversionsDruck;
sewerObject.PipeLiner.Operator = inspektionsobjekt.InlinerSanierung.Besatzung;
sewerObject.PipeLiner.PermitNeeded = inspektionsobjekt.InlinerSanierung.GenehmigungVorhanden;
sewerObject.PipeLiner.Preliner = inspektionsobjekt.InlinerSanierung.Preliner;
sewerObject.PipeLiner.STVO = inspektionsobjekt.InlinerSanierung.SVTO;
sewerObject.PipeLiner.TemperaturAssembly = Convert.ToDecimal(inspektionsobjekt.InlinerSanierung.EinbauTemperatur);
sewerObject.PipeLiner.TemperatureOutdoors = inspektionsobjekt.InlinerSanierung.TempAusssen;
sewerObject.PipeLiner.TemperatureSewer = inspektionsobjekt.InlinerSanierung.TempKanal;
sewerObject.PipeLiner.TemperaturStorage = Convert.ToDecimal(inspektionsobjekt.InlinerSanierung.LagerungsTemperatur);
sewerObject.PipeLiner.WaterBaried = inspektionsobjekt.InlinerSanierung.Wasserhaltung;
sewerObject.PipeLiner.Weather = inspektionsobjekt.InlinerSanierung.Wetter;
sewerObject.PipeLiner.CleanedHD = inspektionsobjekt.InlinerSanierung.HDReinigung;
sewerObject.PipeLiner.CleanedMechanisch = inspektionsobjekt.InlinerSanierung.VorbereitetMechanisch;
sewerObject.PipeLiner.CleanedRoborter = inspektionsobjekt.InlinerSanierung.VorbereitetRoborter;
sewerObject.PipeLiner.ClosedEnd = inspektionsobjekt.InlinerSanierung.GeschlosseneEnde;
}
Sewers.Add(sewerObject);
}
buildingsite.SewerObjects = Sewers;
buildingsites.Add(buildingsite);
project.BuildingSites = buildingsites;
auftraggeber.Projects = new List<Project>() { project };
clientsDataService.CreateNonAsync(auftraggeber);
//dataService.CreateNonAsync(project);
}
return;
foreach (Projekt projekt in alteDB)
{
Client newClient = null;
if (projekt.Auftraggeber == null)
{
newClient = avaibleClients.Find(x => x.Firstname.Equals("NaN"));
}
else
{
newClient = avaibleClients.Find(x => x.Firstname.Equals(projekt.Auftraggeber.Name));
}
if (newClient == null) Debugger.Break();
Project project = new Project();
//Console.WriteLine(aktClient);
project.Client = newClient;
project.Name = projekt.Ort;
List<Buildingsite> buildingsites = new List<Buildingsite>();
Buildingsite buildingsite = new Buildingsite();
buildingsite.ContactPerson = projekt.Auftraggeber != null? projekt.Auftraggeber.Ansprechpartner : "";
buildingsite.BuildingSiteNumber = projekt.ProjektNummer;
buildingsite.Project = project;
List<SewerObject> Sewers = new List<SewerObject>();
foreach(Inspektionsobjekt inspektionsobjekt in projekt.inspektionsobjekte)
{
SewerObject sewerObject = new SewerObject();
sewerObject.BuildingSite = buildingsite;
sewerObject.DN = inspektionsobjekt.Kanalrohrweite;
sewerObject.ObjektName = inspektionsobjekt.Objektbezeichnung;
sewerObject.Material = inspektionsobjekt.RohrMaterial;
sewerObject.PunktOben = new SewerPoint()
{
Objektnummer = inspektionsobjekt.VonPunkt
};
sewerObject.PunktObenType = DaSaSo.Domain.Enums.EPointType.Schacht;
sewerObject.PunktUnten = new SewerPoint()
{
Objektnummer = inspektionsobjekt.BisPunkt
};
sewerObject.PunktUntenType = DaSaSo.Domain.Enums.EPointType.Anschlusspunkt;
sewerObject.StreetName = inspektionsobjekt.StrasseName;
sewerObject.SewerLength = inspektionsobjekt.Haltungslaenge;
if(inspektionsobjekt.InlinerSanierung != null)
{
sewerObject.PipeLiner = new PipeLiner();
sewerObject.PipeLiner.InversionPressure = inspektionsobjekt.InlinerSanierung.InversionsDruck;
sewerObject.PipeLiner.Operator = inspektionsobjekt.InlinerSanierung.Besatzung;
sewerObject.PipeLiner.PermitNeeded = inspektionsobjekt.InlinerSanierung.GenehmigungVorhanden;
sewerObject.PipeLiner.Preliner = inspektionsobjekt.InlinerSanierung.Preliner;
sewerObject.PipeLiner.STVO = inspektionsobjekt.InlinerSanierung.SVTO;
sewerObject.PipeLiner.TemperaturAssembly = Convert.ToDecimal(inspektionsobjekt.InlinerSanierung.EinbauTemperatur);
sewerObject.PipeLiner.TemperatureOutdoors = inspektionsobjekt.InlinerSanierung.TempAusssen;
sewerObject.PipeLiner.TemperatureSewer = inspektionsobjekt.InlinerSanierung.TempKanal;
sewerObject.PipeLiner.TemperaturStorage = Convert.ToDecimal(inspektionsobjekt.InlinerSanierung.LagerungsTemperatur);
sewerObject.PipeLiner.WaterBaried = inspektionsobjekt.InlinerSanierung.Wasserhaltung;
sewerObject.PipeLiner.Weather = inspektionsobjekt.InlinerSanierung.Wetter;
sewerObject.PipeLiner.CleanedHD = inspektionsobjekt.InlinerSanierung.HDReinigung;
sewerObject.PipeLiner.CleanedMechanisch = inspektionsobjekt.InlinerSanierung.VorbereitetMechanisch;
sewerObject.PipeLiner.CleanedRoborter = inspektionsobjekt.InlinerSanierung.VorbereitetRoborter;
sewerObject.PipeLiner.ClosedEnd = inspektionsobjekt.InlinerSanierung.GeschlosseneEnde;
Impregnation impregnation = null;
if (inspektionsobjekt.InlinerSanierung.Impraeg == null)
{
impregnation = new Impregnation()
{
Number = Guid.NewGuid().ToString()
};
}
else
{
//impregnation = avaibleImpregnation.Find(x => x.Number.Equals(inspektionsobjekt.InlinerSanierung.Impraeg.Imprägniernummer));
}
//if (impregnation == null) Debugger.Break();
//if (impregnation != null)
//sewerObject.PipeLiner.Impregnation = impregnation;
}
Sewers.Add(sewerObject);
}
buildingsite.SewerObjects = Sewers;
buildingsites.Add(buildingsite);
project.BuildingSites = buildingsites;
dataService.CreateNonAsync(project);
}
}
*/