using DaSaSo.Domain.Model; using DaSaSo.Domain.Services; using DaSaSo.Domain.Services.SewerPointServices; using DaSaSo.EntityFramework.Services; using DaSaSo.ViewModel.Commands; using DaSaSo.ViewModel.Interface; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Input; namespace DaSaSo.ViewModel { public class SewerStammdatenViewModel : BaseViewModel { private readonly IActualProject _actualProject; private readonly ISewerpointService _sewerpointService; private SewerObject _model; public ICommand SaveCommand { get; set; } public string _oberepunkt { get; set; } public string _unterepunkt { get; set; } public string Haltungsname { get => Model.ObjektName; set { if(Model.ObjektName != value) { Model.ObjektName = value; OnPropertyChanged(); } } } public string Hausnummer { get => Model.Hausnummer; set { if(Model.Hausnummer != value) { Model.Hausnummer = value; OnPropertyChanged(); } } } public string Sanierungsid { get => Model.SanNummer; set { if(Model.SanNummer != value) { Model.SanNummer = value; OnPropertyChanged(); } } } public string Oberepunkt { get { if (_model.PunktOben != null) return _model.PunktOben.Objektnummer; return _oberepunkt; } set { if(_oberepunkt != value) { _oberepunkt = value; } } } public string Unterepunkt { get { if (_model.PunktUnten != null) return _model.PunktUnten.Objektnummer; return _unterepunkt; } set { if(_unterepunkt != value) { _unterepunkt = value; } } } public int Durchmesser { get => Model.DN; set { if(Model.DN != value) { Model.DN = value; OnPropertyChanged(); } } } public string Material { get => Model.Material; set { if(Model.Material != value) { Model.Material = value; OnPropertyChanged(); } } } public decimal Leitungslength { get => Model.SewerLength; set { if(Model.SewerLength != value) { Model.SewerLength = value; OnPropertyChanged(); } } } public string Strasse { get => Model.StreetName; set { if (Model.StreetName != value) { Model.StreetName = value; OnPropertyChanged(); } } } public string Ort { get { return Model.BuildingSite == null ? "" : Model.BuildingSite.Country; } set { if(Model.BuildingSite.Country != value) { Model.BuildingSite.Country = value; OnPropertyChanged(); } } } public SewerObject Model { get => _model; set { _model = value; OnPropertyChanged(nameof(Haltungsname)); OnPropertyChanged(nameof(Oberepunkt)); OnPropertyChanged(nameof(Unterepunkt)); OnPropertyChanged(nameof(Durchmesser)); OnPropertyChanged(nameof(Material)); OnPropertyChanged(nameof(Leitungslength)); OnPropertyChanged(nameof(Strasse)); OnPropertyChanged(nameof(Ort)); } } public SewerStammdatenViewModel(IActualProject actualProject, IDataService dataService, ISewerpointService sewerpointService) { _actualProject = actualProject; Model = _actualProject.AktuellSewerObject; SaveCommand = new SaveSewerStammdatenCommand(this, dataService, sewerpointService); this.PropertyChanged += SewerStammdatenViewModel_PropertyChanged; } private void SewerStammdatenViewModel_PropertyChanged(object? sender, System.ComponentModel.PropertyChangedEventArgs e) { Model.IsChanged = true; } ~SewerStammdatenViewModel() { } } }