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

View File

@@ -3,6 +3,7 @@ using KanSan.Base.Interfaces;
using KanSan.Base.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace KanSan.ViewModel
@@ -10,6 +11,18 @@ namespace KanSan.ViewModel
public class ProjektListViewModel
{
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()
{
@@ -18,7 +31,19 @@ namespace KanSan.ViewModel
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>
<StackPanel Grid.Column="0">
<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="Objekte" Name="btnObjekte" />
</StackPanel>

View File

@@ -27,6 +27,8 @@ namespace KanSan
{
UI.UCKundeEdit UCKundeEdit;
UI.UCKundeList UCKundeList;
UI.UCProjektList UCProjektList;
public MainWindow()
{
InitializeComponent();
@@ -36,6 +38,20 @@ namespace KanSan
UCKundeList.KundeAdded += UCKundeList_KundeAdded;
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)
@@ -53,6 +69,16 @@ namespace KanSan
{
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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:sd ="clr-namespace:KanSan.SampleData"
xmlns:local="clr-namespace:KanSan.UI"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<d:UserControl.DataContext>
<sd:KundeListViewModelSampleData />
</d:UserControl.DataContext>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>

View File

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