Auftraggeber können nun geändert werden

This commit is contained in:
2023-07-03 08:01:20 +02:00
parent 40a0882631
commit 287c7aaa0a
6 changed files with 96 additions and 8 deletions

View File

@@ -1,4 +1,5 @@
using SewerStammGen.Shared.Contracts;
using SewerStammGen.DAL.Services.PostgresqlData;
using SewerStammGen.Shared.Contracts;
using SewerStammGen.Shared.Domain;
using Shared.Contracts;
@@ -6,6 +7,7 @@ using StammGenerator.Interface;
using StammGenerator.Views;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Windows;
using System.Windows.Input;
@@ -16,9 +18,10 @@ namespace StammGenerator.ViewModel
private Projekt _model;
private int ProjektID;
private readonly IDataService<Projekt> _projectDataService;
private readonly IDataService<Auftraggeber> _auftraggeberDataService;
private readonly IAuftraggeberDataService _auftraggeberDataService;
private Auftraggeber auftraggeber = new Auftraggeber();
private readonly IRenavigator _renavigator;
private bool AuftraggeberChanged = false;
public ProjektSettingsViewModel ProjektSettingsViewModel { get; set; }
@@ -109,7 +112,7 @@ namespace StammGenerator.ViewModel
private void ChangeAuftraggeber()
{
var win = new AuftraggeberShow();
win.DataContext = new AuftraggeberEditViewModel(_model.Auftraggeber);
win.DataContext = new AuftraggeberEditViewModel(_model.Auftraggeber, _auftraggeberDataService);
win.Closed += AuftraggeberWin_Closed;
win.ShowDialog();
@@ -117,6 +120,17 @@ namespace StammGenerator.ViewModel
private void AuftraggeberWin_Closed(object? sender, EventArgs e)
{
AuftraggeberShow? shw = sender as AuftraggeberShow;
if (shw == null) return;
AuftraggeberEditViewModel? mdl = shw.DataContext as AuftraggeberEditViewModel;
if (mdl == null) return;
if (mdl.SelectedAuftraggber == null) return;
if (!_model.Auftraggeber.Id.Equals(mdl.SelectedAuftraggber.Id))
{
_model.Auftraggeber = mdl.SelectedAuftraggber;
AuftraggeberChanged = true;
}
OnPropertyChanged(nameof(Auftraggeber));
}
@@ -144,7 +158,10 @@ namespace StammGenerator.ViewModel
private void SaveProject()
{
if (_model.Auftraggeber.DataChanged)
// Zur Zeit ohne Funktion da die Klasse so nicht bearbeitet wird. State geht verloren
//if (_model.AuftraggeberTemporar && !_model.Auftraggeber.DataChanged)
// ChangeAuftraggeber();
if (_model.Auftraggeber.DataChanged && !AuftraggeberChanged)
_auftraggeberDataService.Update(_model.Auftraggeber);
_projectDataService.Update(_model);