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 @@
-
-
+
+
+
diff --git a/KanSan/UI/Kunde/UCKundeList.xaml.cs b/KanSan/UI/Kunde/UCKundeList.xaml.cs
index 7a0477e..6f98fad 100644
--- a/KanSan/UI/Kunde/UCKundeList.xaml.cs
+++ b/KanSan/UI/Kunde/UCKundeList.xaml.cs
@@ -21,7 +21,8 @@ namespace KanSan.UI
///
public partial class UCKundeList : UserControl
{
-
+ public event EventHandler KundeAdded;
+ public event EventHandler KundeSelect;
public UCKundeList()
{
InitializeComponent();
@@ -32,23 +33,37 @@ namespace KanSan.UI
{
KundeAddedKlickEventArgs args = new KundeAddedKlickEventArgs();
args.kunde = (DataContext as KundenListViewModel).NeueKunde();
- OnKlickedKunde(args);
+ OnClickKundeAdded(args);
}
- protected virtual void OnKlickedKunde(KundeAddedKlickEventArgs e)
+ protected virtual void OnClickKundeAdded(KundeAddedKlickEventArgs e)
{
EventHandler handler = KundeAdded;
if (handler != null)
handler(this, e);
}
- public event EventHandler KundeAdded;
+
+ protected virtual void OnClickSelectedKunde(KundeAddedKlickEventArgs e)
+ {
+ EventHandler handler = KundeSelect;
+ if (handler != null)
+ handler(this, e);
+ }
+
private void EditKunde_Click(object sender, RoutedEventArgs e)
{
Kunde selectedKunde = (dgKundenList.SelectedItem as Kunde);
if (selectedKunde == null) return;
- OnKlickedKunde(new KundeAddedKlickEventArgs() { kunde = selectedKunde });
+ OnClickKundeAdded(new KundeAddedKlickEventArgs() { kunde = selectedKunde });
+ }
+
+ private void SelectKunde_Click(object sender, RoutedEventArgs e)
+ {
+ Kunde selectedKunde = (dgKundenList.SelectedItem as Kunde);
+ if (selectedKunde == null) return;
+ OnClickSelectedKunde(new KundeAddedKlickEventArgs() { kunde = selectedKunde });
}
}