Files
SewerGenerator/StammGenerator/ViewModel/Auftraggeber/AuftraggeberEditViewModel.cs

146 lines
4.0 KiB
C#

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<Auftraggeber> verfuegbareAuftraggeber = new List<Auftraggeber>();
public IList<Auftraggeber> 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<Auftraggeber> s = await _auftraggeberDataService.GetAll();
VerfuegbareAuftraggeber = s.ToList();
OnPropertyChanged(nameof(VerfuegbareAuftraggeber));
}
}
}