ObjekteListe angefangen
This commit is contained in:
72
KanSan.ViewModel/Objekte/ObjekteAddViewModel.cs
Normal file
72
KanSan.ViewModel/Objekte/ObjekteAddViewModel.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user