240 lines
11 KiB
C#
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);
|
|
}
|
|
|
|
|
|
}
|
|
*/ |