Files
Kansan/KanSan.ViewModel/Projekt/ProjektListViewModel.cs
2021-08-31 13:56:13 +02:00

78 lines
2.2 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 ProjektListViewModel : BaseViewModel, IProjektListViewModel
{
IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext());
private List<Projekt> projektevonKunde;
public List<Projekt> ProjekteVomKunde
{
get
{
return projektevonKunde;
}
}
private Kunde selectedKunde;
public ICommand NewProjekt { get; set; }
public ICommand EditProjekt { get; set; }
public ICommand SelectProjekt { get; set; }
public Projekt SelectedProjekt { get; set; }
public ProjektListViewModel(Kunde client)
{
this.selectedKunde = client;
projektevonKunde = unitOfWork.ProjekteRepository.Get(x => x.Kunde.Equals(client)).ToList();
SelectProjekt = new RelayCommand(parameter => SelectActualProjekt());
EditProjekt = new RelayCommand(parameter => EditSelectedProjekt());
NewProjekt = new RelayCommand(parameter => AddNewProjekt());
}
private void SelectActualProjekt()
{
if (SelectedProjekt == null) return;
Mediator.Notify("ProjektSelected", SelectedProjekt);
}
private void AddNewProjekt()
{
Projekt newProj = NeueProjekt();
Mediator.Notify("GoToEditProjektScreen", newProj);
}
private void EditSelectedProjekt()
{
Mediator.Notify("GoToEditProjektScreen", SelectedProjekt);
}
public Projekt NeueProjekt()
{
Projekt newProjekt = new Projekt()
{
GuidNr = Guid.NewGuid(),
Kunde = selectedKunde
};
unitOfWork.ProjekteRepository.Update(newProjekt);
//unitOfWork.ProjekteRepository.Insert(newProjekt);
unitOfWork.Commit();
return newProjekt;
}
}
}