using SewerStammGen.Shared.Contracts; using SewerStammGen.WPF.ViewModel.State; using Shared.Contracts; using Shared.Domain; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Controls; using System.Windows.Input; namespace SewerStammGen.WPF.ViewModel { internal class HaltungEditViewModel : BaseViewModel { private readonly IActualState _actualState; private readonly IHaltungDataService _kanalDataService; private Kanal _model; public string Haltungsbezeichnung { get => _model.Objektbezeichnung; set { if(_model.Objektbezeichnung != value) { _model.Objektbezeichnung = value; OnPropertyChanged(); } } } public string Material { get => _model.Material; set { if( _model.Material != value) { _model.Material = value; OnPropertyChanged(); } } } public string Durchmesser { get => _model.DN.ToString(); set { if(_model.DN.ToString() != value) { _model.DN = int.Parse(value); OnPropertyChanged(); } } } public string Haltungslaenge { get => _model.Haltungslaenge.ToString(); set { if(_model.Haltungslaenge.ToString() != value) { _model.Haltungslaenge = decimal.Parse(value); OnPropertyChanged(); } } } public ICommand Speichern { get; set; } public HaltungEditViewModel(IHaltungDataService kanalDataService, IActualState actualState) { _actualState = actualState; _kanalDataService = kanalDataService; _model = new Kanal(); Speichern = new RelayCommand((x) => SaveKanal()); LoadModel(); } private void SaveKanal() { _kanalDataService.Update(_model.Id, _model); } private async void LoadModel() { _model = await _kanalDataService.Get(_actualState.HaltungID); OnPropertyChanged(nameof(Haltungslaenge)); OnPropertyChanged(nameof(Haltungsbezeichnung)); OnPropertyChanged(nameof(Material)); OnPropertyChanged(nameof(Haltungslaenge)); } } }