ObjekteListe angefangen

This commit is contained in:
Husky
2020-03-17 14:26:11 +01:00
parent 009c54cc84
commit 8b1336a014
15 changed files with 1422 additions and 167 deletions

View File

@@ -0,0 +1,72 @@
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<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();
}
}
}

View File

@@ -1,10 +1,58 @@
using System;
using KanSan.Base;
using KanSan.Base.Interfaces;
using KanSan.Base.Interfaces.UI;
using KanSan.Base.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace KanSan.ViewModel
{
class ObjekteListViewModel
public class ObjekteTransfer
{
public string Strassename { get; set; }
public IEnumerable<Sewer> Objekte { get; set; }
}
public class ObjekteListViewModel
{
IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext());
List<ObjekteTransfer> kanalObjekte = new List<ObjekteTransfer>();
private Baustelle selectedBaustelle;
public List<ObjekteTransfer> KanalObjekte => kanalObjekte;
public ObjekteListViewModel(Baustelle selectedBaustelle)
{
this.selectedBaustelle = selectedBaustelle;
//
List<Sewer> list = unitOfWork.KanaeleRepository.Get(x => x.Baustelle.Equals(selectedBaustelle)).ToList();
var x = list.GroupBy(x => x.StrasseName).Select(x => new ObjekteTransfer
{
Strassename = x.Key,
Objekte = x
}).ToList();
kanalObjekte = x;
//kanalObjekte = unitOfWork.KanaeleRepository.Get(x => x.Baustelle.Equals(selectedBaustelle)).ToList();
}
public Sewer NeueObjektHinzufügen()
{
Guid guid = Guid.NewGuid();
Sewer sewer = new Sewer()
{
Baustelle = selectedBaustelle,
GuidNr = guid
};
unitOfWork.KanaeleRepository.Update(sewer);
unitOfWork.Commit();
List<Sewer> t = unitOfWork.KanaeleRepository.Get(x => x.GuidNr.Equals(guid)).ToList();
if(t.Count < 1) throw new Exception("Der zuvor eingefügte Objekt konnte nicht in der Datenbank gefunden werden");
return t.First();
}
}
}