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 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 kanalObjekte = new List(); private Baustelle selectedBaustelle; public List KanalObjekte => kanalObjekte; public ObjekteListViewModel(Baustelle selectedBaustelle) { this.selectedBaustelle = selectedBaustelle; // List 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 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(); } } }