Files
Kansan/KanSan.ViewModel/Objekte/ObjekteListViewModel.cs
2020-07-12 19:32:14 +02:00

79 lines
2.5 KiB
C#

using KanSan.Base;
using KanSan.Base.Interfaces;
using KanSan.Base.Interfaces.UI;
using KanSan.Base.Models;
using KanSan.ViewModel.Commands;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Windows.Input;
namespace KanSan.ViewModel
{
public class ObjekteTransfer
{
public string Strassename { get; set; }
public IEnumerable<Sewer> Objekte { get; set; }
}
public class ObjekteListViewModel : BaseViewModel
{
public ICommand ObjektSelected { get; set; }
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),includeProperties:"PunktOben,PunktUnten").ToList();
var x = list.GroupBy(x => x.StrasseName).Select(x => new ObjekteTransfer
{
Strassename = x.Key,
Objekte = x
}).ToList();
kanalObjekte = x;
ObjektSelected = new RelayCommand(SelectObjekt);
//kanalObjekte = unitOfWork.KanaeleRepository.Get(x => x.Baustelle.Equals(selectedBaustelle)).ToList();
}
private void SelectObjekt(object obj)
{
if (!(obj is Sewer)) return;
Sewer sewer = (Sewer)obj;
if (sewer == null) return;
SewerMainWindowViewModel t = new SewerMainWindowViewModel(sewer);
Debugger.Break();
//throw new NotImplementedException();
}
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();
}
}
}