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

@@ -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,7 +20,49 @@ 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;
public Kanal Model
@@ -30,44 +73,26 @@ namespace SewerStammGen.WPF.ViewModel
_model = value;
}
}
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();
}
}
}
public string UntereSchacht
{
get => _unterePunkt;
set
{
if (_unterePunkt != value)
{
_unterePunkt = 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 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));
}
}
}