From 24ae7b517ca0785df7f22927ab6684c9f79e4959 Mon Sep 17 00:00:00 2001 From: Husky Date: Sun, 23 Feb 2020 11:27:10 +0100 Subject: [PATCH] MainviewModel erstellt --- KanSan.ViewModel/KanSan.ViewModel.csproj | 4 + KanSan.ViewModel/MainWindowViewModel.cs | 119 ++++++++++++++++++++++- KanSan/KanSan.csproj | 10 -- KanSan/MainWindow.xaml | 2 +- KanSan/MainWindow.xaml.cs | 21 ++-- KanSan/ProgrammHashVersion.cs | 27 ----- KanSan/UI/Kunde/UCKundeList.xaml | 6 +- KanSan/UI/Kunde/UCKundeList.xaml.cs | 25 ++++- 8 files changed, 159 insertions(+), 55 deletions(-) delete mode 100644 KanSan/ProgrammHashVersion.cs diff --git a/KanSan.ViewModel/KanSan.ViewModel.csproj b/KanSan.ViewModel/KanSan.ViewModel.csproj index f8bf120..ce73efd 100644 --- a/KanSan.ViewModel/KanSan.ViewModel.csproj +++ b/KanSan.ViewModel/KanSan.ViewModel.csproj @@ -14,6 +14,10 @@ + + + + diff --git a/KanSan.ViewModel/MainWindowViewModel.cs b/KanSan.ViewModel/MainWindowViewModel.cs index 3163700..f8e1933 100644 --- a/KanSan.ViewModel/MainWindowViewModel.cs +++ b/KanSan.ViewModel/MainWindowViewModel.cs @@ -1,16 +1,28 @@ -using KanSan.Base.Models; +using KanSan.Base; +using KanSan.Base.Interfaces; +using KanSan.Base.Models; +using Microsoft.Win32; using System; using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; using System.IO; +using System.Linq; using System.Reflection; using System.Text; namespace KanSan.ViewModel { - public class MainWindowViewModel + public class MainWindowViewModel : PropertyChangedClass, INotifyPropertyChanged { + IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext()); + RegistryKey registry; + const string REGISTRYKEY = "HKEY_CURRENT_USER\\Software\\Cosysda\\KanSan"; + private Kunde _selectedKunde; - private string applicationTitle; + private Projekt _selectedProjekt; + private Baustelle _selectedBaustelle; + public string ApplicationTitle { @@ -34,11 +46,110 @@ namespace KanSan.ViewModel { return _selectedKunde; } + set + { + if (_selectedKunde != null) + { + if (_selectedKunde.GuidNr.Equals(value.GuidNr)) return; + } + _selectedKunde = value; + SaveInRegistry("LastKunde", value.GuidNr.ToString()); + OnPropertyChanged(); + } + } + public Projekt SelectedProjekt + { + get + { + return _selectedProjekt; + } + set + { + if(_selectedProjekt != null) + { + if (_selectedProjekt.GuidNr.Equals(value.GuidNr)) return; + } + _selectedProjekt = value; + SaveInRegistry("LastProjekt", value.GuidNr.ToString()); + OnPropertyChanged(); + } + } + public Baustelle SelectedBaustelle + { + get + { + return _selectedBaustelle; + } + set + { + if(_selectedBaustelle != null) + { + if (_selectedBaustelle.GuidNr.Equals(value.GuidNr)) return; + } + _selectedBaustelle = value; + SaveInRegistry("LastBaustelle", value.GuidNr.ToString()); + OnPropertyChanged(); + } + } + + + private void SaveInRegistry(string key, string value) + { + Registry.SetValue(REGISTRYKEY, key, value); + + } + + private void LadeRegistry() + { + registry = Registry.CurrentUser.OpenSubKey("Software\\Cosysda\\KanSan"); + if (registry == null) InitRegistry(); + + string clientGuidStr = (string)registry.GetValue("LastKunde"); + if (clientGuidStr != null) + { + Guid clientGuid = Guid.Parse(clientGuidStr); + + if (clientGuid != null) + { + IEnumerable loadedKunden = unitOfWork.KundenRepository.Get(x => x.GuidNr.Equals(clientGuid)); + if (loadedKunden.Count() == 1) _selectedKunde = loadedKunden.First(); + } + } + + string projekteGuidStr = (string)registry.GetValue("LastProjekt"); + if (projekteGuidStr != null) + { + Guid projekteGuid = Guid.Parse(projekteGuidStr); + + if (projekteGuid != null) + { + IEnumerable loadedProjekte = unitOfWork.ProjekteRepository.Get(x => x.GuidNr.Equals(projekteGuid)); + if (loadedProjekte.Count() == 1) _selectedProjekt = loadedProjekte.First(); + } + } + + string baustellenGuidStr = (string)registry.GetValue("LastBaustelle"); + if (baustellenGuidStr != null) + { + Guid baustellenGuid = Guid.Parse(baustellenGuidStr); + + if (baustellenGuid != null) + { + IEnumerable loadedBaustelle = unitOfWork.BaustelleRepository.Get(x => x.GuidNr.Equals(baustellenGuid)); + if (loadedBaustelle.Count() == 1) _selectedBaustelle = loadedBaustelle.First(); + } + } + } + + private void InitRegistry() + { + Registry.CurrentUser.CreateSubKey("Software\\Cosysda\\KanSan"); + LadeRegistry(); } public MainWindowViewModel() { - + LadeRegistry(); } } } diff --git a/KanSan/KanSan.csproj b/KanSan/KanSan.csproj index 81d0f99..a0bb3f2 100644 --- a/KanSan/KanSan.csproj +++ b/KanSan/KanSan.csproj @@ -6,16 +6,6 @@ true - - - - - - - Always - - - diff --git a/KanSan/MainWindow.xaml b/KanSan/MainWindow.xaml index 951cdd9..b1e294c 100644 --- a/KanSan/MainWindow.xaml +++ b/KanSan/MainWindow.xaml @@ -24,7 +24,7 @@ - + diff --git a/KanSan/MainWindow.xaml.cs b/KanSan/MainWindow.xaml.cs index 4184aae..3414b2e 100644 --- a/KanSan/MainWindow.xaml.cs +++ b/KanSan/MainWindow.xaml.cs @@ -25,24 +25,33 @@ namespace KanSan /// public partial class MainWindow : Window { + UI.UCKundeEdit UCKundeEdit; + UI.UCKundeList UCKundeList; public MainWindow() { InitializeComponent(); this.DataContext = new MainWindowViewModel(); - //this.Title = ProgrammHashVersion.GIT_HASH; + + UCKundeList = new UI.UCKundeList(); + UCKundeList.KundeAdded += UCKundeList_KundeAdded; + UCKundeList.KundeSelect += UCKundeList_KundeSelect; + + } + + private void UCKundeList_KundeSelect(object sender, UI.KundeAddedKlickEventArgs e) + { + (DataContext as MainWindowViewModel).SelectedKunde = e.kunde; } private void UCKundeList_KundeAdded(object sender, UI.KundeAddedKlickEventArgs e) { - UI.UCKundeEdit uCKundeEdit = new UI.UCKundeEdit(e.kunde); - ContentController.Content = uCKundeEdit; + UCKundeEdit = new UI.UCKundeEdit(e.kunde); + ContentController.Content = UCKundeEdit; } private void btnKunden_Click(object sender, RoutedEventArgs e) { - UI.UCKundeList uCKundeList = new UI.UCKundeList(); - uCKundeList.KundeAdded += UCKundeList_KundeAdded; - ContentController.Content = uCKundeList; + ContentController.Content = UCKundeList; } } diff --git a/KanSan/ProgrammHashVersion.cs b/KanSan/ProgrammHashVersion.cs deleted file mode 100644 index 99c2694..0000000 --- a/KanSan/ProgrammHashVersion.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Reflection; -using System.Text; - -namespace KanSan -{ - public static class ProgrammHashVersion - { - public static string GIT_HASH - { - get - { - string gitVersion; - - using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("KanSan.version.txt")) - using (StreamReader reader = new StreamReader(stream)) - { - gitVersion = reader.ReadToEnd(); - } - - return gitVersion; - } - } - } -} diff --git a/KanSan/UI/Kunde/UCKundeList.xaml b/KanSan/UI/Kunde/UCKundeList.xaml index 68e26e4..4454d78 100644 --- a/KanSan/UI/Kunde/UCKundeList.xaml +++ b/KanSan/UI/Kunde/UCKundeList.xaml @@ -9,6 +9,7 @@ + @@ -19,8 +20,9 @@ -