From c66751ddc582f067edc6cf8ec9fc970559d34e93 Mon Sep 17 00:00:00 2001 From: HuskyTeufel Date: Tue, 31 Aug 2021 12:25:27 +0200 Subject: [PATCH] =?UTF-8?q?Kundenedit=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Neue Kunden werden gleich zur Editseite weitergeleitet Kunden können gelöscht werden --- KanSan.Base/KanSanContext.cs | 2 +- .../Kunden/KundenEditViewModel.cs | 27 +++++++++--- .../Kunden/KundenListViewModel.cs | 41 ++++++++++++----- KanSan.ViewModel/MainWindowViewModel.cs | 16 ++++++- KanSan/UI/Kunde/UCKundeEdit.xaml | 4 +- KanSan/UI/Kunde/UCKundeEdit.xaml.cs | 23 +--------- KanSan/UI/Kunde/UCKundeList.xaml | 6 +-- KanSan/UI/Kunde/UCKundeList.xaml.cs | 44 ------------------- KanSan/my_controls.xaml | 3 ++ 9 files changed, 76 insertions(+), 90 deletions(-) diff --git a/KanSan.Base/KanSanContext.cs b/KanSan.Base/KanSanContext.cs index f9bbfa6..a383c61 100644 --- a/KanSan.Base/KanSanContext.cs +++ b/KanSan.Base/KanSanContext.cs @@ -21,7 +21,7 @@ namespace KanSan.Base protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { - optionsBuilder.UseNpgsql("Host = localhost; Database = kanSan; Username = kansan; Password = kansan"); + optionsBuilder.UseNpgsql("Host = 192.168.122.1; Database = kanSan; Username = kansan; Password = kansan"); //optionsBuilder.UseSqlite("Data Source=kansan.db"); } } diff --git a/KanSan.ViewModel/Kunden/KundenEditViewModel.cs b/KanSan.ViewModel/Kunden/KundenEditViewModel.cs index 1b6a23a..02a5317 100644 --- a/KanSan.ViewModel/Kunden/KundenEditViewModel.cs +++ b/KanSan.ViewModel/Kunden/KundenEditViewModel.cs @@ -1,11 +1,14 @@ using KanSan.Base; using KanSan.Base.Interfaces; using KanSan.Base.Models; +using KanSan.ViewModel.Commands; using System; using System.Collections.Generic; using System.ComponentModel; +using System.Diagnostics; using System.Linq; using System.Text; +using System.Windows.Input; namespace KanSan.ViewModel { @@ -20,6 +23,9 @@ namespace KanSan.ViewModel private string plz; private string ort; + public ICommand SaveClient { get; set; } + public ICommand RemoveClient { get; set; } + #region getters public string Vorname { @@ -88,22 +94,30 @@ namespace KanSan.ViewModel } #endregion - public KundenEditViewModel(Kunde kunde = null) + public KundenEditViewModel(Kunde kunde) { - if (kunde == null) - _kunde = unitOfWork.KundenRepository.Get().First(); - else - _kunde = kunde; + _kunde = kunde; vorname = _kunde.Vorname; nachname = _kunde.Nachname; strasse = _kunde.Strasse; plz = _kunde.PLZ; ort = _kunde.Ort; + + SaveClient = new RelayCommand(parameter => Speichern()); + RemoveClient = new RelayCommand(parameter => Remove()); } - public void Speichern() + private void Remove() { + unitOfWork.KundenRepository.Delete(_kunde); + unitOfWork.Commit(); + Mediator.Notify("GoToListClientScreen"); + } + + private void Speichern() + { + Trace.WriteLine("Speichere"); _kunde.Vorname = Vorname; _kunde.Nachname = Nachname; _kunde.Strasse = Strasse; @@ -112,6 +126,7 @@ namespace KanSan.ViewModel unitOfWork.KundenRepository.Update(_kunde); unitOfWork.Commit(); + Mediator.Notify("GoToListClientScreen"); } } } diff --git a/KanSan.ViewModel/Kunden/KundenListViewModel.cs b/KanSan.ViewModel/Kunden/KundenListViewModel.cs index 9f86f15..50f99c0 100644 --- a/KanSan.ViewModel/Kunden/KundenListViewModel.cs +++ b/KanSan.ViewModel/Kunden/KundenListViewModel.cs @@ -17,7 +17,16 @@ namespace KanSan.ViewModel IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext()); private List kunden; + private Kunde selectedKunde; + public Kunde SelectedKunde { + get { return selectedKunde; } + set { + selectedKunde = value; + + } + } public ICommand AddNewClientCommand { get; set; } + public ICommand EditClientCommand { get; set; } public List Kunden { @@ -31,23 +40,33 @@ namespace KanSan.ViewModel { kunden = unitOfWork.KundenRepository.Get().ToList(); - AddNewClientCommand = new RelayCommand(parameter => NeueKunde()); + AddNewClientCommand = new RelayCommand(parameter => NewClient()); + EditClientCommand = new RelayCommand(parameter => EditClient()); } - public Kunde NeueKunde() + private void NewClient() { - Kunde result = new Kunde(); - //result.ID = 1; - result.GuidNr = Guid.NewGuid(); + Kunde newClient = NeueKunde(); + Mediator.Notify("GoToEditClientScreen", newClient); + } + + private void EditClient() + { + if (SelectedKunde == null) return; + Mediator.Notify("GoToEditClientScreen",selectedKunde); + + } + + private Kunde NeueKunde() + { + Kunde result = new Kunde() + { + GuidNr = Guid.NewGuid() + }; + unitOfWork.KundenRepository.Insert(result); unitOfWork.Commit(); return result; - - //IEnumerable kunden = unitOfWork.KundenRepository.Get(d => d.GuidNr.Equals(result.GuidNr)); - //if (kunden.Count() < 1) - // throw new Exception("Kunde konnte nicht gefunden werden"); - - //return kunden.First(); } } } diff --git a/KanSan.ViewModel/MainWindowViewModel.cs b/KanSan.ViewModel/MainWindowViewModel.cs index 0f6dbd4..1cab416 100644 --- a/KanSan.ViewModel/MainWindowViewModel.cs +++ b/KanSan.ViewModel/MainWindowViewModel.cs @@ -241,11 +241,19 @@ namespace KanSan.ViewModel ListBaustellenCommand = new RelayCommand(paramter => ListBaustellen()); ListObjectsCommand = new RelayCommand(parameter => ListObjekte()); - Mediator.Subscribe("GoTo1Screen", OnGo1Screen); + Mediator.Subscribe("GoToListClientScreen", OnGoToListClientScreen); + Mediator.Subscribe("GoToEditClientScreen", OnGoToEditClientScreen); } - private void OnGo1Screen(object obj) + private void OnGoToEditClientScreen(object obj) + { + if (!(obj is Kunde)) return; + Kunde client = (obj as Kunde); + EditClient(client); + } + + private void OnGoToListClientScreen(object obj) { ListClients(); } @@ -263,6 +271,10 @@ namespace KanSan.ViewModel { ActualViewModel = new KundenListViewModel(); } + private void EditClient(Kunde client) + { + ActualViewModel = new KundenEditViewModel(client); + } private void ListProjekte() { diff --git a/KanSan/UI/Kunde/UCKundeEdit.xaml b/KanSan/UI/Kunde/UCKundeEdit.xaml index 05c78ba..f7cb610 100644 --- a/KanSan/UI/Kunde/UCKundeEdit.xaml +++ b/KanSan/UI/Kunde/UCKundeEdit.xaml @@ -14,6 +14,7 @@ + @@ -26,7 +27,8 @@ -