Schaden kann hinzugefügt werden

This commit is contained in:
HuskyTeufel
2021-10-01 12:20:24 +02:00
parent 98494be3cf
commit b48c012c18
12 changed files with 166 additions and 28 deletions

View File

@@ -0,0 +1,36 @@
using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services;
using DaSaSo.ViewModel.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DaSaSo.ViewModel.Commands
{
class AddDamageCommand : AsyncCommandBase
{
private readonly IActualProject actualProject;
private readonly IRenavigator addedNavigator;
public AddDamageCommand(IActualProject actualProject, IRenavigator addedNavigator)
{
this.actualProject = actualProject;
this.addedNavigator = addedNavigator;
}
public override async Task ExecuteAsync(object? parameter)
{
SewerDamage newSewerDamage = new SewerDamage();
//newSewerDamage.SewerObject = actualProject.AktuellSewerObject; // Führt zur Exception, dass EF versucht doppelte einträge vorzunehmen
actualProject.AktuellSewerObject.SewerDamages.Add(newSewerDamage);
actualProject.SetSewerDamage(actualProject.AktuellSewerObject.SewerDamages.Last());
//addedNavigator.Renavigate(); // Bug führt zur generellen umnavigation...
}
}
}

View File

@@ -19,6 +19,17 @@ namespace DaSaSo.ViewModel
public SewerPreperationControllViewModel preperationControllViewModel { get; set; }
public IRelayCommand Berechne { get; set; }
private string? _entfernung;
public string Entfernung
{
get => _entfernung;
set
{
_entfernung = value;
OnPropertyChanged();
}
}
public SewerDamage? Damage
{
get => _damage;
@@ -36,14 +47,32 @@ namespace DaSaSo.ViewModel
damageControllViewModel = new SewerDamageControllViewModel(Damage.DamageType);
preperationControllViewModel = new SewerPreperationControllViewModel(Damage.PreparationType);
Berechne = new RelayCommand(() =>
Entfernung = Damage.Distance.ToString();
/*Berechne = new RelayCommand(() =>
{
//Debugger.Break();
Damage.DamageType = damageControllViewModel.CalculateDamageFlags();
Damage.PreparationType = preperationControllViewModel.CalculatePreparationFlags();
});
*/
}
~SewerDamageEditViewModel()
{
//Debugger.Break();
}
public override void Dispose()
{
// Alle Werte Speichern, form wurde geändert (Noch nicht in DB!)
Damage.DamageType = damageControllViewModel.CalculateDamageFlags();
Damage.PreparationType = preperationControllViewModel.CalculatePreparationFlags();
damageControllViewModel.Dispose();
preperationControllViewModel.Dispose();
base.Dispose();
}
}
}

View File

@@ -1,11 +1,13 @@
using DaSaSo.Domain.Model;
using DaSaSo.Domain.Services;
using DaSaSo.ViewModel.Commands;
using DaSaSo.ViewModel.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
namespace DaSaSo.ViewModel
{
@@ -13,7 +15,9 @@ namespace DaSaSo.ViewModel
{
private readonly IActualProject _actualProject;
private readonly IDataService<SewerObject> _dataService;
private SewerDamage _selectedDamage;
private SewerDamage? _selectedDamage;
public ICommand AddNewDamage { get; set; }
public SewerDamage SelectedDamage
{
get => _selectedDamage;
@@ -28,12 +32,12 @@ namespace DaSaSo.ViewModel
SewerObject _model;
public List<SewerDamage> Damages { get => _model.SewerDamages.ToList(); }
public SewerDamageListViewModel(IActualProject actualProject, IDataService<SewerObject> dataService)
public SewerDamageListViewModel(IActualProject actualProject, IDataService<SewerObject> dataService, IRenavigator addedNavigator)
{
_actualProject = actualProject;
_dataService = dataService;
_model = _actualProject.AktuellSewerObject;
AddNewDamage = new AddDamageCommand(actualProject,addedNavigator);
}
}

View File

@@ -27,6 +27,7 @@ namespace DaSaSo.ViewModel
public ICommand SchadenCommand { get; set; }
public BaseViewModel CurrentSewerViewModel => Navigator.CurrentViewModel;
public bool CanSelectDamage => Schaden != null;
public bool IsLoading
{
get => _isLoading;
@@ -47,6 +48,7 @@ namespace DaSaSo.ViewModel
{
_schaden = value;
OnPropertyChanged();
OnPropertyChanged(nameof(CanSelectDamage));
}
}