Auftraggeber können nun geändert werden
This commit is contained in:
@@ -1,10 +1,13 @@
|
||||
using SewerStammGen.Shared.Domain;
|
||||
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
|
||||
{
|
||||
@@ -84,15 +87,58 @@ namespace StammGenerator.ViewModel
|
||||
}
|
||||
}
|
||||
|
||||
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)
|
||||
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));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user