Projekte integration angefangen

This commit is contained in:
HuskyTeufel
2021-08-31 13:31:52 +02:00
parent c66751ddc5
commit ade84e30e3
9 changed files with 59 additions and 87 deletions

View File

@@ -27,6 +27,7 @@ namespace KanSan.ViewModel
}
public ICommand AddNewClientCommand { get; set; }
public ICommand EditClientCommand { get; set; }
public ICommand SelectClientCommand { get; set; }
public List<Kunde> Kunden
{
@@ -42,6 +43,13 @@ namespace KanSan.ViewModel
AddNewClientCommand = new RelayCommand(parameter => NewClient());
EditClientCommand = new RelayCommand(parameter => EditClient());
SelectClientCommand = new RelayCommand(parameter => SelectClient());
}
private void SelectClient()
{
if (selectedKunde == null) return;
Mediator.Notify("ClientSelected", selectedKunde);
}
private void NewClient()

View File

@@ -243,9 +243,25 @@ namespace KanSan.ViewModel
Mediator.Subscribe("GoToListClientScreen", OnGoToListClientScreen);
Mediator.Subscribe("GoToEditClientScreen", OnGoToEditClientScreen);
Mediator.Subscribe("ClientSelected", OnSelectedClient);
Mediator.Subscribe("GoToEditProjektScreen", OnGoToEditProjektScreen);
}
private void OnGoToEditProjektScreen(object obj)
{
if (!(obj is Projekt)) return;
ActualViewModel = new ProjektEditViewModel((obj as Projekt));
}
private void OnSelectedClient(object obj)
{
if (!(obj is Kunde)) return;
SelectedKunde = (obj as Kunde);
ListProjekte();
}
private void OnGoToEditClientScreen(object obj)
{
if (!(obj is Kunde)) return;
@@ -278,7 +294,10 @@ namespace KanSan.ViewModel
private void ListProjekte()
{
ActualViewModel = new ProjektListViewModel(SelectedKunde);
if (SelectedKunde == null)
ActualViewModel = new KundenListViewModel();
else
ActualViewModel = new ProjektListViewModel(SelectedKunde);
}
private void ListBaustellen()

View File

@@ -2,10 +2,13 @@
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
{
@@ -22,26 +25,38 @@ namespace KanSan.ViewModel
}
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();
EditProjekt = new RelayCommand(parameter => EditSelectedProjekt());
NewProjekt = new RelayCommand(parameter => AddNewProjekt());
}
public void SelectProjekt()
private void AddNewProjekt()
{
Projekt newProj = NeueProjekt();
Mediator.Notify("GoToEditProjektScreen", newProj);
}
private void EditSelectedProjekt()
{
Mediator.Notify("GoToEditProjektScreen", SelectedProjekt);
}
public Projekt NeueProjekt()
{
Guid guid = Guid.NewGuid();
Projekt newProjekt = new Projekt()
{
GuidNr = guid,
GuidNr = Guid.NewGuid(),
Kunde = selectedKunde
};
@@ -49,9 +64,7 @@ namespace KanSan.ViewModel
//unitOfWork.ProjekteRepository.Insert(newProjekt);
unitOfWork.Commit();
List<Projekt> res = unitOfWork.ProjekteRepository.Get(x => x.GuidNr.Equals(guid)).ToList();
if (res.Count < 1) throw new Exception("Der zuvor eingefügte Projekt konnte nicht in der Datenbank gefunden werden");
return res.First();
return newProjekt;
}
}
}