Auftraggeber können nun geändert werden
This commit is contained in:
@@ -29,8 +29,15 @@ namespace SewerStammGen.DAL.Services.PostgresqlData
|
|||||||
IAuftraggeberDataService auftraggeberDataService = new AuftraggeberDataService(connString);
|
IAuftraggeberDataService auftraggeberDataService = new AuftraggeberDataService(connString);
|
||||||
var s = await auftraggeberDataService.GetAll();
|
var s = await auftraggeberDataService.GetAll();
|
||||||
// TODO : Auftraggeber verwaltung
|
// TODO : Auftraggeber verwaltung
|
||||||
|
if (s.Count() < 1)
|
||||||
|
{
|
||||||
|
entity.Auftraggeber = await auftraggeberDataService.Create(new Auftraggeber() { Name = "Anonym" });
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
entity.Auftraggeber = s.ToList().Last();
|
entity.Auftraggeber = s.ToList().Last();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
await using (var cmd = new NpgsqlCommand(command, conn))
|
await using (var cmd = new NpgsqlCommand(command, conn))
|
||||||
{
|
{
|
||||||
@@ -45,6 +52,7 @@ namespace SewerStammGen.DAL.Services.PostgresqlData
|
|||||||
reader.Read();
|
reader.Read();
|
||||||
entity.Id = reader.GetInt32(0);
|
entity.Id = reader.GetInt32(0);
|
||||||
}
|
}
|
||||||
|
entity.AuftraggeberTemporar = true;
|
||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -100,7 +108,7 @@ namespace SewerStammGen.DAL.Services.PostgresqlData
|
|||||||
|
|
||||||
public async Task<Projekt> Update(Projekt entity)
|
public async Task<Projekt> Update(Projekt entity)
|
||||||
{
|
{
|
||||||
string command = "UPDATE "+tableName+" SET projektname=@1, erstelldatum=@2, strasse=@3, ort=@4, exporttype=@5, kodierungssystem=@6 WHERE projekt_id = @8";
|
string command = "UPDATE "+tableName+ " SET projektname=@1, erstelldatum=@2, strasse=@3, ort=@4, exporttype=@5, kodierungssystem=@6,ref_auftraggeber_id=@7 WHERE projekt_id = @8";
|
||||||
using (var cmd = new NpgsqlCommand(command, conn))
|
using (var cmd = new NpgsqlCommand(command, conn))
|
||||||
{
|
{
|
||||||
cmd.Parameters.AddWithValue("1", entity.Projektname);
|
cmd.Parameters.AddWithValue("1", entity.Projektname);
|
||||||
@@ -109,6 +117,7 @@ namespace SewerStammGen.DAL.Services.PostgresqlData
|
|||||||
cmd.Parameters.AddWithValue("4", entity.Ort);
|
cmd.Parameters.AddWithValue("4", entity.Ort);
|
||||||
cmd.Parameters.AddWithValue("5", (int)entity.ExportType);
|
cmd.Parameters.AddWithValue("5", (int)entity.ExportType);
|
||||||
cmd.Parameters.AddWithValue("6", (int)entity.Kodierungssystem);
|
cmd.Parameters.AddWithValue("6", (int)entity.Kodierungssystem);
|
||||||
|
cmd.Parameters.AddWithValue("7", entity.Auftraggeber.Id);
|
||||||
cmd.Parameters.AddWithValue("8", entity.Id);
|
cmd.Parameters.AddWithValue("8", entity.Id);
|
||||||
int res = await cmd.ExecuteNonQueryAsync();
|
int res = await cmd.ExecuteNonQueryAsync();
|
||||||
Trace.WriteLine(res);
|
Trace.WriteLine(res);
|
||||||
|
|||||||
@@ -16,5 +16,10 @@ namespace SewerStammGen.Shared.Domain
|
|||||||
public string Telefonnummer { get; set; } = String.Empty;
|
public string Telefonnummer { get; set; } = String.Empty;
|
||||||
|
|
||||||
public bool DataChanged { get; set; } = false;
|
public bool DataChanged { get; set; } = false;
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return string.Format("{0} [{1}]", Name, Ansprechpartner);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,5 +19,9 @@ namespace SewerStammGen.Shared.Domain
|
|||||||
public EKodierungssystem Kodierungssystem { get; set; }
|
public EKodierungssystem Kodierungssystem { get; set; }
|
||||||
public IList<Kanal> Kanaele { get; set; } = new List<Kanal>();
|
public IList<Kanal> Kanaele { get; set; } = new List<Kanal>();
|
||||||
public IList<Schacht> Schaechte { get; set;} = new List<Schacht>();
|
public IList<Schacht> Schaechte { get; set;} = new List<Schacht>();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public bool AuftraggeberTemporar { get; set; } = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
using SewerStammGen.Shared.Domain;
|
using SewerStammGen.Shared.Contracts;
|
||||||
|
using SewerStammGen.Shared.Domain;
|
||||||
|
using Shared.Contracts;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Input;
|
||||||
|
|
||||||
namespace StammGenerator.ViewModel
|
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)
|
protected override void OnPropertyChanged([CallerMemberName] string? propertyName = null)
|
||||||
{
|
{
|
||||||
_model.DataChanged = true;
|
_model.DataChanged = true;
|
||||||
base.OnPropertyChanged(propertyName);
|
base.OnPropertyChanged(propertyName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public AuftraggeberEditViewModel(Auftraggeber model)
|
public AuftraggeberEditViewModel(Auftraggeber model, IAuftraggeberDataService auftraggeberDataService)
|
||||||
{
|
{
|
||||||
_model = model;
|
_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 SewerStammGen.Shared.Domain;
|
||||||
using Shared.Contracts;
|
using Shared.Contracts;
|
||||||
|
|
||||||
@@ -6,6 +7,7 @@ using StammGenerator.Interface;
|
|||||||
using StammGenerator.Views;
|
using StammGenerator.Views;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
|
|
||||||
@@ -16,9 +18,10 @@ namespace StammGenerator.ViewModel
|
|||||||
private Projekt _model;
|
private Projekt _model;
|
||||||
private int ProjektID;
|
private int ProjektID;
|
||||||
private readonly IDataService<Projekt> _projectDataService;
|
private readonly IDataService<Projekt> _projectDataService;
|
||||||
private readonly IDataService<Auftraggeber> _auftraggeberDataService;
|
private readonly IAuftraggeberDataService _auftraggeberDataService;
|
||||||
private Auftraggeber auftraggeber = new Auftraggeber();
|
private Auftraggeber auftraggeber = new Auftraggeber();
|
||||||
private readonly IRenavigator _renavigator;
|
private readonly IRenavigator _renavigator;
|
||||||
|
private bool AuftraggeberChanged = false;
|
||||||
|
|
||||||
public ProjektSettingsViewModel ProjektSettingsViewModel { get; set; }
|
public ProjektSettingsViewModel ProjektSettingsViewModel { get; set; }
|
||||||
|
|
||||||
@@ -109,7 +112,7 @@ namespace StammGenerator.ViewModel
|
|||||||
private void ChangeAuftraggeber()
|
private void ChangeAuftraggeber()
|
||||||
{
|
{
|
||||||
var win = new AuftraggeberShow();
|
var win = new AuftraggeberShow();
|
||||||
win.DataContext = new AuftraggeberEditViewModel(_model.Auftraggeber);
|
win.DataContext = new AuftraggeberEditViewModel(_model.Auftraggeber, _auftraggeberDataService);
|
||||||
win.Closed += AuftraggeberWin_Closed;
|
win.Closed += AuftraggeberWin_Closed;
|
||||||
win.ShowDialog();
|
win.ShowDialog();
|
||||||
|
|
||||||
@@ -117,6 +120,17 @@ namespace StammGenerator.ViewModel
|
|||||||
|
|
||||||
private void AuftraggeberWin_Closed(object? sender, EventArgs e)
|
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));
|
OnPropertyChanged(nameof(Auftraggeber));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -144,7 +158,10 @@ namespace StammGenerator.ViewModel
|
|||||||
|
|
||||||
private void SaveProject()
|
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);
|
_auftraggeberDataService.Update(_model.Auftraggeber);
|
||||||
_projectDataService.Update(_model);
|
_projectDataService.Update(_model);
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="auto" />
|
<ColumnDefinition Width="auto" />
|
||||||
<ColumnDefinition Width="300" />
|
<ColumnDefinition Width="300" />
|
||||||
|
<ColumnDefinition />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="auto" />
|
<RowDefinition Height="auto" />
|
||||||
@@ -33,5 +34,11 @@
|
|||||||
<TextBox Grid.Column="1" Grid.Row="3" Margin="10" Text="{Binding Postleitzahl}" />
|
<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="4" Margin="10" Text="{Binding Ort}" />
|
||||||
<TextBox Grid.Column="1" Grid.Row="5" Margin="10" Text="{Binding Telefonnummer}" />
|
<TextBox Grid.Column="1" Grid.Row="5" Margin="10" Text="{Binding Telefonnummer}" />
|
||||||
|
|
||||||
|
<StackPanel Grid.Column="3" Grid.RowSpan="6">
|
||||||
|
<Label Content="Oder wähle aus der Liste aus" />
|
||||||
|
<ComboBox ItemsSource="{Binding VerfuegbareAuftraggeber}" SelectedItem="{Binding SelectedAuftraggber}" />
|
||||||
|
<Button Margin="10" Content="Übernehmen" Command="{Binding ApplyCommand}" />
|
||||||
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Window>
|
</Window>
|
||||||
|
|||||||
Reference in New Issue
Block a user