Haltung Edit hinzugefügt

This commit is contained in:
2023-04-13 15:40:06 +02:00
parent 83068c48fc
commit 33d0b1da93
6 changed files with 140 additions and 46 deletions

View File

@@ -3,6 +3,7 @@ using SewerStammGen.Shared.Contracts;
using SewerStammGen.Shared.Domain;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -77,9 +78,32 @@ namespace SewerStammGen.DAL.Services.PostgresqlData
return await GetAllByProjekt(projekt.Id);
}
public Task<Kanal> Update(Kanal entity)
public async Task<Kanal> Update(Kanal entity)
{
throw new NotImplementedException();
string command = "UPDATE " + tableName + " SET " +
" \"Objektbezeichnung\"=@1, " +
" \"StartSchachtId\"=@2, " +
" \"EndSchachtId\"=@3, " +
" \"DN\"=@4, " +
" \"Material\"=@5, " +
" \"Haltungslaenge\"=@6, " +
" \"Entwaesserung\"=@7 " +
" WHERE \"Id\" = @8";
using(var cmd = new NpgsqlCommand(command,conn))
{
cmd.Parameters.AddWithValue("1", entity.Objektbezeichnung);
cmd.Parameters.AddWithValue("2", entity.StartSchacht.Id);
cmd.Parameters.AddWithValue("3", entity.EndSchacht.Id);
cmd.Parameters.AddWithValue("4", entity.DN);
cmd.Parameters.AddWithValue("5", entity.Material);
cmd.Parameters.AddWithValue("6", entity.Haltungslaenge);
cmd.Parameters.AddWithValue("7", (int)entity.Entwaesserung);
cmd.Parameters.AddWithValue("8", entity.Id);
await cmd.ExecuteNonQueryAsync();
}
return entity;
}
}
}

View File

@@ -27,6 +27,7 @@ namespace SewerStammGen.WPF.Commands
public override async Task ExecuteAsync(object? parameter)
{
Debugger.Break();
_haltungEditViewModel.Model = await _haltungDataService.Update(_haltungEditViewModel.Model);
_renavigator.Renavigate();

View File

@@ -77,7 +77,8 @@ namespace SewerStammGen.HostBuilders
return () => new HaltungEditViewModel(
services.GetRequiredService<IHaltungDataService>(),
services.GetRequiredService<IActualState>(),
services.GetRequiredService<ViewModelDelegateRenavigator<HaltungListViewModel>>()
services.GetRequiredService<ViewModelDelegateRenavigator<HaltungListViewModel>>(),
services.GetRequiredService<ISchachtDataService>()
);
});
#endregion

View File

