// 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 alteDB, List imprägnierungListe) { DaSaSoDbContextFactory daSaSoDbContextFactory = new DaSaSoDbContextFactory("Host = localhost; Database = dasaso; Username = kansan; Password = kansan"); IDataService dataService = null; IDataService clientsDataService = new GenericDataService(daSaSoDbContextFactory); List avaibleClients = new List(); /*Client dummy = new Client() { Firstname = "NaN" }; avaibleClients.Add(dummy); IEnumerable d = alteDB.Select(s => s.Auftraggeber).Where(m => m != null); var m = d.Select(f => f.Name).Distinct(); foreach(string auftraggebername in m) { IEnumerable? 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(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 buildingsites = new List(); Buildingsite buildingsite = new Buildingsite(); buildingsite.ContactPerson = projekt.Auftraggeber != null ? projekt.Auftraggeber.Ansprechpartner : ""; buildingsite.BuildingSiteNumber = projekt.ProjektNummer; buildingsite.Project = project; List Sewers = new List(); 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 }; 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 buildingsites = new List(); Buildingsite buildingsite = new Buildingsite(); buildingsite.ContactPerson = projekt.Auftraggeber != null? projekt.Auftraggeber.Ansprechpartner : ""; buildingsite.BuildingSiteNumber = projekt.ProjektNummer; buildingsite.Project = project; List Sewers = new List(); 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); } } */