using SewerStammGen.Shared.Domain; using SewerStammGen.WPF.ViewModel.State; using Shared.Contracts; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Input; namespace SewerStammGen.WPF.ViewModel { public class ManholeEditViewModel : BaseViewModel { private readonly IActualState _actualState; private readonly IDataService _schachtDataService; private Schacht _model; public ICommand Speichern { get; set; } public string Objektbezeichnung { get { return _model.Objektbezeichnung; } set { if(_model.Objektbezeichnung != value) { _model.Objektbezeichnung = value; OnPropertyChanged(); } } } public decimal RechtsWert { get => _model.RechtsWert; set { if(_model.RechtsWert != value) { _model.RechtsWert = value; OnPropertyChanged(); } } } public decimal HochWert { get => _model.HochWert; set { if (_model.HochWert != value) { _model.HochWert = value; OnPropertyChanged(); } } } public decimal DeckelHoehe { get => _model.DeckelHoehe; set { if (_model.DeckelHoehe != value) { _model.DeckelHoehe = value; OnPropertyChanged(); } } } public decimal SohlHoehe { get => _model.SohlHoehe; set { if (_model.SohlHoehe != value) { _model.SohlHoehe = value; OnPropertyChanged(); } } } public EEntwaeserung Entwaeserung { get => _model.Entwaesserung; set { if (_model.Entwaesserung != value) { _model.Entwaesserung = value; OnPropertyChanged(); } } } public ManholeEditViewModel(IDataService schachtDataService,IActualState actualState) { _actualState = actualState; _schachtDataService = schachtDataService; _model = new Schacht(); Speichern = new RelayCommand((x) => SaveSchacht()); LoadModel(); } private void SaveSchacht() { _schachtDataService.Update(_model.Id, _model); } private async void LoadModel() { _model = await _schachtDataService.Get(_actualState.SchachtID); OnPropertyChanged(nameof(Entwaeserung)); OnPropertyChanged(nameof(Objektbezeichnung)); OnPropertyChanged(nameof(HochWert)); OnPropertyChanged(nameof(RechtsWert)); OnPropertyChanged(nameof(DeckelHoehe)); OnPropertyChanged(nameof(SohlHoehe)); } } }