using KanSan.Base; using KanSan.Base.Interfaces; using KanSan.Base.Models; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace KanSan.ViewModel.Objekte { public class ObjekteAddViewModel { IUnitOfWork unitOfWork; private Baustelle baustelle; public string PunktOben { get; set; } public string PunktUnten { get; set; } public string Strasse { get; set; } public int DN { get; set; } public bool InBetrieb { get; set; } public ObjekteAddViewModel(Baustelle baustelle) { this.baustelle = baustelle; unitOfWork = new UnitOfWork(new KanSanContext()); } public void Hinzufügen() { SewerPoint PointOben = getPoint(PunktOben,true); SewerPoint PointUnten = getPoint(PunktUnten,true); Sewer newSewer = new Sewer(); newSewer.Baustelle = baustelle; newSewer.GuidNr = Guid.NewGuid(); newSewer.PunktOben = PointOben; newSewer.PunktUnten = PointUnten; newSewer.DN = DN; newSewer.RohrleitungInBetrieb = InBetrieb; newSewer.StrasseName = Strasse; newSewer.ObjektNummer = PunktOben; unitOfWork.KanaeleRepository.Update(newSewer); unitOfWork.Commit(); } private SewerPoint getPoint(string objektnummer, bool createIfNotFound = false) { List sewerPoints = unitOfWork.ObjekteRepository.Get(x => x.Objektnummer.Equals(objektnummer)).ToList(); if (sewerPoints.Count < 1) { if (createIfNotFound == false) return null; else { Guid guidNr = Guid.NewGuid(); unitOfWork.ObjekteRepository.Update(new SewerPoint() { Objektnummer = objektnummer, GuidNr = guidNr }); unitOfWork.Commit(); return unitOfWork.ObjekteRepository.Get(x => x.GuidNr.Equals(guidNr)).ToList().First(); } } return sewerPoints.First(); } } }