@@ -11,6 +11,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Input;
namespace SewerStammGen.WPF.ViewModel
@@ -19,6 +20,48 @@ namespace SewerStammGen.WPF.ViewModel
{
private readonly IActualState _actualState;
private readonly IHaltungDataService _haltungDataService;
private readonly ISchachtDataService _schachtDataService;
private List<Schacht> avaibleSchaechte;
public List<Schacht> AvSchaechte
{
get
{
return avaibleSchaechte;
}
}
int _selectedObenIndex;
int _selectedUntenIndex;
public int SelectedObenIndex
{
get => _selectedObenIndex;
set
{
if (_selectedObenIndex != value)
{
_selectedObenIndex = value;
_model.StartSchacht = avaibleSchaechte[value];
RecalculateLength();
OnPropertyChanged();
}
}
}
public int SelectedUntenIndex
{
get => _selectedUntenIndex;
set
{
if (_selectedUntenIndex != value)
{
_selectedUntenIndex = value;
_model.EndSchacht = avaibleSchaechte[value];
RecalculateLength();
OnPropertyChanged();
}
}
}
private Kanal _model;
@@ -31,43 +74,25 @@ namespace SewerStammGen.WPF.ViewModel
}
}
public string _oberePunkt { get; set; }
public string _unterePunkt { get; set; }
public string ObereSchacht
private void RecalculateLength()
{
get => _oberePunkt;
set
{
if (_oberePunkt != value)
{
_oberePunkt = value;
OnPropertyChanged();
}
}
double x1 = (double)Model.StartSchacht.RechtsWert;
double x2 = (double)Model.EndSchacht.RechtsWert;
double y1 = (double)Model.StartSchacht.HochWert;
double y2 = (double)Model.EndSchacht.HochWert;
double length = Math.Sqrt(((x1 - x2) * (x1 - x2)) + ((y1 - y2) * (y1 - y2)));
Haltungslaenge = length.ToString();
OnPropertyChanged(nameof(Haltungslaenge));
}
public string UntereSchacht
{
get => _unterePunkt;
set
{
if (_unterePunkt != value)
{
_unterePunkt = value;
OnPropertyChanged();
}
}
}
public string Haltungsbezeichnung
{
get => _model.Objektbezeichnung;
set
{
if(_model.Objektbezeichnung != value)
if (_model.Objektbezeichnung != value)
{
_model.Objektbezeichnung = value;
OnPropertyChanged();
@@ -79,7 +104,7 @@ namespace SewerStammGen.WPF.ViewModel
get => _model.Material;
set
{
if( _model.Material != value)
if (_model.Material != value)
{
_model.Material = value;
OnPropertyChanged();
@@ -91,7 +116,7 @@ namespace SewerStammGen.WPF.ViewModel
get => _model.DN.ToString();
set
{
if(_model.DN.ToString() != value)
if (_model.DN.ToString() != value)
{
_model.DN = int.Parse(value);
OnPropertyChanged();
@@ -103,7 +128,7 @@ namespace SewerStammGen.WPF.ViewModel
get => _model.Haltungslaenge.ToString();
set
{
if(_model.Haltungslaenge.ToString() != value)
if (_model.Haltungslaenge.ToString() != value)
{
_model.Haltungslaenge = decimal.Parse(value);
OnPropertyChanged();
@@ -116,18 +141,52 @@ namespace SewerStammGen.WPF.ViewModel
public HaltungEditViewModel(
IHaltungDataService haltungDataService,
IActualState actualState,
IRenavigator renavigator)
IRenavigator renavigator,
ISchachtDataService schachtDataService)
{
_actualState = actualState;
_haltungDataService = haltungDataService;
_schachtDataService = schachtDataService;
_model = _actualState.SelectedHaltung;
_oberePunkt = _model.StartSchacht.Objektbezeichnung;
_unterePunkt = _model.EndSchacht.Objektbezeichnung;
Speichern = new HaltungEditSaveCommand(_haltungDataService,renavigator,this);
Speichern = new HaltungEditSaveCommand(_haltungDataService, renavigator, this);
ladeVerfuegbareSchaechte();
}
private async void ladeVerfuegbareSchaechte()
{
var s = await _schachtDataService.GetAllByProjekt(_actualState.ProjektID);
avaibleSchaechte = s.ToList();
int counter = 0;
foreach (var d in avaibleSchaechte)
{
if (d.Id == Model.StartSchacht.Id)
{
SelectedObenIndex = counter;
break;
}
counter++;
}
counter = 0;
foreach (var d in avaibleSchaechte)
{
if (d.Id == Model.EndSchacht.Id)
{
SelectedUntenIndex = counter;
break;
}
counter++;
}
OnPropertyChanged(nameof(AvSchaechte));
OnPropertyChanged(nameof(SelectedObenIndex));
OnPropertyChanged(nameof(SelectedUntenIndex));
}
}
}

View File

@@ -29,8 +29,10 @@
<Label Grid.Row="1" Grid.Column="0" Content="Untere Schacht" />
<Label Grid.Row="2" Grid.Column="0" Content="Haltungsbezeichnung" />
<TextBox Grid.Row="0" Grid.Column="1" Margin="5" Text="{Binding ObereSchacht}" />
<TextBox Grid.Row="1" Grid.Column="1" Margin="5" Text="{Binding UntereSchacht}" />
<!--<TextBox Grid.Row="0" Grid.Column="1" Margin="5" Text="{Binding ObereSchacht}" />-->
<ComboBox Grid.Row="0" Grid.Column="1" DisplayMemberPath="Objektbezeichnung" SelectedIndex="{Binding SelectedObenIndex}" ItemsSource="{Binding AvSchaechte}"></ComboBox>
<ComboBox Grid.Row="1" Grid.Column="1" DisplayMemberPath="Objektbezeichnung" SelectedIndex="{Binding SelectedUntenIndex}" ItemsSource="{Binding AvSchaechte}"></ComboBox>
<!--<TextBox Grid.Row="1" Grid.Column="1" Margin="5" Text="{Binding UntereSchacht}" />-->
<TextBox Grid.Row="2" Grid.Column="1" Margin="5" Text="{Binding Haltungsbezeichnung}" />
</Grid>

View File

@@ -8,8 +8,15 @@
d:DesignHeight="450" d:DesignWidth="800">
<Grid>
<StackPanel>
<DataGrid ItemsSource="{Binding Haltungen}" SelectedItem="{Binding SelectedHaltung}" IsReadOnly="False">
<DataGrid ItemsSource="{Binding Haltungen}" AutoGenerateColumns="False" SelectedItem="{Binding SelectedHaltung}" IsReadOnly="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Objektbezeichnung" Binding="{Binding Objektbezeichnung}" />
<DataGridTextColumn Header="Obere Schacht" Binding="{Binding StartSchacht.Objektbezeichnung}" />
<DataGridTextColumn Header="Untere Schacht" Binding="{Binding EndSchacht.Objektbezeichnung}" />
<DataGridTextColumn Header="DN" Binding="{Binding DN}" />
<DataGridTextColumn Header="Material" Binding="{Binding Material}" />
<DataGridTextColumn Header="Haltungslänge" Binding="{Binding Haltungslaenge}" />
</DataGrid.Columns>
</DataGrid>
<Button Content="Hinzufügen" Command="{Binding AddCommand}" />
<Button Content="Editieren" Command="{Binding EditCommand}" />