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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -11,8 +11,9 @@
|
||||
<StackPanel>
|
||||
<RadioButton Content="Stammdaten" Style="{StaticResource ToggleButtonList}" Command="{Binding UpdateCurrentSewerViewModelCommand}" CommandParameter="{x:Static nav:ESewerWindowViewType.SewerStammdaten}" Margin="20" />
|
||||
<RadioButton Content="Schäden" Style="{StaticResource ToggleButtonList}" Command="{Binding UpdateCurrentSewerViewModelCommand}" CommandParameter="{x:Static nav:ESewerWindowViewType.SewerDamageList}" Margin="20" />
|
||||
|
||||
<RadioButton Content="Schließen" Style="{StaticResource ToggleButtonList}" Command="{Binding CloseCommand}" Margin="20" />
|
||||
<RadioButton Content="{Binding Schaden.Distance,FallbackValue='Damage'}" Command="{Binding UpdateCurrentSewerViewModelCommand}" CommandParameter="{x:Static nav:ESewerWindowViewType.SewerDamageEdit}" Style="{StaticResource ToggleButtonList}" />
|
||||
<RadioButton Content="{Binding Schaden.Distance,FallbackValue='Damage'}" Command="{Binding UpdateCurrentSewerViewModelCommand}" IsEnabled="{Binding CanSelectDamage}" CommandParameter="{x:Static nav:ESewerWindowViewType.SewerDamageEdit}" Style="{StaticResource ToggleButtonList}" Margin="20" />
|
||||
</StackPanel>
|
||||
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@ namespace DaSaSo.Wpf.HostBuilders
|
||||
services.AddSingleton<ViewModelDelegateRenavigator<BuildingsiteEditViewModel>>();
|
||||
|
||||
services.AddSingleton<ViewModelDelegateRenavigator<SewerObjectListViewModel>>();
|
||||
services.AddTransient<ViewModelDelegateRenavigator<SewerDamageEditViewModel>>();
|
||||
|
||||
services.AddSingleton<CreateViewModel<HomeViewModel>>(services =>
|
||||
{
|
||||
@@ -77,8 +78,8 @@ namespace DaSaSo.Wpf.HostBuilders
|
||||
{
|
||||
return () => new SewerDamageListViewModel(
|
||||
services.GetRequiredService<IActualProject>(),
|
||||
services.GetRequiredService<IDataService<SewerObject>>()//,
|
||||
//services.GetRequiredService<SewerMainListViewModel>()
|
||||
services.GetRequiredService<IDataService<SewerObject>>(),
|
||||
services.GetRequiredService<ViewModelDelegateRenavigator<SewerDamageEditViewModel>>()
|
||||
);
|
||||
});
|
||||
services.AddTransient<CreateViewModel<SewerDamageEditViewModel>>(services =>
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
<Border Grid.Row="0" Grid.ColumnSpan="3" BorderBrush="Black" BorderThickness="3">
|
||||
<TextBlock TextAlignment="Center" Text="Schaden" />
|
||||
</Border>
|
||||
<Border Grid.Column="0" Grid.Row="1" BorderBrush="Black" BorderThickness="2,1">
|
||||
<Border Grid.Column="0" Grid.Row="1" BorderBrush="Black" BorderThickness="2,1" Margin="3">
|
||||
<StackPanel>
|
||||
<Label />
|
||||
<Label Content="Rohrstatik schaden" />
|
||||
@@ -32,7 +32,7 @@
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<Border Grid.Column="1" Grid.Row="1" BorderBrush="Black" BorderThickness="1,2">
|
||||
<Border Grid.Column="1" Grid.Row="1" BorderBrush="Black" BorderThickness="1,2" Margin="3">
|
||||
<StackPanel>
|
||||
<Label Content="Rohr Betrieb Hinderniss" />
|
||||
<CheckBox Content="Wurzeln" Style="{StaticResource checkBoxCircleSmall}" IsChecked="{Binding Wurzel }"/>
|
||||
@@ -41,7 +41,7 @@
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<Border Grid.Column="2" Grid.Row="1" BorderBrush="Black" BorderThickness="1,2">
|
||||
<Border Grid.Column="2" Grid.Row="1" BorderBrush="Black" BorderThickness="1,2" Margin="3">
|
||||
<StackPanel>
|
||||
<Label Content="Sonstiges" />
|
||||
<CheckBox Content="Einragende Anschluss" Style="{StaticResource checkBoxCircleSmall}" IsChecked="{Binding EinrageneStutzen }" />
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<Border Grid.Row="0" BorderThickness="3" BorderBrush="Black">
|
||||
<TextBlock Text="Vorbereitungen" TextAlignment="Center"/>
|
||||
</Border>
|
||||
<Border BorderBrush="Black" Grid.Row="1" BorderThickness="2">
|
||||
<Border BorderBrush="Black" Grid.Row="1" BorderThickness="2" Margin="3">
|
||||
<StackPanel>
|
||||
<CheckBox Content="HD Gereinigt" Style="{StaticResource checkBoxCircleSmall}" IsChecked="{Binding HD}" />
|
||||
<CheckBox Content="Mechanisch Gereinigt" Style="{StaticResource checkBoxCircleSmall}" IsChecked="{Binding Mechanisch}" />
|
||||
|
||||
18
DaSaSo.Wpf/View/SewerObject/Pipeliner.xaml
Normal file
18
DaSaSo.Wpf/View/SewerObject/Pipeliner.xaml
Normal file
@@ -0,0 +1,18 @@
|
||||
<UserControl x:Class="DaSaSo.Wpf.View.SewerObject.Pipeliner"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:DaSaSo.Wpf.View.SewerObject"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<Grid>
|
||||
<StackPanel>
|
||||
<Label Content="Operator" />
|
||||
<Label Content="Datum" />
|
||||
<Label Content="Liner-Charge" />
|
||||
|
||||
</StackPanel>
|
||||
|
||||
</Grid>
|
||||
</UserControl>
|
||||
28
DaSaSo.Wpf/View/SewerObject/Pipeliner.xaml.cs
Normal file
28
DaSaSo.Wpf/View/SewerObject/Pipeliner.xaml.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace DaSaSo.Wpf.View.SewerObject
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for Pipeliner.xaml
|
||||
/// </summary>
|
||||
public partial class Pipeliner : UserControl
|
||||
{
|
||||
public Pipeliner()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -16,9 +16,26 @@
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<selfControls:SewerDamage Grid.Column="0" Grid.Row="0" DataContext="{Binding damageControllViewModel}" />
|
||||
<selfControls:SewerDamagePreparation Grid.Column="1" Grid.Row="0" DataContext="{Binding preperationControllViewModel}" />
|
||||
<Button Grid.Column="0" Grid.Row="1" Content="Berechne" Command="{Binding Berechne}" />
|
||||
<selfControls:SewerDamage Grid.Column="0" Grid.Row="0" DataContext="{Binding damageControllViewModel}" Margin="3" />
|
||||
<selfControls:SewerDamagePreparation Grid.Column="1" Grid.Row="0" DataContext="{Binding preperationControllViewModel}" Margin="3" />
|
||||
<Grid Grid.Row="1" Grid.Column="0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="auto" />
|
||||
<RowDefinition Height="200" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Label Grid.Column="0" Grid.Row="0" Content="Entfernung" />
|
||||
<TextBox Grid.Column="1" Grid.Row="0" Text="{Binding Damage.Distance,StringFormat={}{0:#.##}}" />
|
||||
|
||||
</Grid>
|
||||
|
||||
|
||||
|
||||
<Button Grid.Column="1" Grid.Row="1" Content="Sanierung Zeigen" Command="{Binding Berechne}" />
|
||||
|
||||
</Grid>
|
||||
</UserControl>
|
||||
|
||||
@@ -17,20 +17,22 @@
|
||||
<sd:SewerDamageListSampleData />
|
||||
</d:UserControl.DataContext>
|
||||
<Grid>
|
||||
<DataGrid ItemsSource="{Binding Damages}" AutoGenerateColumns="False" IsReadOnly="True" SelectedItem="{Binding SelectedDamage}">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Header="Entfernung" Binding="{Binding Distance}" />
|
||||
<DataGridCheckBoxColumn Header="Statik (Riss / Bruch / Scherbe)" Binding="{Binding DamageType, Converter={StaticResource EqualDamageTypeToBooleanConverter}, ConverterParameter={x:Static damagetype:EDamageType.Static}}" />
|
||||
<DataGridCheckBoxColumn Header="Betrieb (Wurzeln / Inkrustation / Ablagerungen)" Binding="{Binding DamageType, Converter={StaticResource EqualDamageTypeToBooleanConverter}, ConverterParameter={x:Static damagetype:EDamageType.Betrieb}}" />
|
||||
<DataGridCheckBoxColumn Header="Sonstiges (Infiltration / Einragene Stutzen)" Binding="{Binding DamageType, Converter={StaticResource EqualDamageTypeToBooleanConverter}, ConverterParameter={x:Static damagetype:EDamageType.Other}}" />
|
||||
<StackPanel>
|
||||
<DataGrid ItemsSource="{Binding Damages}" AutoGenerateColumns="False" IsReadOnly="True" SelectedItem="{Binding SelectedDamage}">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Header="Entfernung" Binding="{Binding Distance}" />
|
||||
<DataGridCheckBoxColumn Header="Statik (Riss / Bruch / Scherbe)" Binding="{Binding DamageType, Converter={StaticResource EqualDamageTypeToBooleanConverter}, ConverterParameter={x:Static damagetype:EDamageType.Static}}" />
|
||||
<DataGridCheckBoxColumn Header="Betrieb (Wurzeln / Inkrustation / Ablagerungen)" Binding="{Binding DamageType, Converter={StaticResource EqualDamageTypeToBooleanConverter}, ConverterParameter={x:Static damagetype:EDamageType.Betrieb}}" />
|
||||
<DataGridCheckBoxColumn Header="Sonstiges (Infiltration / Einragene Stutzen)" Binding="{Binding DamageType, Converter={StaticResource EqualDamageTypeToBooleanConverter}, ConverterParameter={x:Static damagetype:EDamageType.Other}}" />
|
||||
|
||||
|
||||
<DataGridCheckBoxColumn Header="HD Reinigung" Binding="{Binding PreparationType, Converter={StaticResource EqualPreperationTypeToBooleanConverter}, ConverterParameter={x:Static damagetype:EPreparationType.CleanedHD}}" />
|
||||
<DataGridCheckBoxColumn Header="Mechanisch gereinigt" Binding="{Binding PreparationType, Converter={StaticResource EqualPreperationTypeToBooleanConverter}, ConverterParameter={x:Static damagetype:EPreparationType.CleanedMechanisch}}" />
|
||||
<DataGridCheckBoxColumn Header="Roboter" Binding="{Binding PreparationType, Converter={StaticResource EqualPreperationTypeToBooleanConverter}, ConverterParameter={x:Static damagetype:EPreparationType.CleanedRoboter}}" />
|
||||
<DataGridCheckBoxColumn Header="Fäkalienfrei" Binding="{Binding PreparationType, Converter={StaticResource EqualPreperationTypeToBooleanConverter}, ConverterParameter={x:Static damagetype:EPreparationType.FaekalienFrei}}" />
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
|
||||
<DataGridCheckBoxColumn Header="HD Reinigung" Binding="{Binding PreparationType, Converter={StaticResource EqualPreperationTypeToBooleanConverter}, ConverterParameter={x:Static damagetype:EPreparationType.CleanedHD}}" />
|
||||
<DataGridCheckBoxColumn Header="Mechanisch gereinigt" Binding="{Binding PreparationType, Converter={StaticResource EqualPreperationTypeToBooleanConverter}, ConverterParameter={x:Static damagetype:EPreparationType.CleanedMechanisch}}" />
|
||||
<DataGridCheckBoxColumn Header="Roboter" Binding="{Binding PreparationType, Converter={StaticResource EqualPreperationTypeToBooleanConverter}, ConverterParameter={x:Static damagetype:EPreparationType.CleanedRoboter}}" />
|
||||
<DataGridCheckBoxColumn Header="Fäkalienfrei" Binding="{Binding PreparationType, Converter={StaticResource EqualPreperationTypeToBooleanConverter}, ConverterParameter={x:Static damagetype:EPreparationType.FaekalienFrei}}" />
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
<Button Content="Neue Schaden Aufnehmen" Command="{Binding AddNewDamage}" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
|
||||
Reference in New Issue
Block a user