diff --git a/KanSan.Base/Interfaces/UI/IObjekteEditViewModel.cs b/KanSan.Base/Interfaces/UI/IObjekteEditViewModel.cs
index f358660..812634e 100644
--- a/KanSan.Base/Interfaces/UI/IObjekteEditViewModel.cs
+++ b/KanSan.Base/Interfaces/UI/IObjekteEditViewModel.cs
@@ -12,5 +12,10 @@ namespace KanSan.Base.Interfaces.UI
string PunktUnten { get; set; }
int Durchmesser { get; set; }
string Material { get; set; }
+ bool RohrleitungInBetrieb { get; set; }
+ bool WasserHaltungDurchgefuehrt { get; set; }
+ bool HaltungGespuelt { get; set; }
+ bool GenehmigungErforderlich { get; set; }
+ bool BaustellenAbsicherung { get; set; }
}
}
diff --git a/KanSan.ViewModel/Objekte/ObjekteEditViewModel.cs b/KanSan.ViewModel/Objekte/ObjekteEditViewModel.cs
index 465b4a9..b3fcffb 100644
--- a/KanSan.ViewModel/Objekte/ObjekteEditViewModel.cs
+++ b/KanSan.ViewModel/Objekte/ObjekteEditViewModel.cs
@@ -4,11 +4,12 @@ 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 ObjekteEditViewModel : IObjekteEditViewModel
+ public class ObjekteEditViewModel : PropertyChangedClass,IObjekteEditViewModel, INotifyPropertyChanged
{
IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext());
string strassename;
@@ -17,15 +18,127 @@ namespace KanSan.ViewModel
string punktUnten;
int durchmesser;
string material;
+ bool rohrleitungInBetrieb;
+ bool wasserHaltungdurchgefuehrt;
+ bool haltungGespuelt;
+ bool genehmigungErforderlich;
+ bool baustellenAbsicherung;
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(); }
+ #region gettersetters
+ public string StrasseName
+ {
+ get => strassename;
+ set
+ {
+ if (strassename == value) return;
+ strassename = value;
+ OnPropertyChanged();
+
+ }
+ }
+ public string Objektnummer
+ {
+ get => objektnummer;
+ set
+ {
+ if (objektnummer == value) return;
+ objektnummer = value;
+ OnPropertyChanged();
+ }
+ }
+ public string PunktOben
+ {
+ get => punktOben;
+ set
+ {
+ if (punktOben == value) return;
+ punktOben = value;
+ OnPropertyChanged();
+ }
+ }
+ public string PunktUnten
+ {
+ get => punktUnten;
+ set
+ {
+ if (punktUnten == value) return;
+ punktUnten = value;
+ OnPropertyChanged();
+ }
+ }
+ public int Durchmesser
+ {
+ get => durchmesser;
+ set
+ {
+ if (durchmesser == value) return;
+ durchmesser = value;
+ OnPropertyChanged();
+ }
+ }
+ public string Material
+ {
+ get => material;
+ set
+ {
+ if (material == value) return;
+ material = value;
+ OnPropertyChanged();
+ }
+ }
+ public bool RohrleitungInBetrieb
+ {
+ get => rohrleitungInBetrieb;
+ set
+ {
+ if (rohrleitungInBetrieb == value) return;
+ rohrleitungInBetrieb = value;
+ OnPropertyChanged();
+ }
+ }
+ public bool WasserHaltungDurchgefuehrt
+ {
+ get => wasserHaltungdurchgefuehrt;
+ set
+ {
+ if (wasserHaltungdurchgefuehrt == value) return;
+ wasserHaltungdurchgefuehrt = value;
+ OnPropertyChanged();
+ }
+ }
+ public bool HaltungGespuelt
+ {
+ get => haltungGespuelt;
+ set
+ {
+ if (haltungGespuelt == value) return;
+ haltungGespuelt = value;
+ OnPropertyChanged();
+ }
+ }
+ public bool GenehmigungErforderlich
+ {
+ get => genehmigungErforderlich;
+ set
+ {
+ if (genehmigungErforderlich == value) return;
+ genehmigungErforderlich = value;
+ OnPropertyChanged();
+ }
+ }
+ public bool BaustellenAbsicherung
+ {
+ get => baustellenAbsicherung;
+ set
+ {
+ if (baustellenAbsicherung == value) return;
+ baustellenAbsicherung = value;
+ OnPropertyChanged();
+ }
+ }
+ #endregion
public ObjekteEditViewModel(Sewer sewer)
{
@@ -36,12 +149,22 @@ namespace KanSan.ViewModel
objektnummer = objekt.ObjektNummer;
durchmesser = objekt.DN;
material = objekt.Material.ToString();
+ rohrleitungInBetrieb = objekt.RohrleitungInBetrieb;
+ wasserHaltungdurchgefuehrt = objekt.WasserHaltungDurchgefuehrt;
+ haltungGespuelt = objekt.HaltungGespuelt;
+ genehmigungErforderlich = objekt.GenehmigungErforderlich;
+ baustellenAbsicherung = objekt.BaustellensicherungErforderlich;
}
public void Speichern()
{
objekt.StrasseName = strassename;
objekt.DN = durchmesser;
+ objekt.RohrleitungInBetrieb = rohrleitungInBetrieb;
+ objekt.WasserHaltungDurchgefuehrt = wasserHaltungdurchgefuehrt;
+ objekt.BaustellensicherungErforderlich = baustellenAbsicherung;
+ objekt.HaltungGespuelt = haltungGespuelt;
+ objekt.GenehmigungErforderlich = genehmigungErforderlich;
unitOfWork.KanaeleRepository.Update(objekt);
unitOfWork.Commit();
diff --git a/KanSan.ViewModel/SewerMainMenuViewModel.cs b/KanSan.ViewModel/SewerMainMenuViewModel.cs
new file mode 100644
index 0000000..8e66e25
--- /dev/null
+++ b/KanSan.ViewModel/SewerMainMenuViewModel.cs
@@ -0,0 +1,28 @@
+using KanSan.Base.Models;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Text;
+
+namespace KanSan.ViewModel
+{
+ public class SewerMainMenuViewModel : PropertyChangedClass,INotifyPropertyChanged
+ {
+ private Sewer model;
+
+ public string ObjektBezeichnung
+ {
+ get
+ {
+ return model.ObjektNummer;
+ }
+ }
+
+
+ public SewerMainMenuViewModel(Sewer model)
+ {
+ if (model == null) throw new ArgumentNullException();
+ this.model = model;
+ }
+ }
+}
diff --git a/KanSan/KanSan.csproj.user b/KanSan/KanSan.csproj.user
index 874d3e1..3453c80 100644
--- a/KanSan/KanSan.csproj.user
+++ b/KanSan/KanSan.csproj.user
@@ -37,6 +37,9 @@
Code
+
+ Code
+
@@ -75,5 +78,8 @@
Designer
+
+ Designer
+
\ No newline at end of file
diff --git a/KanSan/MainWindow.xaml b/KanSan/MainWindow.xaml
index c5582ee..43c6963 100644
--- a/KanSan/MainWindow.xaml
+++ b/KanSan/MainWindow.xaml
@@ -32,7 +32,7 @@
-
+
diff --git a/KanSan/MainWindow.xaml.cs b/KanSan/MainWindow.xaml.cs
index 3bffc11..62db142 100644
--- a/KanSan/MainWindow.xaml.cs
+++ b/KanSan/MainWindow.xaml.cs
@@ -31,6 +31,8 @@ namespace KanSan
UI.UCProjektList UCProjektList;
UI.UCBaustelleList UCBaustelleList;
+ UI.UCSewerMainMenu uCSewerMainMenu;
+
public MainWindow()
{
InitializeComponent();
@@ -111,9 +113,28 @@ namespace KanSan
{
if (e.Objekt == null) return;
(DataContext as MainWindowViewModel).SelectedObjekt = e.Objekt;
- UI.UCObjektEdit uCObjektEdit = new UI.UCObjektEdit();
- ContentController.Content = uCObjektEdit;
- //Debugger.Break();
+ rbObjekte.IsChecked = false;
+
+ uCSewerMainMenu = new UI.UCSewerMainMenu(e.Objekt);
+
+ uCSewerMainMenu.SewerMainMenuSelected += UCSewerMainMenu_SewerMainMenuSelected;
+ SewerMainMenu.Content = uCSewerMainMenu;
+
+ }
+
+ private void UCSewerMainMenu_SewerMainMenuSelected(object sender, UI.SewerMainMenuItemSelectedEventArgs e)
+ {
+ Sewer actualSelectedSewer = (DataContext as MainWindowViewModel).SelectedObjekt;
+ switch(e.Command)
+ {
+ case UI.ESewerMainMenuCommand.STAMMDATEN:
+ ContentController.Content = new UI.UCObjektEdit(actualSelectedSewer);
+ break;
+
+ case UI.ESewerMainMenuCommand.NONE:
+ ContentController.Content = "Wird nicht unterstützt";
+ break;
+ }
}
private void rbKunden_Checked(object sender, RoutedEventArgs e)
diff --git a/KanSan/SampleData/ObjekteEditViewModelSampleData.cs b/KanSan/SampleData/ObjekteEditViewModelSampleData.cs
new file mode 100644
index 0000000..4d6b6bc
--- /dev/null
+++ b/KanSan/SampleData/ObjekteEditViewModelSampleData.cs
@@ -0,0 +1,50 @@
+using KanSan.Base.Interfaces.UI;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace KanSan.SampleData
+{
+ class ObjekteEditViewModelSampleData : IObjekteEditViewModel
+ {
+ string strasseName;
+ string objektnummer;
+ string punktOben;
+ string punktUnten;
+ int durchmesser;
+ string material;
+ bool rohrleitungInBetrieb;
+ bool wasserHaltungdurchgefuehrt;
+ bool haltungGespuelt;
+ bool genehmigungErforderlich;
+ bool baustellenAbsicherung;
+
+
+ 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 bool RohrleitungInBetrieb { get => rohrleitungInBetrieb; set => throw new NotImplementedException(); }
+ public bool WasserHaltungDurchgefuehrt { get => wasserHaltungdurchgefuehrt; set => throw new NotImplementedException(); }
+ public bool HaltungGespuelt { get => haltungGespuelt; set => throw new NotImplementedException(); }
+ public bool GenehmigungErforderlich { get => genehmigungErforderlich; set => throw new NotImplementedException(); }
+ public bool BaustellenAbsicherung { get => baustellenAbsicherung; set => throw new NotImplementedException(); }
+
+ public ObjekteEditViewModelSampleData()
+ {
+ strasseName = "Grader Weg";
+ objektnummer = "SW01";
+ punktOben = objektnummer;
+ punktUnten = "SW02";
+ durchmesser = 150;
+ material = "Steinzeug";
+ rohrleitungInBetrieb = false;
+ wasserHaltungdurchgefuehrt = true;
+ haltungGespuelt = true;
+ genehmigungErforderlich = false;
+ baustellenAbsicherung = true;
+ }
+ }
+}
diff --git a/KanSan/UI/Objekte/UCObjektEdit.xaml b/KanSan/UI/Objekte/UCObjektEdit.xaml
index 3492158..d7e4dde 100644
--- a/KanSan/UI/Objekte/UCObjektEdit.xaml
+++ b/KanSan/UI/Objekte/UCObjektEdit.xaml
@@ -4,9 +4,14 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:self="clr-namespace:KanSan.ViewModel;assembly=KanSan.ViewModel"
+ xmlns:iself ="clr-namespace:KanSan.Base.Interfaces.UI;assembly=KanSan.Base"
xmlns:local="clr-namespace:KanSan.UI"
+ xmlns:sd="clr-namespace:KanSan.SampleData"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800" Background="LightGray">
+
+
+
@@ -23,12 +28,13 @@
+
-
-
-
-
-
+
+
+
+
+
@@ -50,11 +56,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/KanSan/UI/Objekte/UCObjektEdit.xaml.cs b/KanSan/UI/Objekte/UCObjektEdit.xaml.cs
index f52122b..50564e3 100644
--- a/KanSan/UI/Objekte/UCObjektEdit.xaml.cs
+++ b/KanSan/UI/Objekte/UCObjektEdit.xaml.cs
@@ -1,4 +1,6 @@
-using System;
+using KanSan.Base.Models;
+using KanSan.ViewModel;
+using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
@@ -18,9 +20,15 @@ namespace KanSan.UI
///
public partial class UCObjektEdit : UserControl
{
- public UCObjektEdit()
+ public UCObjektEdit(Sewer objekt)
{
InitializeComponent();
+ this.DataContext = new ObjekteEditViewModel(objekt);
+ }
+
+ private void Speichern_Click(object sender, RoutedEventArgs e)
+ {
+ (DataContext as ObjekteEditViewModel).Speichern();
}
}
}
diff --git a/KanSan/UI/UCSewerMainMenu.xaml b/KanSan/UI/UCSewerMainMenu.xaml
new file mode 100644
index 0000000..2fe8f09
--- /dev/null
+++ b/KanSan/UI/UCSewerMainMenu.xaml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/KanSan/UI/UCSewerMainMenu.xaml.cs b/KanSan/UI/UCSewerMainMenu.xaml.cs
new file mode 100644
index 0000000..cfcdfb2
--- /dev/null
+++ b/KanSan/UI/UCSewerMainMenu.xaml.cs
@@ -0,0 +1,76 @@
+using KanSan.Base.Models;
+using KanSan.ViewModel;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Text;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace KanSan.UI
+{
+ ///
+ /// Interaktionslogik für UCSewerMainMenu.xaml
+ ///
+ public partial class UCSewerMainMenu : UserControl
+ {
+ public event EventHandler SewerMainMenuSelected;
+
+ protected virtual void OnSewerMenuSelected(SewerMainMenuItemSelectedEventArgs e)
+ {
+ EventHandler handler = SewerMainMenuSelected;
+ if (handler != null)
+ handler(this, e);
+ }
+
+ public UCSewerMainMenu(Sewer objekt)
+ {
+ InitializeComponent();
+ this.DataContext = new SewerMainMenuViewModel(objekt);
+ Style style = this.FindResource("ToggelButtonList") as Style;
+
+ RadioButton radioButton = new RadioButton();
+ radioButton.Name = "Schlauch122123";
+ radioButton.Content = "Schlauchliner";
+ radioButton.Style = style;
+ radioButton.Checked += rbSewerMenuItem_Checked;
+
+ MenuItems.Children.Add(radioButton);
+ }
+
+ private void rbSewerMenuItem_Checked(object sender, RoutedEventArgs e)
+ {
+ RadioButton radioButton = (RadioButton)sender;
+ if (radioButton == null) return;
+ //Debugger.Break();
+ ESewerMainMenuCommand command = ESewerMainMenuCommand.NONE;
+ if (radioButton.Name.Equals("rbStammdaten")) command = ESewerMainMenuCommand.STAMMDATEN;
+ else if (radioButton.Name.Equals("rbSchaeden")) command = ESewerMainMenuCommand.SCHAEDEN;
+
+ OnSewerMenuSelected(new SewerMainMenuItemSelectedEventArgs()
+ {
+ Command = command
+ }) ;
+ }
+ }
+
+ public enum ESewerMainMenuCommand
+ {
+ NONE,
+ STAMMDATEN,
+ SCHAEDEN,
+ SANIERUNG
+ }
+ public class SewerMainMenuItemSelectedEventArgs : EventArgs
+ {
+ public ESewerMainMenuCommand Command { get; set; }
+ public int Parameter { get; set; }
+ }
+}