auftraggeber können editiert werden.
Beim Speichern des Projekt werden Auftraggber mit gespeichert
This commit is contained in:
@@ -3,6 +3,7 @@ using SewerStammGen.Shared.Contracts;
|
|||||||
using SewerStammGen.Shared.Domain;
|
using SewerStammGen.Shared.Domain;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@@ -75,9 +76,22 @@ namespace SewerStammGen.DAL.Services.PostgresqlData
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<Auftraggeber> Update(Auftraggeber entity)
|
public async Task<Auftraggeber> Update(Auftraggeber entity)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
string command = "UPDATE " + tableName + " SET name=@1, strasse=@2, ort=@3, postleitzahl=@4, ansprechpartner=@5,telefonnummer=@6 WHERE auftraggeber_id=@7";
|
||||||
|
using (var cmd = new NpgsqlCommand(command, conn))
|
||||||
|
{
|
||||||
|
cmd.Parameters.AddWithValue("1", entity.Name);
|
||||||
|
cmd.Parameters.AddWithValue("2", entity.Strasse);
|
||||||
|
cmd.Parameters.AddWithValue("3", entity.Ort);
|
||||||
|
cmd.Parameters.AddWithValue("4", entity.Postleitzahl);
|
||||||
|
cmd.Parameters.AddWithValue("5", entity.Ansprechpartner);
|
||||||
|
cmd.Parameters.AddWithValue("6", entity.Telefonnummer);
|
||||||
|
cmd.Parameters.AddWithValue("7", entity.Id);
|
||||||
|
int res = await cmd.ExecuteNonQueryAsync();
|
||||||
|
Trace.WriteLine(res);
|
||||||
|
}
|
||||||
|
return entity;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,5 +14,7 @@ namespace SewerStammGen.Shared.Domain
|
|||||||
public string Postleitzahl { get; set; } = String.Empty;
|
public string Postleitzahl { get; set; } = String.Empty;
|
||||||
public string Ansprechpartner { get; set; } = String.Empty;
|
public string Ansprechpartner { get; set; } = String.Empty;
|
||||||
public string Telefonnummer { get; set; } = String.Empty;
|
public string Telefonnummer { get; set; } = String.Empty;
|
||||||
|
|
||||||
|
public bool DataChanged { get; set; } = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -86,6 +86,7 @@ namespace StammGenerator.HostBuilders
|
|||||||
{
|
{
|
||||||
return () => new ProjektEditViewModel(
|
return () => new ProjektEditViewModel(
|
||||||
services.GetRequiredService<IProjektDataService>(),
|
services.GetRequiredService<IProjektDataService>(),
|
||||||
|
services.GetRequiredService<IAuftraggeberDataService>(),
|
||||||
services.GetRequiredService<IActualState>(),
|
services.GetRequiredService<IActualState>(),
|
||||||
services.GetRequiredService<ViewModelDelegateRenavigator<ProjektListViewModel>>()
|
services.GetRequiredService<ViewModelDelegateRenavigator<ProjektListViewModel>>()
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,9 @@
|
|||||||
</ApplicationDefinition>
|
</ApplicationDefinition>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Compile Update="Views\Auftraggeber\AuftraggeberShow.xaml.cs">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
<Compile Update="Views\Haltung\HaltungEditView.xaml.cs">
|
<Compile Update="Views\Haltung\HaltungEditView.xaml.cs">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
@@ -42,6 +45,9 @@
|
|||||||
<Page Update="MainWindow.xaml">
|
<Page Update="MainWindow.xaml">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</Page>
|
</Page>
|
||||||
|
<Page Update="Views\Auftraggeber\AuftraggeberShow.xaml">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</Page>
|
||||||
<Page Update="Views\Haltung\HaltungEditView.xaml">
|
<Page Update="Views\Haltung\HaltungEditView.xaml">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</Page>
|
</Page>
|
||||||
|
|||||||
@@ -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.Contracts;
|
||||||
using SewerStammGen.Shared.Domain;
|
using SewerStammGen.Shared.Domain;
|
||||||
using Shared.Contracts;
|
using Shared.Contracts;
|
||||||
using StammGenerator.Commands;
|
|
||||||
using StammGenerator.Interface;
|
using StammGenerator.Interface;
|
||||||
|
using StammGenerator.Views;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Windows;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
|
|
||||||
namespace StammGenerator.ViewModel
|
namespace StammGenerator.ViewModel
|
||||||
@@ -11,12 +15,26 @@ namespace StammGenerator.ViewModel
|
|||||||
{
|
{
|
||||||
private Projekt _model;
|
private Projekt _model;
|
||||||
private int ProjektID;
|
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;
|
private readonly IRenavigator _renavigator;
|
||||||
|
|
||||||
public ProjektSettingsViewModel ProjektSettingsViewModel { get; set; }
|
public ProjektSettingsViewModel ProjektSettingsViewModel { get; set; }
|
||||||
|
|
||||||
public ICommand Speichern { 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
|
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;
|
_renavigator = renavigator;
|
||||||
|
|
||||||
ProjektID = actualState.ProjektID;
|
ProjektID = actualState.ProjektID;
|
||||||
|
|
||||||
_model = new Projekt();
|
_model = new Projekt();
|
||||||
Speichern = new RelayCommand((x) => this.SaveProject());
|
Speichern = new RelayCommand((x) => this.SaveProject());
|
||||||
|
AuftraggeberChange = new RelayCommand((x) => this.ChangeAuftraggeber());
|
||||||
this.ProjektSettingsViewModel = new ProjektSettingsViewModel();
|
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()
|
private async void LoadProjekt()
|
||||||
{
|
{
|
||||||
|
|
||||||
_model = await _dataService.Get(ProjektID);
|
_model = await _projectDataService.Get(ProjektID);
|
||||||
if(_model == null)
|
if(_model == null)
|
||||||
{
|
{
|
||||||
_model = new Projekt()
|
_model = new Projekt()
|
||||||
@@ -104,11 +138,15 @@ namespace StammGenerator.ViewModel
|
|||||||
OnPropertyChanged(nameof(Strasse));
|
OnPropertyChanged(nameof(Strasse));
|
||||||
OnPropertyChanged(nameof(Ort));
|
OnPropertyChanged(nameof(Ort));
|
||||||
OnPropertyChanged(nameof(ProjektSettingsViewModel));
|
OnPropertyChanged(nameof(ProjektSettingsViewModel));
|
||||||
|
OnPropertyChanged(nameof(Auftraggeber));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SaveProject()
|
private void SaveProject()
|
||||||
{
|
{
|
||||||
_dataService.Update(_model);
|
if (_model.Auftraggeber.DataChanged)
|
||||||
|
_auftraggeberDataService.Update(_model.Auftraggeber);
|
||||||
|
_projectDataService.Update(_model);
|
||||||
|
|
||||||
_renavigator.Renavigate();
|
_renavigator.Renavigate();
|
||||||
}
|
}
|
||||||
|
|||||||
37
StammGenerator/Views/Auftraggeber/AuftraggeberShow.xaml
Normal file
37
StammGenerator/Views/Auftraggeber/AuftraggeberShow.xaml
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
<Window x:Class="StammGenerator.Views.AuftraggeberShow"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
xmlns:local="clr-namespace:StammGenerator.Views"
|
||||||
|
mc:Ignorable="d"
|
||||||
|
Title="AuftraggeberShow" Height="450" Width="800">
|
||||||
|
<Grid>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="auto" />
|
||||||
|
<ColumnDefinition Width="300" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="auto" />
|
||||||
|
<RowDefinition Height="auto" />
|
||||||
|
<RowDefinition Height="auto" />
|
||||||
|
<RowDefinition Height="auto" />
|
||||||
|
<RowDefinition Height="auto" />
|
||||||
|
<RowDefinition Height="auto" />
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
|
<Label Grid.Column="0" Grid.Row="0" Margin="10" Content="Name" />
|
||||||
|
<Label Grid.Column="0" Grid.Row="1" Margin="10" Content="Ansprechpartner" />
|
||||||
|
<Label Grid.Column="0" Grid.Row="2" Margin="10" Content="Strasse" />
|
||||||
|
<Label Grid.Column="0" Grid.Row="3" Margin="10" Content="Postleitzahl" />
|
||||||
|
<Label Grid.Column="0" Grid.Row="4" Margin="10" Content="Ort" />
|
||||||
|
<Label Grid.Column="0" Grid.Row="5" Margin="10" Content="Telefonnummer" />
|
||||||
|
|
||||||
|
<TextBox Grid.Column="1" Grid.Row="0" Margin="10" Text="{Binding Name}" />
|
||||||
|
<TextBox Grid.Column="1" Grid.Row="1" Margin="10" Text="{Binding Ansprechpartner}" />
|
||||||
|
<TextBox Grid.Column="1" Grid.Row="2" Margin="10" Text="{Binding Strasse}" />
|
||||||
|
<TextBox Grid.Column="1" Grid.Row="3" Margin="10" Text="{Binding Postleitzahl}" />
|
||||||
|
<TextBox Grid.Column="1" Grid.Row="4" Margin="10" Text="{Binding Ort}" />
|
||||||
|
<TextBox Grid.Column="1" Grid.Row="5" Margin="10" Text="{Binding Telefonnummer}" />
|
||||||
|
</Grid>
|
||||||
|
</Window>
|
||||||
27
StammGenerator/Views/Auftraggeber/AuftraggeberShow.xaml.cs
Normal file
27
StammGenerator/Views/Auftraggeber/AuftraggeberShow.xaml.cs
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows;
|
||||||
|
using System.Windows.Controls;
|
||||||
|
using System.Windows.Data;
|
||||||
|
using System.Windows.Documents;
|
||||||
|
using System.Windows.Input;
|
||||||
|
using System.Windows.Media;
|
||||||
|
using System.Windows.Media.Imaging;
|
||||||
|
using System.Windows.Shapes;
|
||||||
|
|
||||||
|
namespace StammGenerator.Views
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Interaktionslogik für AuftraggeberShow.xaml
|
||||||
|
/// </summary>
|
||||||
|
public partial class AuftraggeberShow : Window
|
||||||
|
{
|
||||||
|
public AuftraggeberShow()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -14,35 +14,43 @@
|
|||||||
</UserControl.Resources>
|
</UserControl.Resources>
|
||||||
<Grid>
|
<Grid>
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="auto" />
|
<ColumnDefinition Width="450" />
|
||||||
<ColumnDefinition Width="300" />
|
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
<!-- Stammdaten Grid -->
|
||||||
|
<Grid Grid.Column="0">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="150" />
|
||||||
|
<ColumnDefinition Width="300" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="auto" />
|
<RowDefinition Height="auto" />
|
||||||
<RowDefinition Height="auto" />
|
<RowDefinition Height="auto" />
|
||||||
<RowDefinition Height="auto"/>
|
<RowDefinition Height="auto"/>
|
||||||
<RowDefinition Height="auto"/>
|
<RowDefinition Height="auto"/>
|
||||||
<RowDefinition Height="auto"/>
|
<RowDefinition Height="auto"/>
|
||||||
<RowDefinition />
|
<RowDefinition Height="auto" />
|
||||||
|
<RowDefinition Height="auto" />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<Label Grid.Column="0" Grid.Row="0" Content="Projektname" />
|
<Label Grid.Column="0" Grid.Row="0" Content="Projektname" />
|
||||||
<Label Grid.Column="0" Grid.Row="1" Content="Erstelldatum" />
|
<Label Grid.Column="0" Grid.Row="1" Content="Erstelldatum" />
|
||||||
<Label Grid.Column="0" Grid.Row="2" Content="Strasse" />
|
<Label Grid.Column="0" Grid.Row="2" Content="Strasse" />
|
||||||
<Label Grid.Column="0" Grid.Row="3" Content="Ort" />
|
<Label Grid.Column="0" Grid.Row="3" Content="Ort" />
|
||||||
|
<Label Grid.Column="0" Grid.Row="4" Content="Auftraggeber" />
|
||||||
|
|
||||||
<TextBox Grid.Column="1" Grid.Row="0" Text="{Binding ProjektName}" />
|
<TextBox Grid.Column="1" Grid.Row="0" Text="{Binding ProjektName}" />
|
||||||
<TextBox Grid.Column="1" Grid.Row="1" Text="{Binding Erstelldatum}" />
|
<TextBox Grid.Column="1" Grid.Row="1" Text="{Binding Erstelldatum}" />
|
||||||
<TextBox Grid.Column="1" Grid.Row="2" Text="{Binding Strasse}" />
|
<TextBox Grid.Column="1" Grid.Row="2" Text="{Binding Strasse}" />
|
||||||
<TextBox Grid.Column="1" Grid.Row="3" Text="{Binding Ort}" />
|
<TextBox Grid.Column="1" Grid.Row="3" Text="{Binding Ort}" />
|
||||||
|
<StackPanel Orientation="Horizontal" Grid.Column="1" Grid.Row="4">
|
||||||
<StackPanel Grid.ColumnSpan="2" Grid.Row="4">
|
<Label Content="{Binding Auftraggeber.Name}" />
|
||||||
|
<Button Content="Ändern" Command="{Binding AuftraggeberChange}" />
|
||||||
|
</StackPanel>
|
||||||
|
<StackPanel Grid.ColumnSpan="2" Grid.Row="5">
|
||||||
<Button Content="Speichern" Command="{Binding Speichern}" />
|
<Button Content="Speichern" Command="{Binding Speichern}" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
</Grid>
|
||||||
|
<ContentPresenter Grid.Column="1" Content="{Binding ProjektSettingsViewModel}" />
|
||||||
<ContentPresenter Grid.Column="3" Grid.RowSpan="6" Content="{Binding ProjektSettingsViewModel}" />
|
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|||||||
Reference in New Issue
Block a user