Schaden kann hinzugefügt werden
This commit is contained in:
36
DaSaSo.ViewModel/Commands/AddDamageCommand.cs
Normal file
36
DaSaSo.ViewModel/Commands/AddDamageCommand.cs
Normal 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...
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user