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 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;
@@ -77,9 +78,32 @@ namespace SewerStammGen.DAL.Services.PostgresqlData
return await GetAllByProjekt(projekt.Id); 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) public override async Task ExecuteAsync(object? parameter)
{ {
Debugger.Break();
_haltungEditViewModel.Model = await _haltungDataService.Update(_haltungEditViewModel.Model); _haltungEditViewModel.Model = await _haltungDataService.Update(_haltungEditViewModel.Model);
_renavigator.Renavigate(); _renavigator.Renavigate();

View File

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

View File

@@ -11,6 +11,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Controls; using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Input; using System.Windows.Input;
namespace SewerStammGen.WPF.ViewModel namespace SewerStammGen.WPF.ViewModel
@@ -19,6 +20,48 @@ namespace SewerStammGen.WPF.ViewModel
{ {
private readonly IActualState _actualState; private readonly IActualState _actualState;
private readonly IHaltungDataService _haltungDataService; 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; private Kanal _model;
@@ -31,43 +74,25 @@ namespace SewerStammGen.WPF.ViewModel
} }
} }
public string _oberePunkt { get; set; } private void RecalculateLength()
public string _unterePunkt { get; set; } {
public string ObereSchacht double x1 = (double)Model.StartSchacht.RechtsWert;
{ double x2 = (double)Model.EndSchacht.RechtsWert;
get => _oberePunkt; double y1 = (double)Model.StartSchacht.HochWert;
double y2 = (double)Model.EndSchacht.HochWert;
set
{
if (_oberePunkt != value)
{
_oberePunkt = value;
OnPropertyChanged();
}
}
}
public string UntereSchacht
{
get => _unterePunkt;
set
{
if (_unterePunkt != value)
{
_unterePunkt = value;
OnPropertyChanged();
}
}
}
double length = Math.Sqrt(((x1 - x2) * (x1 - x2)) + ((y1 - y2) * (y1 - y2)));
Haltungslaenge = length.ToString();
OnPropertyChanged(nameof(Haltungslaenge));
}
public string Haltungsbezeichnung public string Haltungsbezeichnung
{ {
get => _model.Objektbezeichnung; get => _model.Objektbezeichnung;
set set
{ {
if(_model.Objektbezeichnung != value) if (_model.Objektbezeichnung != value)
{ {
_model.Objektbezeichnung = value; _model.Objektbezeichnung = value;
OnPropertyChanged(); OnPropertyChanged();
@@ -79,7 +104,7 @@ namespace SewerStammGen.WPF.ViewModel
get => _model.Material; get => _model.Material;
set set
{ {
if( _model.Material != value) if (_model.Material != value)
{ {
_model.Material = value; _model.Material = value;
OnPropertyChanged(); OnPropertyChanged();
@@ -91,7 +116,7 @@ namespace SewerStammGen.WPF.ViewModel
get => _model.DN.ToString(); get => _model.DN.ToString();
set set
{ {
if(_model.DN.ToString() != value) if (_model.DN.ToString() != value)
{ {
_model.DN = int.Parse(value); _model.DN = int.Parse(value);
OnPropertyChanged(); OnPropertyChanged();
@@ -103,7 +128,7 @@ namespace SewerStammGen.WPF.ViewModel
get => _model.Haltungslaenge.ToString(); get => _model.Haltungslaenge.ToString();
set set
{ {
if(_model.Haltungslaenge.ToString() != value) if (_model.Haltungslaenge.ToString() != value)
{ {
_model.Haltungslaenge = decimal.Parse(value); _model.Haltungslaenge = decimal.Parse(value);
OnPropertyChanged(); OnPropertyChanged();
@@ -116,18 +141,52 @@ namespace SewerStammGen.WPF.ViewModel
public HaltungEditViewModel( public HaltungEditViewModel(
IHaltungDataService haltungDataService, IHaltungDataService haltungDataService,
IActualState actualState, IActualState actualState,
IRenavigator renavigator) IRenavigator renavigator,
ISchachtDataService schachtDataService)
{ {
_actualState = actualState; _actualState = actualState;
_haltungDataService = haltungDataService; _haltungDataService = haltungDataService;
_schachtDataService = schachtDataService;
_model = _actualState.SelectedHaltung; _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="1" Grid.Column="0" Content="Untere Schacht" />
<Label Grid.Row="2" Grid.Column="0" Content="Haltungsbezeichnung" /> <Label Grid.Row="2" Grid.Column="0" Content="Haltungsbezeichnung" />
<TextBox Grid.Row="0" Grid.Column="1" Margin="5" Text="{Binding ObereSchacht}" /> <!--<TextBox Grid.Row="0" Grid.Column="1" Margin="5" Text="{Binding ObereSchacht}" />-->
<TextBox Grid.Row="1" Grid.Column="1" Margin="5" Text="{Binding UntereSchacht}" /> <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}" /> <TextBox Grid.Row="2" Grid.Column="1" Margin="5" Text="{Binding Haltungsbezeichnung}" />
</Grid> </Grid>

View File

@@ -8,8 +8,15 @@
d:DesignHeight="450" d:DesignWidth="800"> d:DesignHeight="450" d:DesignWidth="800">
<Grid> <Grid>
<StackPanel> <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> </DataGrid>
<Button Content="Hinzufügen" Command="{Binding AddCommand}" /> <Button Content="Hinzufügen" Command="{Binding AddCommand}" />
<Button Content="Editieren" Command="{Binding EditCommand}" /> <Button Content="Editieren" Command="{Binding EditCommand}" />