Files
Kansan/KanSan.ViewModel/Objekte/ObjekteAddViewModel.cs
2020-03-17 20:50:44 +01:00

73 lines
2.2 KiB
C#

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,false);
unitOfWork.Commit();
}
private SewerPoint getPoint(string objektnummer, bool createIfNotFound = false)
{
List<SewerPoint> 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();
}
}
}