using SewerStammGen.Shared.Contracts; using SewerStammGen.Shared.Domain; using Shared.Contracts; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; using System.Windows.Input; namespace StammGenerator.ViewModel { class AuftraggeberEditViewModel : BaseViewModel { Auftraggeber _model; public string Name { get => _model.Name; set { if(_model.Name != value) { _model.Name = value; OnPropertyChanged(); } } } public string Strasse { get => _model.Strasse; set { if(_model.Strasse != value) { _model.Strasse = value; OnPropertyChanged(); } } } public string Ort { get => _model.Ort; set { if(_model.Ort != value) { _model.Ort = value; OnPropertyChanged(); } } } public string Postleitzahl { get => _model.Postleitzahl; set { if(_model.Postleitzahl != value) { _model.Postleitzahl = value; OnPropertyChanged(); } } } public string Telefonnummer { get => _model.Telefonnummer; set { if(_model.Telefonnummer != value) { _model.Telefonnummer = value; OnPropertyChanged(); } } } public string Ansprechpartner { get => _model.Ansprechpartner; set { if(_model.Ansprechpartner != value) { _model.Ansprechpartner = value; OnPropertyChanged(); } } } public Auftraggeber? SelectedAuftraggber { get; set; } = null; public ICommand ApplyCommand { get; set; } private readonly IAuftraggeberDataService _auftraggeberDataService; private IList verfuegbareAuftraggeber = new List(); public IList VerfuegbareAuftraggeber { get => verfuegbareAuftraggeber; set { verfuegbareAuftraggeber = value; OnPropertyChanged(); } } protected override void OnPropertyChanged([CallerMemberName] string? propertyName = null) { _model.DataChanged = true; base.OnPropertyChanged(propertyName); } public AuftraggeberEditViewModel(Auftraggeber model, IAuftraggeberDataService auftraggeberDataService) { _model = model; _auftraggeberDataService = auftraggeberDataService; ApplyCommand = new RelayCommand((x) => this.Apply()); LoadAuftraggebers(); } private void Apply() { if (SelectedAuftraggber == null) return; _model = SelectedAuftraggber; OnPropertyChanged(nameof(Name)); OnPropertyChanged(nameof(Strasse)); OnPropertyChanged(nameof(Ort)); OnPropertyChanged(nameof(Postleitzahl)); OnPropertyChanged(nameof(Telefonnummer)); OnPropertyChanged(nameof(Ansprechpartner)); } private async void LoadAuftraggebers() { VerfuegbareAuftraggeber.Clear(); IEnumerable s = await _auftraggeberDataService.GetAll(); VerfuegbareAuftraggeber = s.ToList(); OnPropertyChanged(nameof(VerfuegbareAuftraggeber)); } } }