Files
Kansan/KanSan.ViewModel/Objekte/ObjekteListViewModel.cs
2020-07-15 17:18:52 +02:00

94 lines
2.9 KiB
C#

using KanSan.Base;
using KanSan.Base.Interfaces;
using KanSan.Base.Interfaces.UI;
using KanSan.Base.Models;
using KanSan.ViewModel.Commands;
using Microsoft.Extensions.DependencyInjection;
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
{
private ICommand _objektSelected;
public ICommand ObjektSelected {
get
{
return _objektSelected ?? (_objektSelected = new RelayCommand(x =>
{
Mediator.Notify("GoTo1Screen", "");
}));
}
}
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)
{
//Debugger.Break();
if (!(obj is Sewer)) return;
Sewer sewer = (Sewer)obj;
if (sewer == null) return;
//MainWindowViewModel.SelectedObjekt = sewer;
/*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();
}
}
}