diff --git a/SewerStammGen.EntityFramework/Services/HaltungDataService.cs b/SewerStammGen.EntityFramework/Services/HaltungDataService.cs index dbc2944..c6fd5fd 100644 --- a/SewerStammGen.EntityFramework/Services/HaltungDataService.cs +++ b/SewerStammGen.EntityFramework/Services/HaltungDataService.cs @@ -62,9 +62,9 @@ namespace SewerStammGen.EntityFramework.Services throw new NotImplementedException(); } - public Task Update(int id, Kanal entity) + public async Task Update(int id, Kanal entity) { - throw new NotImplementedException(); + return await _nonQueryDataService.Update(id, entity); } } } diff --git a/SewerStammGen/HostBuilders/AddViewModelsHostBuilderExtensions.cs b/SewerStammGen/HostBuilders/AddViewModelsHostBuilderExtensions.cs index 723f078..e25a4e9 100644 --- a/SewerStammGen/HostBuilders/AddViewModelsHostBuilderExtensions.cs +++ b/SewerStammGen/HostBuilders/AddViewModelsHostBuilderExtensions.cs @@ -76,6 +76,7 @@ namespace SewerStammGen.HostBuilders { return () => new HaltungEditViewModel( services.GetRequiredService(), + services.GetRequiredService(), services.GetRequiredService() ); }); diff --git a/SewerStammGen/SewerStammGen.WPF.csproj b/SewerStammGen/SewerStammGen.WPF.csproj index 794406a..e87a1db 100644 --- a/SewerStammGen/SewerStammGen.WPF.csproj +++ b/SewerStammGen/SewerStammGen.WPF.csproj @@ -14,6 +14,7 @@ + diff --git a/SewerStammGen/ViewModel/Haltung/HaltungEditViewModel.cs b/SewerStammGen/ViewModel/Haltung/HaltungEditViewModel.cs index d0b64f8..21d63de 100644 --- a/SewerStammGen/ViewModel/Haltung/HaltungEditViewModel.cs +++ b/SewerStammGen/ViewModel/Haltung/HaltungEditViewModel.cs @@ -4,6 +4,7 @@ using Shared.Contracts; using Shared.Domain; using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -18,6 +19,40 @@ namespace SewerStammGen.WPF.ViewModel private readonly IHaltungDataService _kanalDataService; private Kanal _model; + private ObservableCollection _verfuegbareSchaechte; + + public ObservableCollection VerfuegbareSchaechte + { + get => _verfuegbareSchaechte; + } + + + public Schacht ObereSchacht + { + get => _model.StartSchacht; + set + { + if(_model.StartSchacht != value) + { + _model.StartSchacht = value; + OnPropertyChanged(); + } + } + } + + public Schacht UntereSchacht + { + get => _model.EndSchacht; + set + { + if(_model.EndSchacht != value) + { + _model.EndSchacht = value; + OnPropertyChanged(); + } + } + } + public string Haltungsbezeichnung { get => _model.Objektbezeichnung; @@ -69,14 +104,34 @@ namespace SewerStammGen.WPF.ViewModel public ICommand Speichern { get; set; } - public HaltungEditViewModel(IHaltungDataService kanalDataService, IActualState actualState) + public HaltungEditViewModel(IHaltungDataService kanalDataService, + ISchachtDataService schachtDataService, + IActualState actualState) { _actualState = actualState; _kanalDataService = kanalDataService; + _verfuegbareSchaechte = new ObservableCollection(); _model = new Kanal(); Speichern = new RelayCommand((x) => SaveKanal()); LoadModel(); + LoadSchaechte(schachtDataService); + } + + private async void LoadSchaechte(ISchachtDataService schachtDataService) + { + var s = await schachtDataService.GetAll(_actualState.ProjektID); + InitCollection(_verfuegbareSchaechte, s); + + } + + private void InitCollection(ObservableCollection dst, IEnumerable src) + { + dst.Clear(); + foreach (var srcItem in src) { + dst.Add(srcItem); + } + OnPropertyChanged(nameof(VerfuegbareSchaechte)); } private void SaveKanal() @@ -87,10 +142,12 @@ namespace SewerStammGen.WPF.ViewModel private async void LoadModel() { _model = await _kanalDataService.Get(_actualState.HaltungID); + OnPropertyChanged(nameof(ObereSchacht)); + OnPropertyChanged(nameof(UntereSchacht)); OnPropertyChanged(nameof(Haltungslaenge)); OnPropertyChanged(nameof(Haltungsbezeichnung)); OnPropertyChanged(nameof(Material)); - OnPropertyChanged(nameof(Haltungslaenge)); + OnPropertyChanged(nameof(Durchmesser)); } } } diff --git a/SewerStammGen/ViewModel/Haltung/TextBoxFilterAction.cs b/SewerStammGen/ViewModel/Haltung/TextBoxFilterAction.cs new file mode 100644 index 0000000..f3d279e --- /dev/null +++ b/SewerStammGen/ViewModel/Haltung/TextBoxFilterAction.cs @@ -0,0 +1,18 @@ +using Microsoft.Xaml.Behaviors; +using Syncfusion.UI.Xaml.Grid; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SewerStammGen.WPF.Views +{ + public class TextBoxFilterAction : TargetedTriggerAction + { + protected override void Invoke(object parameter) + { + throw new NotImplementedException(); + } + } +} diff --git a/SewerStammGen/Views/Haltung/HaltungEditView.xaml b/SewerStammGen/Views/Haltung/HaltungEditView.xaml index 53ca95b..810a635 100644 --- a/SewerStammGen/Views/Haltung/HaltungEditView.xaml +++ b/SewerStammGen/Views/Haltung/HaltungEditView.xaml @@ -3,13 +3,22 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:behaviors="http://schemas.microsoft.com/xaml/behaviors" xmlns:syncfusion="http://schemas.syncfusion.com/wpf" xmlns:local="clr-namespace:SewerStammGen.WPF.Views" mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800"> - + + + + + + + + + @@ -38,6 +47,8 @@ Width="250" Margin="10,0" + ItemsSource="{Binding VerfuegbareSchaechte}" + SelectedItem="{Binding ObereSchacht, Mode=TwoWay}" HorizontalAlignment="Left" VerticalAlignment="Top" @@ -45,17 +56,21 @@ AllowImmediatePopup="True" AllowIncrementalFiltering="True" AutoGenerateColumns="False" - DisplayMember="Title" + DisplayMember="Objektbezeichnung" HeaderTemplate="{StaticResource headerTemplate}" PopupWidth="400" ValueMember="Cast" > + + + + SelectedItem="{Binding UntereSchacht }" + > + + + + @@ -98,7 +118,8 @@ -