auftraggeber können editiert werden.
Beim Speichern des Projekt werden Auftraggber mit gespeichert
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
using SewerStammGen.Shared.Domain;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnPropertyChanged([CallerMemberName] string? propertyName = null)
|
||||
{
|
||||
_model.DataChanged = true;
|
||||
base.OnPropertyChanged(propertyName);
|
||||
}
|
||||
|
||||
public AuftraggeberEditViewModel(Auftraggeber model)
|
||||
{
|
||||
_model = model;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,8 +1,12 @@
|
||||
using SewerStammGen.Shared.Contracts;
|
||||
using SewerStammGen.Shared.Domain;
|
||||
using Shared.Contracts;
|
||||
using StammGenerator.Commands;
|
||||
|
||||
using StammGenerator.Interface;
|
||||
using StammGenerator.Views;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace StammGenerator.ViewModel
|
||||
@@ -11,12 +15,26 @@ namespace StammGenerator.ViewModel
|
||||
{
|
||||
private Projekt _model;
|
||||
private int ProjektID;
|
||||
private readonly IDataService<Projekt> _dataService;
|
||||
private readonly IDataService<Projekt> _projectDataService;
|
||||
private readonly IDataService<Auftraggeber> _auftraggeberDataService;
|
||||
private Auftraggeber auftraggeber = new Auftraggeber();
|
||||
private readonly IRenavigator _renavigator;
|
||||
|
||||
public ProjektSettingsViewModel ProjektSettingsViewModel { get; set; }
|
||||
|
||||
public ICommand Speichern { get; set; }
|
||||
public ICommand AuftraggeberChange { get; set; }
|
||||
|
||||
public Auftraggeber Auftraggeber
|
||||
{
|
||||
get => _model.Auftraggeber;
|
||||
set
|
||||
{
|
||||
if(_model.Auftraggeber == value) return;
|
||||
_model.Auftraggeber = value;
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public string ProjektName
|
||||
@@ -68,15 +86,17 @@ namespace StammGenerator.ViewModel
|
||||
}
|
||||
}
|
||||
|
||||
public ProjektEditViewModel(IProjektDataService dataService, IActualState actualState, IRenavigator renavigator)
|
||||
public ProjektEditViewModel(IProjektDataService projektDataService,IAuftraggeberDataService auftraggeberDataService, IActualState actualState, IRenavigator renavigator)
|
||||
{
|
||||
_dataService = dataService;
|
||||
_projectDataService = projektDataService;
|
||||
_auftraggeberDataService = auftraggeberDataService;
|
||||
_renavigator = renavigator;
|
||||
|
||||
ProjektID = actualState.ProjektID;
|
||||
|
||||
_model = new Projekt();
|
||||
Speichern = new RelayCommand((x) => this.SaveProject());
|
||||
AuftraggeberChange = new RelayCommand((x) => this.ChangeAuftraggeber());
|
||||
this.ProjektSettingsViewModel = new ProjektSettingsViewModel();
|
||||
|
||||
|
||||
@@ -86,10 +106,24 @@ namespace StammGenerator.ViewModel
|
||||
|
||||
}
|
||||
|
||||
private void ChangeAuftraggeber()
|
||||
{
|
||||
var win = new AuftraggeberShow();
|
||||
win.DataContext = new AuftraggeberEditViewModel(_model.Auftraggeber);
|
||||
win.Closed += AuftraggeberWin_Closed;
|
||||
win.ShowDialog();
|
||||
|
||||
}
|
||||
|
||||
private void AuftraggeberWin_Closed(object? sender, EventArgs e)
|
||||
{
|
||||
OnPropertyChanged(nameof(Auftraggeber));
|
||||
}
|
||||
|
||||
private async void LoadProjekt()
|
||||
{
|
||||
|
||||
_model = await _dataService.Get(ProjektID);
|
||||
_model = await _projectDataService.Get(ProjektID);
|
||||
if(_model == null)
|
||||
{
|
||||
_model = new Projekt()
|
||||
@@ -104,11 +138,15 @@ namespace StammGenerator.ViewModel
|
||||
OnPropertyChanged(nameof(Strasse));
|
||||
OnPropertyChanged(nameof(Ort));
|
||||
OnPropertyChanged(nameof(ProjektSettingsViewModel));
|
||||
OnPropertyChanged(nameof(Auftraggeber));
|
||||
|
||||
}
|
||||
|
||||
private void SaveProject()
|
||||
{
|
||||
_dataService.Update(_model);
|
||||
if (_model.Auftraggeber.DataChanged)
|
||||
_auftraggeberDataService.Update(_model.Auftraggeber);
|
||||
_projectDataService.Update(_model);
|
||||
|
||||
_renavigator.Renavigate();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user