From 5ba62ac16ffa7f3db9669f0660f2a9c71a973e2e Mon Sep 17 00:00:00 2001 From: Husky Date: Wed, 26 Feb 2020 14:54:27 +0100 Subject: [PATCH] =?UTF-8?q?Schriftgr=C3=B6se=20ge=C3=A4ndert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Projekte können nun ausgewählt werden --- .../Interfaces/UI/IProjektEditViewModel.cs | 13 +++++ .../Interfaces/UI/IProjekteListViewModel.cs | 12 +++++ KanSan.ViewModel/MainWindowViewModel.cs | 2 + KanSan.ViewModel/ProjektEditViewModel.cs | 54 +++++++++++++++++++ KanSan.ViewModel/ProjektListViewModel.cs | 17 ++++-- KanSan/App.xaml | 10 +++- KanSan/App.xaml.cs | 17 +++++- KanSan/KanSan.csproj.user | 6 +++ KanSan/MainWindow.xaml | 2 +- KanSan/MainWindow.xaml.cs | 27 +++++++--- .../ProjektEditViewModelSampleData.cs | 21 ++++++++ .../ProjektListViewModelSampleData.cs | 41 ++++++++++++++ KanSan/UI/Kunde/UCKundeEdit.xaml.cs | 10 ++++ KanSan/UI/Projekt/UCProjektEdit.xaml | 31 +++++++++++ KanSan/UI/Projekt/UCProjektEdit.xaml.cs | 44 +++++++++++++++ KanSan/UI/Projekt/UCProjektList.xaml | 11 +++- 16 files changed, 302 insertions(+), 16 deletions(-) create mode 100644 KanSan.Base/Interfaces/UI/IProjektEditViewModel.cs create mode 100644 KanSan.Base/Interfaces/UI/IProjekteListViewModel.cs create mode 100644 KanSan.ViewModel/ProjektEditViewModel.cs create mode 100644 KanSan/SampleData/ProjektEditViewModelSampleData.cs create mode 100644 KanSan/SampleData/ProjektListViewModelSampleData.cs create mode 100644 KanSan/UI/Projekt/UCProjektEdit.xaml create mode 100644 KanSan/UI/Projekt/UCProjektEdit.xaml.cs diff --git a/KanSan.Base/Interfaces/UI/IProjektEditViewModel.cs b/KanSan.Base/Interfaces/UI/IProjektEditViewModel.cs new file mode 100644 index 0000000..0d78682 --- /dev/null +++ b/KanSan.Base/Interfaces/UI/IProjektEditViewModel.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace KanSan.Base.Interfaces.UI +{ + public interface IProjektEditViewModel + { + string Projektnummer { get; set; } + string Ort { get; set; } + + } +} diff --git a/KanSan.Base/Interfaces/UI/IProjekteListViewModel.cs b/KanSan.Base/Interfaces/UI/IProjekteListViewModel.cs new file mode 100644 index 0000000..ac0dc80 --- /dev/null +++ b/KanSan.Base/Interfaces/UI/IProjekteListViewModel.cs @@ -0,0 +1,12 @@ +using KanSan.Base.Models; +using System; +using System.Collections.Generic; +using System.Text; + +namespace KanSan.Base.Interfaces.UI +{ + public interface IProjekteListViewModel + { + List ProjekteVomKunde { get; } + } +} diff --git a/KanSan.ViewModel/MainWindowViewModel.cs b/KanSan.ViewModel/MainWindowViewModel.cs index 3b30f6d..4971ff9 100644 --- a/KanSan.ViewModel/MainWindowViewModel.cs +++ b/KanSan.ViewModel/MainWindowViewModel.cs @@ -53,6 +53,8 @@ namespace KanSan.ViewModel if (_selectedKunde.GuidNr.Equals(value.GuidNr)) return; } _selectedKunde = value; + _selectedProjekt = null; + _selectedBaustelle = null; SaveInRegistry("LastKunde", value.GuidNr.ToString()); OnPropertyChanged(); } diff --git a/KanSan.ViewModel/ProjektEditViewModel.cs b/KanSan.ViewModel/ProjektEditViewModel.cs new file mode 100644 index 0000000..fb5960d --- /dev/null +++ b/KanSan.ViewModel/ProjektEditViewModel.cs @@ -0,0 +1,54 @@ +using KanSan.Base; +using KanSan.Base.Interfaces; +using KanSan.Base.Interfaces.UI; +using KanSan.Base.Models; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Text; + +namespace KanSan.ViewModel +{ + public class ProjektEditViewModel : PropertyChangedClass,INotifyPropertyChanged, IProjektEditViewModel + { + IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext()); + private Projekt projekt; + string projektnummer; + string ort; + public string Projektnummer + { + get => projektnummer; + set + { + if (projektnummer != null && projektnummer == value) return; + projektnummer = value; + OnPropertyChanged(); + } + } + public string Ort + { + get => ort; + set + { + if (ort != null && ort == value) return; + ort = value; + OnPropertyChanged(); + } + } + + public ProjektEditViewModel(Projekt projekt) + { + this.projekt = projekt; + projektnummer = projekt.Projektnummer; + ort = projekt.Ort; + } + + public void Speichern() + { + projekt.Ort = Ort; + projekt.Projektnummer = Projektnummer; + unitOfWork.ProjekteRepository.Update(projekt); + unitOfWork.Commit(); + } + } +} diff --git a/KanSan.ViewModel/ProjektListViewModel.cs b/KanSan.ViewModel/ProjektListViewModel.cs index 469eedc..2b4b885 100644 --- a/KanSan.ViewModel/ProjektListViewModel.cs +++ b/KanSan.ViewModel/ProjektListViewModel.cs @@ -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; @@ -8,20 +9,26 @@ using System.Text; namespace KanSan.ViewModel { - public class ProjektListViewModel + public class ProjektListViewModel : IProjekteListViewModel { IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext()); + private List projektevonKunde; + public List ProjekteVomKunde + { + get + { + return projektevonKunde; + } + } private Kunde selectedKunde; public ProjektListViewModel(Kunde client) { - //List clients = unitOfWork.KundenRepository.Get(x => x.GuidNr.Equals(client.GuidNr)).ToList(); - //this.selectedKunde = clients.First(); + this.selectedKunde = client; - - List projektevonKunde = unitOfWork.ProjekteRepository.Get(x => x.Kunde.Equals(client)).ToList(); + projektevonKunde = unitOfWork.ProjekteRepository.Get(x => x.Kunde.Equals(client)).ToList(); } public void SelectProjekt() diff --git a/KanSan/App.xaml b/KanSan/App.xaml index daebe0a..f99e7b6 100644 --- a/KanSan/App.xaml +++ b/KanSan/App.xaml @@ -4,6 +4,14 @@ xmlns:local="clr-namespace:KanSan" StartupUri="MainWindow.xaml"> - + + + diff --git a/KanSan/App.xaml.cs b/KanSan/App.xaml.cs index 365a8e0..90a3a63 100644 --- a/KanSan/App.xaml.cs +++ b/KanSan/App.xaml.cs @@ -5,6 +5,7 @@ using System.Data; using System.Linq; using System.Threading.Tasks; using System.Windows; +using System.Windows.Controls; namespace KanSan { @@ -16,7 +17,21 @@ namespace KanSan public App() { Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("MjEwMDc1QDMxMzcyZTM0MmUzME9iTUUzZVRJSGpnYmNLdXg0cmpSMGF1SnZjcHhKN09MYUV6UlRRUWloTWs9"); + } - + + protected override void OnStartup(StartupEventArgs e) + { + FrameworkElement.StyleProperty.OverrideMetadata(typeof(Window), new FrameworkPropertyMetadata + { + DefaultValue = FindResource(typeof(Window)) + }); + + FrameworkElement.StyleProperty.OverrideMetadata(typeof(UserControl), new FrameworkPropertyMetadata + { + DefaultValue = FindResource(typeof(UserControl)) + }); + } + } } diff --git a/KanSan/KanSan.csproj.user b/KanSan/KanSan.csproj.user index 33a5530..9f3557e 100644 --- a/KanSan/KanSan.csproj.user +++ b/KanSan/KanSan.csproj.user @@ -10,6 +10,9 @@ Code + + Code + Code @@ -27,6 +30,9 @@ Designer + + Designer + Designer diff --git a/KanSan/MainWindow.xaml b/KanSan/MainWindow.xaml index a25fc30..b431dff 100644 --- a/KanSan/MainWindow.xaml +++ b/KanSan/MainWindow.xaml @@ -25,7 +25,7 @@ - + diff --git a/KanSan/MainWindow.xaml.cs b/KanSan/MainWindow.xaml.cs index d7ad79b..42a52a2 100644 --- a/KanSan/MainWindow.xaml.cs +++ b/KanSan/MainWindow.xaml.cs @@ -37,21 +37,18 @@ namespace KanSan UCKundeList = new UI.UCKundeList(); UCKundeList.KundeAdded += UCKundeList_KundeAdded; UCKundeList.KundeSelect += UCKundeList_KundeSelect; - - - - - } private void UCProjektList_ProjektAdded(object sender, UI.SelectProjektEventArgs e) { - throw new NotImplementedException(); + if (e.projekt == null) return; + UI.UCProjektEdit uCProjektEdit = new UI.UCProjektEdit(e.projekt); + ContentController.Content = uCProjektEdit; } private void UCProjektList_ProjektSelected(object sender, UI.SelectProjektEventArgs e) { - throw new NotImplementedException(); + (DataContext as MainWindowViewModel).SelectedProjekt = e.projekt; } private void UCKundeList_KundeSelect(object sender, UI.KundeAddedKlickEventArgs e) @@ -62,6 +59,7 @@ namespace KanSan private void UCKundeList_KundeAdded(object sender, UI.KundeAddedKlickEventArgs e) { UCKundeEdit = new UI.UCKundeEdit(e.kunde); + UCKundeEdit.SpeichernClicked += Edit_SpeichernClicked; ContentController.Content = UCKundeEdit; } @@ -77,8 +75,23 @@ namespace KanSan UCProjektList = new UI.UCProjektList(client); UCProjektList.ProjektSelected += UCProjektList_ProjektSelected; UCProjektList.ProjektAdded += UCProjektList_ProjektAdded; + UCProjektList.ProjektEdited += UCProjektList_ProjektEdited; ContentController.Content = UCProjektList; } + + private void UCProjektList_ProjektEdited(object sender, UI.SelectProjektEventArgs e) + { + if (e.projekt == null) return; + UI.UCProjektEdit uCProjektEdit = new UI.UCProjektEdit(e.projekt); + + uCProjektEdit.SpeichernClicked += Edit_SpeichernClicked; + ContentController.Content = uCProjektEdit; + } + + private void Edit_SpeichernClicked(object sender, EventArgs e) + { + ContentController.Content = "MainView"; + } } } diff --git a/KanSan/SampleData/ProjektEditViewModelSampleData.cs b/KanSan/SampleData/ProjektEditViewModelSampleData.cs new file mode 100644 index 0000000..9f1e6f6 --- /dev/null +++ b/KanSan/SampleData/ProjektEditViewModelSampleData.cs @@ -0,0 +1,21 @@ +using KanSan.Base.Interfaces.UI; +using System; +using System.Collections.Generic; +using System.Text; + +namespace KanSan.SampleData +{ + class ProjektEditViewModelSampleData : IProjektEditViewModel + { + string projektnummer; + string ort; + public string Projektnummer { get => projektnummer; set => projektnummer = value; } + public string Ort { get => ort; set => ort = value; } + + public ProjektEditViewModelSampleData() + { + ort = "Oldenburg"; + projektnummer = "20-850-024"; + } + } +} diff --git a/KanSan/SampleData/ProjektListViewModelSampleData.cs b/KanSan/SampleData/ProjektListViewModelSampleData.cs new file mode 100644 index 0000000..251b2f1 --- /dev/null +++ b/KanSan/SampleData/ProjektListViewModelSampleData.cs @@ -0,0 +1,41 @@ +using KanSan.Base.Interfaces.UI; +using KanSan.Base.Models; +using System; +using System.Collections.Generic; +using System.Text; + +namespace KanSan.SampleData +{ + class ProjektListViewModelSampleData : IProjekteListViewModel + { + private List _projekteVomKunde = new List(); + public List ProjekteVomKunde => _projekteVomKunde; + + public ProjektListViewModelSampleData() + { + Kunde client = new Kunde() + { + Vorname = "Damian", + Nachname = "Bodde", + Ort = "Papenburg", + PLZ = "26871", + Strasse = "Barenbergstraße", + ID = 1, + GuidNr = Guid.NewGuid() + }; + for (int i = 0; i < 10; i++) + { + _projekteVomKunde.Add(new Projekt() + { + ID = i + 1, + Ort = "Oldenburg", + Projektnummer = "20-850-0" + i, + Kunde = client, + GuidNr = Guid.NewGuid() + }) ; + + } + } + + } +} diff --git a/KanSan/UI/Kunde/UCKundeEdit.xaml.cs b/KanSan/UI/Kunde/UCKundeEdit.xaml.cs index f36bdcc..5fa8f03 100644 --- a/KanSan/UI/Kunde/UCKundeEdit.xaml.cs +++ b/KanSan/UI/Kunde/UCKundeEdit.xaml.cs @@ -22,6 +22,15 @@ namespace KanSan.UI /// public partial class UCKundeEdit : UserControl { + public event EventHandler SpeichernClicked; + + protected virtual void OnSpeichernKlicked(EventArgs e) + { + EventHandler handler = SpeichernClicked; + if (handler != null) + handler(this, e); + } + //private Kunde kunde = null; //private UnitOfWork unitOfWork = null; public UCKundeEdit(Kunde kunde = null) @@ -35,6 +44,7 @@ namespace KanSan.UI private void Speichern_Click(object sender, RoutedEventArgs e) { ((KundenEditViewModel)DataContext).Speichern(); + OnSpeichernKlicked(EventArgs.Empty); } } diff --git a/KanSan/UI/Projekt/UCProjektEdit.xaml b/KanSan/UI/Projekt/UCProjektEdit.xaml new file mode 100644 index 0000000..cd1c40b --- /dev/null +++ b/KanSan/UI/Projekt/UCProjektEdit.xaml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + +