auftraggeber können editiert werden.
Beim Speichern des Projekt werden Auftraggber mit gespeichert
This commit is contained in:
@@ -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