From 47beb8b598019d242855ec8c5b60bea488816a88 Mon Sep 17 00:00:00 2001 From: Husky Date: Wed, 11 Mar 2020 19:21:10 +0100 Subject: [PATCH] =?UTF-8?q?Baustellen=20k=C3=B6nnen=20nun=20angelegt=20und?= =?UTF-8?q?=20ausgew=C3=A4hlt=20werden?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Interfaces/UI/IBaustelleEditViewModel.cs | 12 ++++ .../Interfaces/UI/IBaustelleListViewModel.cs | 12 ++++ .../Interfaces/UI/IObjekteEditViewModel.cs | 16 ++++++ ...tViewModel.cs => IProjektListViewModel.cs} | 2 +- .../Baustelle/BaustelleEditViewModel.cs | 55 ++++++++++++++++++ .../Baustelle/BaustellenListViewModel.cs | 48 ++++++++++++++++ .../Objekte/ObjekteEditViewModel.cs | 51 +++++++++++++++++ .../ObjekteListViewModel.cs} | 2 +- .../Projekt/ProjektListViewModel.cs | 2 +- KanSan/KanSan.csproj.user | 12 ++++ KanSan/MainWindow.xaml | 4 +- KanSan/MainWindow.xaml.cs | 34 +++++++++++ .../BaustelleEditViewModelSampleData.cs | 21 +++++++ .../BaustelleListViewModelSampleData.cs | 26 +++++++++ .../ProjektListViewModelSampleData.cs | 2 +- KanSan/UI/Baustelle/UCBaustelleEdit.xaml | 21 ++++++- KanSan/UI/Baustelle/UCBaustelleEdit.xaml.cs | 20 ++++++- KanSan/UI/Baustelle/UCBaustelleList.xaml | 22 +++++++- KanSan/UI/Baustelle/UCBaustelleList.xaml.cs | 56 ++++++++++++++++++- 19 files changed, 405 insertions(+), 13 deletions(-) create mode 100644 KanSan.Base/Interfaces/UI/IBaustelleEditViewModel.cs create mode 100644 KanSan.Base/Interfaces/UI/IBaustelleListViewModel.cs create mode 100644 KanSan.Base/Interfaces/UI/IObjekteEditViewModel.cs rename KanSan.Base/Interfaces/UI/{IProjekteListViewModel.cs => IProjektListViewModel.cs} (81%) create mode 100644 KanSan.ViewModel/Baustelle/BaustelleEditViewModel.cs create mode 100644 KanSan.ViewModel/Baustelle/BaustellenListViewModel.cs create mode 100644 KanSan.ViewModel/Objekte/ObjekteEditViewModel.cs rename KanSan.ViewModel/{BaustellenListViewModel.cs => Objekte/ObjekteListViewModel.cs} (77%) create mode 100644 KanSan/SampleData/BaustelleEditViewModelSampleData.cs create mode 100644 KanSan/SampleData/BaustelleListViewModelSampleData.cs diff --git a/KanSan.Base/Interfaces/UI/IBaustelleEditViewModel.cs b/KanSan.Base/Interfaces/UI/IBaustelleEditViewModel.cs new file mode 100644 index 0000000..43a150e --- /dev/null +++ b/KanSan.Base/Interfaces/UI/IBaustelleEditViewModel.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace KanSan.Base.Interfaces.UI +{ + public interface IBaustelleEditViewModel + { + string BaustelleNummer { get; set; } + string OrtTeil { get; set; } + } +} diff --git a/KanSan.Base/Interfaces/UI/IBaustelleListViewModel.cs b/KanSan.Base/Interfaces/UI/IBaustelleListViewModel.cs new file mode 100644 index 0000000..e1401ec --- /dev/null +++ b/KanSan.Base/Interfaces/UI/IBaustelleListViewModel.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 IBaustelleListViewModel + { + List Baustellen { get; } + } +} diff --git a/KanSan.Base/Interfaces/UI/IObjekteEditViewModel.cs b/KanSan.Base/Interfaces/UI/IObjekteEditViewModel.cs new file mode 100644 index 0000000..f358660 --- /dev/null +++ b/KanSan.Base/Interfaces/UI/IObjekteEditViewModel.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace KanSan.Base.Interfaces.UI +{ + public interface IObjekteEditViewModel + { + string StrasseName { get; set; } + string Objektnummer { get; set; } + string PunktOben { get; set; } + string PunktUnten { get; set; } + int Durchmesser { get; set; } + string Material { get; set; } + } +} diff --git a/KanSan.Base/Interfaces/UI/IProjekteListViewModel.cs b/KanSan.Base/Interfaces/UI/IProjektListViewModel.cs similarity index 81% rename from KanSan.Base/Interfaces/UI/IProjekteListViewModel.cs rename to KanSan.Base/Interfaces/UI/IProjektListViewModel.cs index ac0dc80..9e2eee5 100644 --- a/KanSan.Base/Interfaces/UI/IProjekteListViewModel.cs +++ b/KanSan.Base/Interfaces/UI/IProjektListViewModel.cs @@ -5,7 +5,7 @@ using System.Text; namespace KanSan.Base.Interfaces.UI { - public interface IProjekteListViewModel + public interface IProjektListViewModel { List ProjekteVomKunde { get; } } diff --git a/KanSan.ViewModel/Baustelle/BaustelleEditViewModel.cs b/KanSan.ViewModel/Baustelle/BaustelleEditViewModel.cs new file mode 100644 index 0000000..2adadd4 --- /dev/null +++ b/KanSan.ViewModel/Baustelle/BaustelleEditViewModel.cs @@ -0,0 +1,55 @@ +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 BaustelleEditViewModel : PropertyChangedClass, INotifyPropertyChanged, IBaustelleEditViewModel + { + IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext()); + private Baustelle baustelle; + string ortTeil; + string baustelleNummer; + + public string OrtTeil + { + get => ortTeil; + set + { + if (ortTeil != null && ortTeil == value) return; + ortTeil = value; + OnPropertyChanged(); + } + } + public string BaustelleNummer + { + get => baustelleNummer; + set + { + if (baustelleNummer != null && baustelleNummer == value) return; + baustelleNummer = value; + OnPropertyChanged(); + } + } + + public BaustelleEditViewModel(Baustelle baustelle) + { + this.baustelle = baustelle; + baustelleNummer = baustelle.BaustelleNummer; + ortTeil = baustelle.OrtTeil; + } + + public void Speichern() + { + baustelle.OrtTeil = OrtTeil; + baustelle.BaustelleNummer = BaustelleNummer; + unitOfWork.BaustelleRepository.Update(baustelle); + unitOfWork.Commit(); + } + } +} diff --git a/KanSan.ViewModel/Baustelle/BaustellenListViewModel.cs b/KanSan.ViewModel/Baustelle/BaustellenListViewModel.cs new file mode 100644 index 0000000..f62b6c5 --- /dev/null +++ b/KanSan.ViewModel/Baustelle/BaustellenListViewModel.cs @@ -0,0 +1,48 @@ +using KanSan.Base; +using KanSan.Base.Interfaces; +using KanSan.Base.Interfaces.UI; +using KanSan.Base.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace KanSan.ViewModel +{ + public class BaustellenListViewModel : IBaustelleListViewModel + { + IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext()); + private List baustellen; + private Projekt selectedProjekt; + + public List Baustellen + { + get + { + return baustellen; + } + } + + public BaustellenListViewModel(Projekt projekt) + { + selectedProjekt = projekt; + baustellen = unitOfWork.BaustelleRepository.Get(x => x.Projekt.Equals(projekt)).ToList(); + } + + public Baustelle NeueBaustelle() + { + Guid guid = Guid.NewGuid(); + Baustelle newBaustelle = new Baustelle() + { + GuidNr = guid, + Projekt = selectedProjekt + }; + unitOfWork.BaustelleRepository.Update(newBaustelle); + unitOfWork.Commit(); + List res = unitOfWork.BaustelleRepository.Get(x => x.GuidNr.Equals(guid)).ToList(); + if (res.Count < 1) throw new Exception("Der zuvor eingefügte Baustelle konnte nicht gefunden werden"); + return res.First(); + } + + } +} diff --git a/KanSan.ViewModel/Objekte/ObjekteEditViewModel.cs b/KanSan.ViewModel/Objekte/ObjekteEditViewModel.cs new file mode 100644 index 0000000..465b4a9 --- /dev/null +++ b/KanSan.ViewModel/Objekte/ObjekteEditViewModel.cs @@ -0,0 +1,51 @@ +using KanSan.Base; +using KanSan.Base.Interfaces; +using KanSan.Base.Interfaces.UI; +using KanSan.Base.Models; +using System; +using System.Collections.Generic; +using System.Text; + +namespace KanSan.ViewModel +{ + public class ObjekteEditViewModel : IObjekteEditViewModel + { + IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext()); + string strassename; + string objektnummer; + string punktOben; + string punktUnten; + int durchmesser; + string material; + + private Sewer objekt; + + public string StrasseName { get => strassename; set => throw new NotImplementedException(); } + public string Objektnummer { get => objektnummer; set => throw new NotImplementedException(); } + public string PunktOben { get => punktOben; set => throw new NotImplementedException(); } + public string PunktUnten { get => punktUnten; set => throw new NotImplementedException(); } + public int Durchmesser { get => durchmesser; set => throw new NotImplementedException(); } + public string Material { get => material; set => throw new NotImplementedException(); } + + public ObjekteEditViewModel(Sewer sewer) + { + objekt = sewer; + strassename = objekt.StrasseName; + punktOben = objekt.PunktOben.Objektnummer; + punktUnten = objekt.PunktUnten.Objektnummer; + objektnummer = objekt.ObjektNummer; + durchmesser = objekt.DN; + material = objekt.Material.ToString(); + } + + public void Speichern() + { + objekt.StrasseName = strassename; + objekt.DN = durchmesser; + + unitOfWork.KanaeleRepository.Update(objekt); + unitOfWork.Commit(); + } + + } +} diff --git a/KanSan.ViewModel/BaustellenListViewModel.cs b/KanSan.ViewModel/Objekte/ObjekteListViewModel.cs similarity index 77% rename from KanSan.ViewModel/BaustellenListViewModel.cs rename to KanSan.ViewModel/Objekte/ObjekteListViewModel.cs index 13e6d5f..4d12e3b 100644 --- a/KanSan.ViewModel/BaustellenListViewModel.cs +++ b/KanSan.ViewModel/Objekte/ObjekteListViewModel.cs @@ -4,7 +4,7 @@ using System.Text; namespace KanSan.ViewModel { - class BaustellenListViewModel + class ObjekteListViewModel { } } diff --git a/KanSan.ViewModel/Projekt/ProjektListViewModel.cs b/KanSan.ViewModel/Projekt/ProjektListViewModel.cs index 2b4b885..31916f1 100644 --- a/KanSan.ViewModel/Projekt/ProjektListViewModel.cs +++ b/KanSan.ViewModel/Projekt/ProjektListViewModel.cs @@ -9,7 +9,7 @@ using System.Text; namespace KanSan.ViewModel { - public class ProjektListViewModel : IProjekteListViewModel + public class ProjektListViewModel : IProjektListViewModel { IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext()); private List projektevonKunde; diff --git a/KanSan/KanSan.csproj.user b/KanSan/KanSan.csproj.user index 9f3557e..2e42406 100644 --- a/KanSan/KanSan.csproj.user +++ b/KanSan/KanSan.csproj.user @@ -22,6 +22,12 @@ Code + + Code + + + Code + @@ -42,5 +48,11 @@ Designer + + Designer + + + Designer + \ No newline at end of file diff --git a/KanSan/MainWindow.xaml b/KanSan/MainWindow.xaml index b431dff..6a0281e 100644 --- a/KanSan/MainWindow.xaml +++ b/KanSan/MainWindow.xaml @@ -19,14 +19,14 @@