Haltungedit erweitert

This commit is contained in:
2023-04-11 15:57:22 +02:00
parent 7999b7ffd0
commit d9e3fdb793
7 changed files with 108 additions and 10 deletions

View File

@@ -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<Schacht> _verfuegbareSchaechte;
public ObservableCollection<Schacht> 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<Schacht>();
_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<Schacht> dst, IEnumerable<Schacht> 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));
}
}
}