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 KundenListViewModel : BaseViewModel, IKundenListViewModel { IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext()); private List kunden; private Kunde selectedKunde; public Kunde SelectedKunde { get { return selectedKunde; } set { selectedKunde = value; } } public ICommand AddNewClientCommand { get; set; } public ICommand EditClientCommand { get; set; } public List Kunden { get { return kunden; } } public KundenListViewModel() { kunden = unitOfWork.KundenRepository.Get().ToList(); AddNewClientCommand = new RelayCommand(parameter => NewClient()); EditClientCommand = new RelayCommand(parameter => EditClient()); } private void NewClient() { Kunde newClient = NeueKunde(); Mediator.Notify("GoToEditClientScreen", newClient); } private void EditClient() { if (SelectedKunde == null) return; Mediator.Notify("GoToEditClientScreen",selectedKunde); } private Kunde NeueKunde() { Kunde result = new Kunde() { GuidNr = Guid.NewGuid() }; unitOfWork.KundenRepository.Insert(result); unitOfWork.Commit(); return result; } } }