Projekte werden angezeigt

This commit is contained in:
Husky
2020-02-25 19:14:20 +01:00
parent 14e3860613
commit 71d57f31ac
8 changed files with 108 additions and 5 deletions

View File

@@ -0,0 +1,12 @@
using KanSan.Base.Models;
using System;
using System.Collections.Generic;
using System.Text;
namespace KanSan.Base.Interfaces.UI
{
public interface IKundenListViewModel
{
List<Kunde> Kunden { get; }
}
}

View File

@@ -1,5 +1,6 @@
using KanSan.Base; using KanSan.Base;
using KanSan.Base.Interfaces; using KanSan.Base.Interfaces;
using KanSan.Base.Interfaces.UI;
using KanSan.Base.Models; using KanSan.Base.Models;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@@ -9,7 +10,7 @@ using System.Text;
namespace KanSan.ViewModel namespace KanSan.ViewModel
{ {
public class KundenListViewModel public class KundenListViewModel : IKundenListViewModel
{ {
IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext()); IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext());
private List<Kunde> kunden; private List<Kunde> kunden;

View File

@@ -3,6 +3,7 @@ using KanSan.Base.Interfaces;
using KanSan.Base.Models; using KanSan.Base.Models;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Text; using System.Text;
namespace KanSan.ViewModel namespace KanSan.ViewModel
@@ -10,6 +11,18 @@ namespace KanSan.ViewModel
public class ProjektListViewModel public class ProjektListViewModel
{ {
IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext()); IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext());
private Kunde selectedKunde;
public ProjektListViewModel(Kunde client)
{
List<Kunde> clients = unitOfWork.KundenRepository.Get(x => x.GuidNr.Equals(client.GuidNr)).ToList();
this.selectedKunde = clients.First();
//this.selectedKunde = selectedKunde;
List<Projekt> projektevonKunde = unitOfWork.ProjekteRepository.Get(x => x.Kunde.Equals(client)).ToList();
}
public void SelectProjekt() public void SelectProjekt()
{ {
@@ -18,7 +31,19 @@ namespace KanSan.ViewModel
public Projekt NeueProjekt() public Projekt NeueProjekt()
{ {
throw new NotImplementedException(); Guid guid = Guid.NewGuid();
Projekt newProjekt = new Projekt()
{
GuidNr = guid,
Kunde = selectedKunde
};
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();
} }
} }
} }

View File

@@ -18,7 +18,7 @@
</Grid.RowDefinitions> </Grid.RowDefinitions>
<StackPanel Grid.Column="0"> <StackPanel Grid.Column="0">
<Button Content="Kunden" Name="btnKunden" Click="btnKunden_Click" /> <Button Content="Kunden" Name="btnKunden" Click="btnKunden_Click" />
<Button Content="Projekte" Name="btnProjekte" /> <Button Content="Projekte" Name="btnProjekte" Click="btnProjekte_Click" />
<Button Content="Baustellen" Name="btnBaustellen" /> <Button Content="Baustellen" Name="btnBaustellen" />
<Button Content="Objekte" Name="btnObjekte" /> <Button Content="Objekte" Name="btnObjekte" />
</StackPanel> </StackPanel>

View File

@@ -27,6 +27,8 @@ namespace KanSan
{ {
UI.UCKundeEdit UCKundeEdit; UI.UCKundeEdit UCKundeEdit;
UI.UCKundeList UCKundeList; UI.UCKundeList UCKundeList;
UI.UCProjektList UCProjektList;
public MainWindow() public MainWindow()
{ {
InitializeComponent(); InitializeComponent();
@@ -36,6 +38,20 @@ namespace KanSan
UCKundeList.KundeAdded += UCKundeList_KundeAdded; UCKundeList.KundeAdded += UCKundeList_KundeAdded;
UCKundeList.KundeSelect += UCKundeList_KundeSelect; UCKundeList.KundeSelect += UCKundeList_KundeSelect;
}
private void UCProjektList_ProjektAdded(object sender, UI.SelectProjektEventArgs e)
{
throw new NotImplementedException();
}
private void UCProjektList_ProjektSelected(object sender, UI.SelectProjektEventArgs e)
{
throw new NotImplementedException();
} }
private void UCKundeList_KundeSelect(object sender, UI.KundeAddedKlickEventArgs e) private void UCKundeList_KundeSelect(object sender, UI.KundeAddedKlickEventArgs e)
@@ -53,6 +69,16 @@ namespace KanSan
{ {
ContentController.Content = UCKundeList; ContentController.Content = UCKundeList;
} }
private void btnProjekte_Click(object sender, RoutedEventArgs e)
{
Kunde client = (DataContext as MainWindowViewModel).SelectedKunde;
if (client == null) return;
UCProjektList = new UI.UCProjektList(client);
UCProjektList.ProjektSelected += UCProjektList_ProjektSelected;
UCProjektList.ProjektAdded += UCProjektList_ProjektAdded;
ContentController.Content = UCProjektList;
}
} }
} }

View File

@@ -0,0 +1,34 @@
using KanSan.Base.Interfaces.UI;
using KanSan.Base.Models;
using System;
using System.Collections.Generic;
using System.Text;
namespace KanSan.SampleData
{
public class KundeListViewModelSampleData : IKundenListViewModel
{
private readonly List<Kunde> kunden = new List<Kunde>();
public List<Kunde> Kunden => kunden;
public KundeListViewModelSampleData()
{
kunden.Add(new Kunde()
{
Vorname = "Damian",
Nachname = "Bodde",
Ort = "Papenburg",
PLZ = "26871",
Strasse = "Barenbergstraße",
});
kunden.Add(new Kunde()
{
Vorname = "Cynthia",
Nachname = "Schreuder",
Ort = "Geeeste",
PLZ = "49744",
Strasse = "Wiesenstraße 54a"
});
}
}
}

View File

@@ -3,9 +3,13 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:sd ="clr-namespace:KanSan.SampleData"
xmlns:local="clr-namespace:KanSan.UI" xmlns:local="clr-namespace:KanSan.UI"
mc:Ignorable="d" mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800"> d:DesignHeight="450" d:DesignWidth="800">
<d:UserControl.DataContext>
<sd:KundeListViewModelSampleData />
</d:UserControl.DataContext>
<Grid> <Grid>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="*"/> <RowDefinition Height="*"/>

View File

@@ -23,10 +23,11 @@ namespace KanSan.UI
public event EventHandler<SelectProjektEventArgs> ProjektAdded; public event EventHandler<SelectProjektEventArgs> ProjektAdded;
public event EventHandler<SelectProjektEventArgs> ProjektEdited; public event EventHandler<SelectProjektEventArgs> ProjektEdited;
public event EventHandler<SelectProjektEventArgs> ProjektSelected; public event EventHandler<SelectProjektEventArgs> ProjektSelected;
public UCProjektList()
public UCProjektList(Kunde selectedKunde)
{ {
InitializeComponent(); InitializeComponent();
this.DataContext = new ProjektListViewModel(); this.DataContext = new ProjektListViewModel(selectedKunde);
} }
private void ProjektSelect_Click(object sender, RoutedEventArgs e) private void ProjektSelect_Click(object sender, RoutedEventArgs e)